Xen是剑桥大学开发的一个开源的混合模型系统虚拟机,最初基于32位的X86体系结构而设计开发,支持多至约100个运行Xenolinux操作系统的虚拟机。Xen引入的管理接口(Hypercalls)和事件(Events)机制事实上修改了X86 体系架构,同时预先定义的客户机和VMM 之间的共享内存数据交换机制使它具有更高的总体性能。但同时Xen作为一个泛虚拟化实现也就注定了它必须修改Guest OS。Xen将客户机称为Domain,其中Domain0作为监控程序(Hypervisor)的扩展提供系统的管理服务。Hypervisor拥有部分硬件I/O 资源如定时器处理期间中断IPI等,隔离的设备驱动域(Isolated Driver Domain)也拥有部分的I/O 资源如硬盘网卡等(其中Domain0也称为设备驱动域),而普通Domain只有虚拟的设备而没有直接的硬件I/O 资源。另外也将Hypervisor简称Xen。Xen本身主要基于开源的Linux核心代码移植而来,同时运行于其上的Xen Linux 也从Linux 移植而来,意为支持Xen 架构的Linux。所有原来的X86应用程序均不需任何修改就可以在Xen上运行,即Guest OS的ABI(Application Binary Interface)不变,从而保证了对应用程序的透明。
2005年12月5日,XenSource发布了Xen3.0版本,正式开始了对完全虚拟化技术的支持。Xen支持的不需要修改Guest OS 的虚拟机称为HVM(Hardware Virtual Machine)。Xen 3.0 支持Intel VT 技术、客户机SMP(Symmetric Multi-Processing)及客户机CPU 热插拔、动态移植、32位/64位和PAE客户机支持、安腾架构支持、安全平台、虚拟机的保存和恢复等全新的特性。动态移植技术可以使得一个虚拟机在不同的物理机器间移植,而不需要关闭机器,同时不中断虚拟机对外的服务。动态移植理论上可以使虚拟机的服务永不间断,在物理机器寿命到来之前移植到一个新机器上而继续运行。虚拟机的保存和恢复可以为用户提供机器级别的备份,而不需要关心用户程序本身是否有备份功能,实现灾难恢复。
Xen虚拟化架构如图4-6所示。
图4-6 Xen虚拟化架构(www.xing528.com)
Xen虚拟化架构由如下几个部分组成:虚拟机监视器VMM :负责硬件的虚拟化,虚拟机的调度等;Domain 0:负责虚拟机的创建、管理,I/O 设备的模拟等;Guest VM :运行已修改过的Linux的虚拟;HVM Guest:运行未修改过操作系统的虚拟机;运行在Guest VM 的操作系统通过调用VMM 提供的API来完成重要的管理操作,如分配物理内存、修改进程页表等。在访问外设时,Guest OS中的前端驱动(Front-End)将请求通过共享内存的方式传递给Domain 0中的后端驱动(Back-end),后端驱动再调用Linux OS中的设备驱动程序来完成操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。