文档介绍:  Xen虚拟化技术
本节中将以主流的Xen体系架构为例,说明虚拟化系统的一般技术架构和工作原理。
(Xen Hypervisor)
Xen Hypervisor(即Xen的VMM)位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为 Domain 0,而其余的域则称为Domain U。
Xen的体系架构如图7-25所示。Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。Dom0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与Xen提供的管理API交互,并通过用户模式下的管理工具来管理Xen的虚拟机环境。
 
(点击查看大图)图7-25  Xen体系架构图
Xen向Domain提供了VCPU、虚拟MMU(Memory Management Unit)等基本的虚拟硬件和基本机制(事件通道),并向Domain提供了虚拟域管理API(控制接口)。对Domain设备的访问,Xen也提供了相应的硬件接口(安全硬件接口),以保证设备访问得以安全进行。
在Xen体系架构中涉及到的基本概念包括:
控制接口:仅能被Dom0使用,用于帮助Dom0控制和管理其他的Domain。控制接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移,对其他Domain的CPU调度、内存分配及设备访问等。
安全硬件接口:提供除虚拟CPU、MMU之外的所有硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。该接口只能被具有原生设备驱动的Domain使用,而向其他Domain则仅通过设备通道提供虚拟硬件服务。
VCPU:Xen为每个Domain建立了VCPU结构,用以接收Guest OS中传递的指令,其中大部分的指令被VCPU直接提交到物理CPU执行,而对于特权指令则需要经过确认后交由Xen代为执行。
虚拟MMU:用于帮助Guest OS完成虚拟地址到机器地址的转换。Xen系统中增加了客户物理地址层,因而地址由原来的二层结构变为三层结构。Xen通过虚拟MMU仍能使用硬件MMU来完成地址转换。
事件通道:是用于Domain和Xen之间、Domain相互之间的一种异步事件通知机制,用于处理Guest OS中的虚拟中断、物理中断以及Domain之间的通信。
设备管理器:位于Dom0和IDD(Independent Device Domain)中,可作为系统BIOS的扩展,用于向所有的设备提供通用的管理接口,并负责在Domain启动时加载特定的设备驱动、建立管理设备通道、提供硬件设备配置接口并处理设备访问错误。
(1)半虚拟化
对CPU指令集不提供硬件支持的情况,Xen只能采取半虚拟化的方案,通过修改Guest OS的内核对有缺陷的指令进行替换。在这种模式下,Xen位于操作系统和硬件之间,为其上运行的Guest OS内核提供虚拟化的硬件环境,因而Xen具有最高特权级,而Guest OS被迫迁移到相对低的特权级中,称为特权解除(Privilege Depri