云图·云途:云计算技术演进及应用
上QQ阅读APP看书,第一时间看更新

3.2 虚拟化的结构模型

一般来说,虚拟环境由三部分组成:虚拟机、虚拟机监控器(Virtual Machine Monitor,VMM,亦称为Hypervisor)、硬件。在没有虚拟化的情况下,操作系统管理底层物理硬件,直接运行在硬件之上,构成一个完整的计算机系统。而在虚拟化环境里,VMM取代了操作系统的管理者地位,成为真实物理硬件的管理者。同时VMM向上层的软件呈现出虚拟的硬件平台,“欺瞒”着上层的操作系统。而此时的操作系统运行在虚拟平台之上,管理着虚拟硬件,但它自认为是真实的物理硬件,如图3-2所示。

图3-2 虚拟环境构成

通常虚拟化的实现结构分为三类:Hypervisor模型(Hypervisor VMM)、宿主模型(OS-hosted VMM)以及混合模型(Hybrid VMM)。

3.2.1 Hypervisor模型

在Hypervisor模型中,虚拟化平台是直接运行在物理硬件之上,无需主机操作系统[安装虚拟化平台的物理计算机称为“主机(Host)”,它的操作系统就称为“主机操作系统”(Host OS)](见图3-3)。在这种模型中,VMM管理所有的物理资源,如处理器、内存、I/O设备等,另外,VMM还负责虚拟环境的创建和管理,用于运行客户机操作系统[在一个虚拟机内部运行的操作系统称为“客户机操作系统(Guest OS)”]。由于VMM同时具有物理资源的管理功能和虚拟化功能,虽然物理资源的虚拟化效率会更高一些,但同时也增加了VMM的工作量,因为VMM需要进行物理资源的管理,包括设备的驱动,而设备驱动开发的工作量是很大的。

图3-3 Hypervisor模型

优点:效率高。

缺点:只支持部分型号设备,需要重写驱动或者协议。

典型产品:VMware ESX server3、KVM。

3.2.2 宿主模型

在宿主模型中,虚拟化平台是安装在主机操作系统之上的。VMM通过调用主机操作系统的服务来获得资源,实现处理器、内存和I/O设备的虚拟化。VMM创建出虚拟机之后,通常将虚拟机作为主机操作系统的一个进程参与调度(见图3-4)。宿主模型的优缺点正好与Hypervisor模型相反。宿主模型可以充分利用现有操作系统的设备驱动程序,VMM无需为各类I/O设备重新实现驱动程序,可以专注于物理资源的虚拟化。但是由于物理资源是由主机操作系统控制,VMM需要调用主机操作系统的服务来获取资源进行虚拟化,而这些系统服务在设计开发之初并没有考虑虚拟化的支持,因此对虚拟化的效率会有一些影响。

优点:充分利用现有OS的Device Driver(设备驱动程序),无需重写;物理资源的管理直接利用Host OS来完成。

缺点:效率不够高,安全性一般,依赖于VMM和Host OS的安全性。

典型产品:VMware server、VMware workstation、virtual PC、virtual server。

3.2.3 混合模型

顾名思义,混合模型就是上述两种模型的混合体。混合模式在结构上与Hypervisor模型类似,VMM直接运行在裸机上,具有最高特权级。与Hypervisor模型的区别在于:混合模式的VMM相对要小得多,它只负责向客户机操作系统提供一部分基本的虚拟服务,例如CPU和内存,而把I/O设备的虚拟交给一个特权虚拟机(Privileged VM)来执行,由于充分利用了原操作系统的设备驱动,VMM本身并不包含设备驱动(见图3-5)。

图3-4 宿主模型

图3-5 混合模型

优点:集合了上述两种模型的优点。

缺点:经常需要在VMM与特权OS之间进行上下文切换,开销较大。

典型产品:Xen。