利用嵌套虚拟化在 Amazon EC2 实例中运行虚拟机监控程序
使用嵌套虚拟化,您可以在虚拟 Amazon EC2 实例内运行虚拟机监控程序,例如 Hyper-V 和 KVM。虚拟的 EC2 实例是非裸机实例。此功能通过为虚拟的 EC2 实例添加处理器级虚拟化支持,增强了虚拟化的灵活性,使得运行在实例中的虚拟机监控程序能够创建和管理虚拟机。
当您在开发工作流程中运行 Docker Desktop、Windows Subsystem for Linux 2(WSL2)、Android Studio 模拟器或 QEMU 等开发工具时,采用嵌套虚拟化技术会非常有用,因为它能让您从众多符合您特定性能和价格要求的标准 Amazon EC2 虚拟实例类型中进行选择。
使用嵌套虚拟化技术无需额外付费。
工作原理
虚拟 EC2 实例在装有 Nitro 虚拟机监控器的物理主机上运行。为了支持嵌套虚拟化,Nitro System 会将处理器扩展程序(例如 Intel VT-x)传递给各个实例,以方便运行嵌套虚拟机。嵌套虚拟化架构由三层组成:物理 Amazon 基础设施和 Nitro 虚拟机监控器(L0)、运行虚拟机监控程序的 EC2 实例(L1),以及在该实例中创建的一台或多台虚拟机(L2)。
注意事项
在开始使用嵌套虚拟化之前,请考虑以下几点:
-
支持的实例类型:C8i、M8i 和 R8i 实例目前支持嵌套虚拟化。
-
支持的虚拟机监控程序:目前,KVM 和 Hyper-V 是所支持的 L1 虚拟化监控程序。
-
Windows 实例:在 Windows 实例上启用嵌套虚拟化时:
-
凭证保护:虚拟安全模式(VSM)已自动禁用。
-
休眠:不支持实例休眠和恢复。
-
CPU 限制:在 CPU 超过 192 的 Windows 实例上不受支持,例如
m8i.96xl。
-
-
安全责任:在 EC2 实例上使用嵌套虚拟化时,Amazon 负责“云的安全”、保护底层基础设施并维护 Amazon Nitro System 提供的 EC2 实例之间的坚固隔离边界。客户负责“云中安全”,包括保护 EC2 实例中的操作系统、虚拟机监控程序、嵌套虚拟机、访客操作系统、应用程序和数据的安全。
-
性能:Amazon 建议那些希望运行需要使用硬件虚拟化扩展程序的工作负载、并且对性能有较高要求或者对延迟有严格限制的客户,来评估裸机实例。
在启用了嵌套虚拟化的情况下启动新实例
启动新实例时,您可以开启嵌套虚拟化功能,以便在此实例上运行虚拟机监控程序和虚拟机。
先决条件
您必须拥有启动 Amazon EC2 实例所需的 IAM 权限。
将现有实例配置为使用嵌套虚拟化
您可以在现有 Amazon EC2 实例上开启嵌套虚拟化。
先决条件
-
该实例必须处于
stopped状态。 -
该实例类型必须支持嵌套虚拟化。