在讨论Intel Virtualization Technology之前,我们先要看看通常情况下的虚拟化如何实现——一般而言,我们谈论的是软件虚拟化技术,大型机内置的硬件虚拟化不在讨论之例。
通常的虚拟化具有三种不同的实现形式,这些形式的区别主要在于用于管理各个虚拟机的VMM (Virtual Machine Monitor,虚拟机监视器)或者Hypervisor(监控者)的所在位置、功能、实现方式有所不同。
![]() |
Full Virtualization 完全虚拟化
完全虚拟化技术也就是表中的“Virtual Machine”,这种技术在虚拟机和底层硬件之间建立的抽象层:Hypervisor来管理各个虚拟机。通过Hypervisor,完全虚拟化技术模拟出多个包括所有硬件的完整的虚拟硬件平台,因此完全虚拟化技术几乎能让兼容所有的操作系统(一些特别的条件下,甚至指令集不同都可以),而这些客户操作系统并不知道自己运行在虚拟化环境下。完全虚拟化的缺点,中间层的代码转换会给系统带来开销。VMware和微软的Virtual PC/Virtual Server是代表该方法的两个商用产品,而基于核心的虚拟机(KVM)是面向Linux系统的开源产品。
Para-Virtualization 部分虚拟化
Para-Virtualization也叫做准虚拟化,完全虚拟化要求Hypervisor管理各个虚拟服务器,并提供代码级别的翻译转换,因此负担沉重。部分虚拟化就是为了减轻这种负担:改动客户操作系统,集成与Hypervisor协同工作的界面,从而提升了性能。部分虚拟化的著名例子有Xen,这是一个开源准虚拟化技术,BSD、Linux、Solaris及其他开源操作系统都对其进行了集成。
OS Virtualization 操作系统层虚拟化
操作系统层虚拟化没有独立的Hypervisor层,主机操作系统负责在多个虚拟服务器之间分配硬件资源,这种虚拟化方式速度最快,不过操作系统的类型受到了严格的限制。Solaris Container和面向Linux的Virtuozzo/OpenVZ是这方面的例子。
