HACK#28 如何使用Xen
本节介绍管理程序(hypervisor)Xen的使用方法。
Xen是众多Linux发布版中所采用的管理程序。管理程序(又称虚拟机监视器)是为虚拟机提供运行环境的基础软件。Xen是在CPU中还没有称为Intel TV或AMD-V的虚拟化支持功能的时代开发出的管理程序,可以通过半虚拟化(paravirtualization)方式运行虚拟机。在Intel VT或AMD-V出现后,也可以支持使用这些功能的全虚拟化(full virtualization)方式。半虚拟化方式与全虚拟化方式的框架如图5-1所示。
半虚拟化方式
客户端操作系统在已虚拟化的情况下,修改内核或设备驱动程序的方法。半虚拟化方式的客户端操作系统称为半虚拟化客户端(PV客户端)。半虚拟化方式的驱动程序称为半虚拟化驱动程序(PV驱动程序)。
全虚拟化方式
使用支持虚拟化功能的Intel VT或AMD-V等CPU的方法。将PC硬件上运行的操作系统直接在虚拟机环境上运行的方法。全虚拟化方式的客户端操作系统称为全虚拟化客户端(HVM客户端)。
在RHEL5等使用Xen时,一般是使用virt-manager等来安装客户端操作系统。如果使用virt-manager,就算没有虚拟化知识也可以很简单地生成客户端操作系统。Xen作为Linux的虚拟机功能已经为大家所熟悉,因此这里仅介绍Xen的概要和不使用virt-manager时Xen的使用方法。
图 5-1 半虚拟化与全虚拟化
Xen的概要
构成Xen的主要要素有管理程序、主机操作系统(Dom0)、客户端操作系统(DomU),如图5-2所示。
管理程序用来生成、删除、管理虚拟机的CPU或内存等。例如,进行虚拟CPU的调度或者向虚拟机分配内存等。从管理程序来看,主机操作系统看起来与客户端操作系统是一样的。主机操作系统与一般的客户端操作系统不同,具有向管理程序请求虚拟机环境控制处理的权限。主机操作系统中存在叫做xend的守护进程或者设备仿真器qemu-dm进程。xend是接受生成客户端操作系统请求的守护进程,从xm命令接受处理要求,经由主机操作系统向管理程序请求生成虚拟机等。qemu-dm虽然也称为设备模型,实际上是仿真虚拟机设备的进程,用来仿真VGA或IDE等设备。
图 5-2 Xen的概要