近年由于虚拟化技术在x86服务器上的迅速普及已经引发了虚拟化技术的热潮,虚拟化技术在硬件里的运用,更是越来越受到人们的关注。随着硬件虚拟化技术的发展,其前景也越来越广阔,下面我们就对硬件虚拟化技术及其前景做下详细的介绍。
硬件虚拟化技术
硬件虚拟化技术的主要设计目的是消除对CPU准虚拟化和二进制转换技术的需求,进而简化VMM的实施,使其不仅能够支持多种未经修改的客户机操作系统,同时还能提高系统性能。
在x86架构下的完全软件层级的“准虚拟化”(paravirtualization)技术就是一个软件模拟的过程,但纯软件的方案带来了一些系统指令级别冲突以及运行效率问题。IA-32体系架构采用的是传统的指令集架构(ISA),它确定了4种操作系统和应用可以运行的“特权层级”或“Ring”(Ring-0到Ring-3)。操作系统一般运行在Ring-0上,它具有访问所有处理器和平台资源的特别权限;应用通常运行在Ring-3上,它会限制内存映射等特定功能,以避免影响到其他应用。通过这种配置,操作系统可以保留所有控制权,以确保整个系统的流畅运行。
在虚拟化的环境中,由于VMM必须对平台资源拥有控制权,常规的解决方案即是在Ring-0中运行VMM,将客户机操作系统的权限降至Ring-1或者Ring-3。但是,目前的操作系统都是针对Ring-0设计的,这就为VMM带来了很多麻烦。因为操作系统的很多指令均是专门针对Ring-0而设计的,所以虚拟机软件必须要修改操作系统源代码,否则就需要启用计算密集行的二进制转换。
Intel的VT-x硬件层级虚拟化技术则有助于解决这些问题,Intel VT-x虚拟化技术提供了一个名为VMX Root的新特层阶级,该级别专门用于运行VMM,它对标准的4-Ring架构进行了优化。这样客户机操作系统便可直接在Ring-0中运行,实现基础硬件的共享而且也无需进行权限压缩。而且在硬件上也支持VMM与客户机操作系统间的数据交换。这大大减少了VMM软件层的高强度的计算转换。 关于内存保护机制,VMM会保留每一个客户机操作系统的处理器状态信息在一个专用的存储空间内。这将有助加速转换速度以及确保计算数据的完整性。ISV以及用户都将受益于这些技术层面本质上的改进。
硬件虚拟化的未来
硬件虚拟化技术其实就是把纯软件虚拟化技术(Paravirtualization)的各项功能用硬件电路来逐一实现。Intel有一条完整的路线图来发展自家的虚拟化技术。从解决Ring-0指令冲突问题的VT-x(在2005年发布的产品中已经加入此技术),到解决I/O设备虚拟化问题的VT-d(Intel在今年发布的Stoakley平台中已实现),以及解决内存虚拟化问题的VT-x Gen2(Intel在08年推出的下一代Nelhame 产品中会包含此技术)。
新的处理器将会推出市场,这些处理器将会在虚拟环境中在硬件层面加速内存页码查找。在1985年发售的Inel在80386处理器上就引入了内存分页技术与虚拟内存技术-Virtual Memory (VM)技术。自80386以后,凡是在虚拟环境中的内存页码运算法则都是由Intel处理器硬件层级的虚拟内存单元与软件层级的VMM(Virtual Machine Monitor)共同执行。我们期望即将推出的处理器可以把软件层级的VMM(Virtual Machine Monitor)的工作负载用硬件来实现,因为这将大大减少VMM的负载并对软件执行速度进行提速。