Xen虚拟化技术
1、Xen工作原理
Xen通过hypervisor软件访问物理层硬件,实现在一台单独的计算机上运行多个各自独立、彼此隔离的子操作系统。Hypervisor指挥硬件访问和协调来自各子系统的请求。
Xen环境中,主要是虚拟机控制器(VMM),也叫Hypervisor。Hypervisor层硬件与虚拟机之间,是最先被载入到硬件的第一层。Hypervisor载入就可以部署虚拟机。在Xen中的Domain(域)由Xen控制,可高效的利用CPU资源。Domain可以分为Domain0,Domain1,Domain2···
Domain0:属于有特权的Domian。在虚拟机中,Domain0具有很高的特权,负责一些专门的工作,并提供虚拟的资源服务。由于Hypervisor中不包含任何与硬件对话的驱动,也没有与管理对话的接口,这些驱动就有Domain0完成。
Domain1,Domain2···:属于无特权的Domain,管理员利用Xen工具通过Domain0来创建其他虚拟机Domain1,Domian2···
Domain0是其他虚拟主机的管理者和控制者,Domain0可以构建其他更多的Domain并管理虚拟设备。
2、Xen体系结构
Xen Hypervisor(即Xen的VMM)位于操作系统和硬件之间,负责为上层运行的操作系统提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上次虚拟机(称为域)之间的相互隔离。在Xen中,系统管理运行在0环,客户OS运行在1环,应用程序运行在3环。
用户可以创建更多的Domain,也可以销毁他们,可以进行Domain的迁移,设置参数等。用户创建的Domain运行在1环,用户应用程序运行在3环。
Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其它域,并提供虚拟资源服务,该特权域为Domain0,而其余的域为Domain U。
Xen的体系结构如下图:
Domain内部包含了真是的驱动设备,可以直接访问物理硬件,负责与Xen提供的管理API交互,并通过用户模式下的管理工具来管理Xen的虚拟机环境。
1. 控制接口
控制借口仅能被Domian0使用,用于帮助Domian0控制管理其它的域。控制接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移,对其他Domain的CPU调度、内存分配及设备访问。
2. 安全硬件接口
提供除虚拟CPU和MMU之外的所有硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。该接口只能具有原生设备驱动的Domain使用,而其他Domain则仅能通过设备通道提供虚拟硬件服务。
3. 事件通道
事件通道是子域通信的事件提示机制。事件通道是用于Domian和Xen之间、Domain相互之间的一种异步事件通知机制,用于处理GuseOS中的虚拟中断、物理中断以及Domian之间的通信。
4. 虚拟处理器
VCPU为每个Domain建立了VCPU结构,用以接收GuestOS中传递的指令,其中大部分的指令被VCPU直接提交到物理CPU执行,而对于特权指令则需要经过确认和提交Xen代为执行。
5. 虚拟内存管理单元
虚拟MMU用于帮助GusetOS完成虚拟地址到机器地址的转换。Xen系统中增加了客户物理地址层,因而地址由原来的二层结构变为三层结构。Xen通过虚拟的MMU仍能使用硬件MMU来完成地址转换。
[1]黎连业.云计算基础与实用技术.出版社:清华大学出版社.