1.2.1 硬件虚拟化
硬件虚拟化产生的主要原因是由于在技术层面上用软件手段达到全虚拟化非常麻烦,而且效率较低,因此Intel等处理器厂商发现了商机,直接在芯片上提供了对虚拟化的支持。硬件直接可以对敏感指令进行虚拟化执行,比如Intel的VT-x和AMD的AMD-V技术。
相比于软件虚拟化,硬件虚拟化就是在物理平台本身提供了特殊指令,以实现对真实物理资源的截获与模拟的硬件支持。简单地说,就是其并不依赖于操作系统,即不在应用程序层面进行部署。
现在比较流行的CPU虚拟化技术就是硬件虚拟化解决方案中的一个比较典型的代表,通常情况下支持虚拟化技术的CPU带有特别优化过的指令集来控制整个虚拟的过程。同样以x86平台的虚拟化为例,支持虚拟化技术的x86 CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,Hypervisor可以很容易地将客户机置于一种受限制的模式下运行,一旦客户机需要访问真实的物理资源,硬件会暂停客户机的运行,将控制权重新交给Hypervisor进行处理。
由于虚拟化硬件可以提供全新的架构,支持操作系统直接在其上运行,无须进行二进制翻译转换,减少了相关的性能开销,简化了Hypervisor的设计,从而能够使Hypervisor性能更加强大。
相比纯软件解决方案,硬件虚拟化具有如下优势:
(1)性能上的优势。例如,基于CPU的虚拟化解决方案,虚拟化监控器提供了一个全新的虚拟化架构,支持虚拟化的操作系统直接在CPU上运行,从而不需要进行额外的二进制转换,减少了相关的性能开销。此外,支持虚拟化技术的CPU还带有特别优化过的指令集来控制虚拟化过程,通过这些技术,虚拟化监控器就比较容易提高服务器的性能。
(2)可以提供对64位操作系统的支持。在纯软件解决方案中,相关应用仍然受到主机硬件的限制。随着64位处理器的不断普及,这个缺陷造成的不利影响也日益突出。而CPU等基于硬件的虚拟化解决方案,除了能够支持32位的操作系统之外,还能够支持64位的操作系统。
鉴于虚拟化的巨大需求和硬件虚拟化产品的广阔前景,支持硬件虚拟化的厂商(Intel和AMD公司)一直都在努力完善和加强自己的硬件虚拟化产品线。自2005年末,Intel公司便开始在其处理器产品线中推广应用Intel Virtualization Technology(Intel VT)虚拟化技术,发布了具有Intel VT虚拟化技术的一系列处理器产品,包括桌面的Pentium和Core系列,以及服务器的Xeon(至强)和Itanium(安腾)。Intel一直保持在每一代新的处理器架构中优化硬件虚拟化的性能和增加新的虚拟化技术。现在市面上从桌面的Core i3/i5/i7,到服务器端的E3/E5/E7/E9,几乎全部都支持Intel VT技术。可以说在不远的将来,Intel VT很可能会成为所有Intel处理器的标准配置。
通常,一个完善的硬件虚拟化解决方案,往往需要得到CPU、主板芯片组、BIOS以及软件的支持,包括VMM软件或者某些操作系统本身。