写点什么

亚马逊云科技在其 EC2 实例中推出了对嵌套虚拟化的支持

  • 2026-03-14
    北京
  • 本文字数:1216 字

    阅读完需:约 4 分钟

AWS 最近宣布支持在运行 KVM 或 Hyper-V 的虚拟化 EC2 实例中嵌套虚拟机。这是社区期待已久的功能,新选项使得可以在支持的 C8i、M8i 和 R8i 实例上进行应用仿真和硬件仿真等用例。

 

开发者可以使用这个功能来运行移动应用模拟器、模拟汽车硬件,并在 Windows 工作站上使用 Windows Subsystem for Linux(WSL)。根据文档,Nitro 系统将处理器特性(如 Intel VT-x)暴露给实例,允许它在内部运行虚拟机。

 

嵌套虚拟化的架构有三层:物理 AWS 基础设施和 Nitro 虚拟机监视器(L0)、运行自己虚拟机监视器的 EC2 实例(L1)以及在该实例内部运行的虚拟机(L2)。新功能支持在 C8i、M8i 和 R8i 实例上使用 KVM 和 Hyper-V。AWS 的工程总监 Ioannis Aslanidis写道

 

这种能力使开发者和企业能够构建灵活的、嵌套的环境,使用广泛的标准虚拟 EC2 实例类型。

 

该功能一直是社区的长期需求,2018年有开发者在 Reddit 上写道:

 

在 Azure 中,我可以在我的虚拟机中运行 KVM,这是一种称为嵌套虚拟化的技术。亚马逊在允许在 EC2 中使用 HyperV/VMware/KVM 方面有任何进展吗?

 

大多数关于新功能的评论都表达了同样的观点:Meta 的生产工程师 Rolf Neugebauer 写道,“你们怎么花了这么长时间?”而 Igor Sfiligoi 补充道:“直到现在,这真的是不可能的?”在一个热门的Hacker News帖子中,谷歌的软件工程师 Michael Boulos 写道:

 

我感觉得到了证实:几年前,我们为让嵌套虚拟化在 GCE 上运行良好投入了大量的精力,我很高兴听到 AWS 也在跟进。你可以告诉人们去做别的事情,可能有一个单独的自然解决方案,等等,但有时你愿意牺牲一些峰值性能,只是为了拥有操作和控制的一致性。

 

Render 的创始人兼首席执行官Anurag Goel补充道:

 

这是一个大事件,因为现在你可以在 AWS VM 中运行 Firecracker/其他微虚拟机,而不是昂贵的 AWS 裸机实例。

 

AWS 的高级解决方案架构师 Guillermo Ruiz 测试了在实例内运行Firecracker微虚拟机,并对未来的基准测试做出了承诺。Ruiz 写道:

 

对于任何寻求隔离、Lambda 风格的运行时,或者只是从性能和密度的角度比较微虚拟机与容器的人来说,这是一个有趣的角度。

 

过去,运行 EC2 上的嵌套虚拟化的唯一选择是使用裸机实例,即没有虚拟机监视器的物理服务器。许多开发者转而使用 EC2 Mac 实例,这是最小且最便宜的裸机选项,作为一种变通方法。现在启用嵌套虚拟化是一个在启动时设置的 API 选项,例如:

 

aws ec2 run-instances \    --image-id ami-0abcdef1234567890 \    --instance-type r8i.4xlarge \    --cpu-options "NestedVirtualization=enabled" \    --key-name my-key-pair \    --placement "Tenancy=host"
复制代码

 

AWS 仍然建议,运行需要硬件虚拟化的工作负载、对性能敏感或需要低延迟的客户应该继续使用裸机实例,而不是嵌套虚拟化。

 

嵌套虚拟化在所有区域的 C8i、M8i 和 R8i 实例类型上都可用;Graviton 实例目前尚不支持。KVM 和 Hyper-V 是唯一受支持的 L1 虚拟机监视器。

 

原文链接:

https://www.infoq.com/news/2026/03/aws-ec2-nested-virtualization/