虚拟化技术深度解析:嵌套虚拟化与ARM64架构
1. 嵌套虚拟化概述
大型服务器和云服务提供商有时需要在客户分区内运行容器或额外的虚拟机。嵌套虚拟化就是为满足这一需求而产生的技术。在这种架构中,运行在裸金属硬件之上的L0管理程序(Hypervisor)利用硬件提供的虚拟化扩展创建客户虚拟机(VM),并将处理器的虚拟化扩展模拟出来暴露给客户VM。客户VM可以利用这些模拟的扩展运行另一个管理程序(L1管理程序),L1管理程序再创建嵌套根分区并启动L2根操作系统,最终形成L2客户VM。
目前,只有英特尔(Intel)和AMD的硬件支持嵌套虚拟化。而且,必须为L1虚拟机明确启用嵌套虚拟化功能,否则当客户操作系统执行虚拟化指令时,L0管理程序会在VM中注入一般保护异常。
2. 英特尔硬件上的嵌套虚拟化实现
在英特尔硬件上,Hyper - V通过两个主要概念实现嵌套虚拟化:VT - x虚拟化扩展的模拟和嵌套地址转换。
2.1 VT - x虚拟化扩展的模拟
L0管理程序支持有优化(enlightened)和无优化(non - enlightened)的L1管理程序,但官方唯一支持的配置是Hyper - V运行在Hyper - V之上。
- 无优化管理程序情况 :在无优化的管理程序中,L1客户机执行的所有VT - x指令都会导致VMEXIT。L1管理程序分配用于描述新L2 VM的客户物理VMCS并标记为活动状态后,L0管理程序会拦截该操作,将分配的嵌套VMCS与L1管理程序指定的客户物理VMCS关联起来,填充虚拟VMCS的初始值,并将嵌套VMCS设置为当前虚拟处
超级会员免费看
订阅专栏 解锁全文
1449

被折叠的 条评论
为什么被折叠?



