7. 典型虚拟化产品及其特点

虚拟化技术的应用从最初的服务器扩展到了桌面等更宽的领域.

1 VMware

基于Hypervisor架构的VMware ESX Server直接运行在物理硬件上, 无须操作系统.

2 Microsoft

3 Xen

基于GPL授权的开源虚拟机软件.

从技术上, Xen基于混合模型, 如图3-12. 特权操作系统(Domain 0)可以是Linux、Solaris以及NetBSD.

Xen最初的虚拟化思路是类虚拟化, 通过修改Linux内核, 实现处理器和内存的虚拟化, 通过引进I/O前段驱动/后端驱动(front/backend)架构实现设备的类虚拟化. Xen 1.0和2.0实现了类虚拟化, 即图中Domain 0和Domain N. Xen类虚拟化虚拟机的性能接近物理机.

7. 典型虚拟化产品及其特点

7. 典型虚拟化产品及其特点

特权操作系统(Domain 0)可以是Linux、Solaris以及NetBSD。Xen最初的虚拟化思路是类虚拟化:通过修改 Linux的内核,实现处理器内存的虚拟化,通过引入 I/O 的前端驱动/后端驱动架构实现设备的类虚拟化。Xen 1.0 和Xen 2.0成功地实现了操作系统的类虚拟化,即图中的Domain 0Domain N。Xen类虚拟化虚拟机无须特殊的硬件支持,所达到的性能即可以接近物理机。

随着发展, 硬件完全虚拟化技术也被加入Xen中, Xen 3.0支持基于Intel VT和AMD-V硬件技术的完全虚拟化.

图3-12中的VMX Domain是支持完全虚拟化的虚拟机.

Hypervisor通过硬件提供的功能实现处理器、内存和I/O的虚拟化, 其中, I/O虚拟化中的设备模型借用了QEMU, 利用QEMU的设备模拟代码完成I/O设备的虚拟化. 此外, 类虚拟化中的前端驱动/后端驱动的架构也可以应用在VMX Domain中, 用于提高I/O设备的性能.

4 KVM

KVM(Kernel-based Virtual Machine)基于GPL授权方式的开源虚拟机软件. 2007年2月被集成到了Linux 2.6.20内核中, 成为了内核的一部分.

架构如图3-13.

KVM采用基于Intel VT技术的硬件虚拟化方法, 也是结合QEMU来提供设备虚拟化. 此外, Linux社区已经发布了KVM的类虚拟化扩展.

从架构上, 有说法认为是宿主模型, 因为Linux设计之初没有针对虚拟化的支持, KVM以内核模块形式存在.

随着越来越多虚拟化功能被加入Linux内核, 也被认为是一个Hypervisor, 因此KVM是Hypervisor模型. 而KVM项目的发起人和维护人也倾向于认为KVM是Hypervisor模型。

7. 典型虚拟化产品及其特点

KVM的宿主操作系统必须是 Linux,支持的客户机操作系统包括 LinuxWindowsSolarisBSD只能运行在支持虚拟化扩展x86x86_64 硬件架构上,这意味着 KVM不能运行在老式 CPU上,新 CPU如果不支持虚拟化扩展,也不能运行(如英特尔的Atom处理器)。  KVM的特点在于和Linux内核结合的非常好, 因此KVM继承了Linux的大部分功能. 当然, 和Xen一样, 作为开源软件, KVM的移植性也很好.