4.1 XEN/KVM虚拟化引擎
4.1.1 虚拟化架构分类
计算虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一种形式的资源,供上层使用。计算虚拟化技术的通用实现方案是将软件和硬件相互分离,在操作系统与硬件之间加入一个虚拟化软件层,通过空间上的分割、时间上的分时以及模拟,将服务器物理资源抽象成逻辑资源,向上层操作系统提供一个与它原先期待一致的服务器硬件环境,使得上层操作系统可以直接运行在虚拟环境上,并允许具有不同操作系统的多个虚拟机相互隔离,并发运行在同一台物理机上,从而提供更高的IT资源利用率和灵活性。计算虚拟化的虚拟化软件层需要模拟出来的逻辑功能主要为高效、独立的虚拟计算机系统,我们称之为虚拟机,在虚拟机中运行的操作系统软件,我们称之为Guest OS。计算虚拟化技术可以将单个CPU模拟为多个CPU,允许一个平台同时运行多个操作系统,并且应用程序可以在相互独立的空间内运行而互不影响。简单地说,计算虚拟化技术实现了计算单元的模拟和模拟出来的计算单元间的隔离。虚拟化软件层模拟出来的每台虚拟机都是一个完整的系统,它具有处理器、内存、网络设备、存储设备和BIOS,因此虚拟机中运行的操作系统和应用程序与在物理服务器上运行的操作系统和应用程序并没有本质的区别。计算虚拟化的这个软件层,也就是虚拟机监控器(Virtual Machine Monitor,VMM),通常被称为Hypervisor。常见的Hypervisor软件栈架构方案分为两类,即Type-I型和Type-II型。Type-I型(裸金属型)指VMM直接运行在裸机上,使用和管理底层的硬件资源,GuestOS对真实硬件资源的访问都要通过VMM来完成,作为底层硬件的直接操作者,VMM拥有硬件的驱动程序。Type-II型(宿主型)指VMM之下还有一层宿主操作系统,由于Guest OS对硬件的访问必须经过宿主操作系统,因而带来了额外的性能开销,但可充分利用宿主操作系统提供的设备驱动和底层服务来进行内存管理、进程调度和资源管理等。我们进一步分析Hypervisor对于CPU指令的模拟和虚拟实例的隔离方式,计算虚拟化技术可以细分为如下几个子类。计算虚拟化技术的实现