平台虚拟化和I/O虚拟化
一般认为服务器整合、测试和开发、动态负载平衡和灾难恢复都是虚拟化应用最擅长的领域。利用虚拟化实现服务器整合,可以明显降低供电和散热的成本,硬件投入、软件投入和管理成本都会下降;在测试和开发过程易于复制环境,提升工作效率;动态负载平衡应用中可以提升业务连续性和运行效率;虚拟化还能提供高可用性和高生产力。
根据IDC六月份终端用户调查报告显示,2007新购买的x86服务器中有40%被用于了虚拟化应用,还预计今年部署了虚拟化应用的服务器会占所有服务器数量的10%,到2010年的时候可能会接近20%。英特尔认为具有卓越的性能、高度的可靠性平台将会有助于推动虚拟化应用的进一步普及。
![]() |
英特尔将其虚拟化战略分为三步走。用于X86架构的VT-x和用于安腾架构的VT-i都是基于CPU的虚拟化技术,它们都是在CPU中增加了专门的硬件辅助电路,帮助提升虚拟化的效率。VT-d虚拟化技术则着眼于整个平台,芯片组和相关的I/O设备也加入了进来。第三步则是在I/O层面上的虚拟化,I/OAT2技术已经初步的实现了部分功能。
![]() |
在英特尔没有推出虚拟化技术之前,所有虚拟机VM的各种请求(比如逻辑处理器、逻辑I/O设备)都需要经过VMM软件的转换和维护,这个过程是纯软件的过程,因此占用系统资源高,效率低下。更要命的是,所有的内存存取都经过VMM控制会有安全隐患,产生错误的几率也会增加,影响了虚拟化的隔离性和可靠性。
![]() |
在VT-x技术中增加了两个全新的执行模式VMX Root模式(用于VMM)和No-Root模式(用于Guest OS),这样可以让虚拟机上的操作系统直接运行在Ring 0上。此外还增加了VM Entry和VM Exit两种转换模式。VM Entry进程包括从VMM向Guest传输指令或者数据,进入到Non-Root模式,从VMCS载入Guest状态和VM Exit条件。VM Exit进程包括从Guest向VMM传输指令或者数据,进入到Root模式,在VMCS保存Guest状态并且重新载入Guest状态。这些功能的实现主要借助基于硬件的VMCS(VM Control Structure)来实现。
VT-d则是在平台层面上实现了I/O虚拟化(主要体现在整合于芯片组内的专用电路),它定义了一个用于DMA重映射的架构,可直接将I/O设备分配给未经修改的VMs或者半虚拟化VMs。不仅Caneland平台会支持VT-d,未来更多的英特尔服务器平台都会支持这些功能。
![]() |
支持EPT的芯片组中增加了由VMM控制的一个新的页表结构,它可以存储所有虚拟机内存页表的状态,虚拟机可以直接查找、修改自己的页表,在这个过程中无需执行VM Exit转换,减少了由此引发的页面错误等问题,从而提升隔离性。当然这个功能还需要处理器的支持,未来的Nehalem会支持,Tigerton目前尚未明确支持该功能。
![]() |
因此比较理想的虚拟化应该是如上图所示的状态,隶属于不同虚拟机的逻辑处理器、I/O设备均可在基于硬件机制的VMM控制下高效的访问物理内存。Caneland平台可以对于上述大部分功能提供支持。
