简单来说,平台虚拟化就是"OSes in an OS",让一台物理计算机能并发运行多个OS。在平台虚拟化中,最重要的功能,就是让其上运行的多个OS觉得自身好像拥有独立的机器,而不是和别的OS分享。

提供这个功能的机制,通常被称为虚拟机管理员(Virtual Machine Monitor,VMM),更常用的名称为Hypervisor。Hypervisor提供的功能又要多,又不允许和VM中的OS抢资源,因此提供一个好的Hypervisor是虚拟机厂家的最高机密,也是不同虚拟机产品的差别,我们就从Hypervisor的观点来看不同种类的虚拟化。

1.3.1  原生及寄居架构

以是否存在宿主操作系统来看,虚拟机的Hypervisor主要分为原生及寄居两种架构。所谓原生架构,就是Hypervisor本身不需要依赖任何操作系统,或是说Hypervisor本身就是一个操作系统,只是这个操作系统的目的是专门服务于虚拟化。而寄居架构,则是Hypervisor被看成一个应用软件或是服务,运行在已经安装好的操作系统上才能运行。

1. 寄居架构

这一类产品最大的特色就是必须在一个已经安装好的操作系统上进行,称为寄居架构(Hosted)。这么做的好处就是硬件的兼容性。只要寄居的操作系统能使用的硬件,虚拟机中的操作系统都能使用到。然而这种运行在桌面操作系统上的Hypervisor,被视为寄居操作系统上的一个应用软件,虽然在安装时会将不少Hypervisor的部件放入内核,但在寄居的操作系统出现任何问题时,VM中的操作系统将无法使用,无法满足重视安全及稳定的企业应用上。
▲  图为标准的寄居架构,从中可以看到VM寄居在一个操作系统上

举例来说,最有名的虚拟产品VMware Workstation或是微软的Virtual PC/Server,都必须安装在一个操作系统之上,如Windows 7或Windows Server 2003。如果这个操作系统蓝屏了,其上运作的VM客户端当然就全部一起蓝屏。这就是寄居架构。

" 寄居架构的主流产品

VMware Workstation(有Windows及Linux版本)

VMware Server(有Windows及Linux版本,免费)

VMware Player(有Windows及Linux版本,免费)

微软Virtual PC 2007

微软Virtual Server 2005 SP2(免费)

微软Windows Virtual PC(只能在Windows 7上运行,免费)

Parallels Workstation

SUN Virtual Box(已被Oracle收购)
▲  VMware的Player也是很流行的免费寄居架构产品

2. 原生架构

相对于寄居架构的就是原生架构,原生架构上,Hypervisor直接安装在硬件上,将所有的硬件资源接管。由于Hypervisor层极小(可小到32MB footprint),并且不管理太复杂的事项,仅负责和上层的VM操作系统沟通及资源协调,蓝屏的概率更小。在其上的任何一个操作系统蓝屏了,都不会影响其他的客户端,因此较适合于企业应用。
▲  原生架构不需要操作系统,Hypervisor直接管理硬件

当然原生架构的虚拟机为了保持其稳定性及微内核,自然不可能将所有桌面产品的驱动程序都放入,因此最大的问题就是硬件兼容性。大部分的原生架构产品都支持主流服务器及存储设备,如NAS、iSCSI或FC SAN,并且强调这些设备都经过了官方测试,为的就是确保在企业运行环境中的稳定性。一般PC所使用的硬件,大部分无法在原生架构的虚拟机下运行。

" 原生架构的主流产品

VMware vSphere

微软Hyper-V 2008 R2(免费)

微软Windows 2008 R2 Hyper-V Role

Citrix XenServer/XenDesktop

Xen(Linux,开源)

Qemm(Linux,开源)