虽然据说KVM已经得到Linus以及Linux内核核心维护团队的认同,将是未来几年中内核虚拟化的主流,且RedHat已经宣布将在2014年停止对xen的支持,最新的RedHat6.0Beta中也没有包含xen,但是xen server仍然是服务器虚拟化以及架构云计算平台的一个很不错的选择,而且它是开源的,有助于我们学习和理解半虚拟化原理。主要问题是xen server用于服务器端,安装了xen server以后,电脑就不能在当做PC来使用了,所以想学习半虚拟化,还是得把xen装上。。。
Xen只能用于实体机器,而不能在虚拟机中使用。虽然在虚拟机中可以安装xen,但是无法新建虚拟机,也就是无法使用。因此,如果需要安装xen,必须在自己的计算机上安装Linux。
RHEL5.4和5.5的DVD里都自带了xen的rpm包,安装xen必备的rpm包共有17个,xen-tools相关的有2个,分别是virt-viewer和virt-manager,这样一共19个包,全部都要安装。本文采用yum安装方式,自动处理rpm的依赖关系。具体步骤如下:
1) 挂载RHEL5.5_GA的ISO,设挂载目录为/media;
2) 配置/etc/yum.repo.d/rhel-debuginfo.repo文件,将[rhel-debuginfo]和[rhel-debuginfo-beta]两项中的enabled字段改成0,并添加以下两个项目:
[Server]
name=RHEL-Server
baseurl=file:///media/Server
enabled=1
gpgcheck=0
[VT]
name=CentOS-$releasever
baseurl=file:///media/VT
enabled=1
gpgcheck=0
3) yum install xen,此命令会列出安装xen必备的17个安装包,按照命令的提示,输入y 即可安装;
4) yum install virt-manager,此命令会安装virt-manager工具;
5) yum install virt-viewer,此命令会安装virt-viewer工具;
到此为止,xen已经安装成功,可以检查/boot/grub/menu.lst文件,里面多出了引导xen定制内核的选项,重新启动系统,检查xend服务已启动,并检查xm、virt-manager、virt-viewer等命令已经可用。
基于xen的虚拟机由两部分组成,一个表示虚拟机硬盘的文件,以及一个配置文件。其中,配置文件的格式可以参考/etc/xen/xmexample*.*文件。本文以在/vm目录下创建名为vm-fedora13的虚拟机为例,具体步骤如下:
1) 新建虚拟机硬盘文件/vm/vm-fedora13.img:
dd if=/dev/zero of=/vm/vm-fedora13.img bs=1 count=1 seek=15G
(其中,15G即为虚拟机硬盘的大小,可以调整)
2) 格式化虚拟机硬盘:
mkfs -t ext3 /vm/vm-fedora13.img
(此步骤可以省略)
3) 解压Fedora13的DVD到/home/Fedora13-ISO;(目录可以随意更换)
4) 启动nfs服务,并在/etc/exports文件中添加:
/home/Fedora13-ISO *(sync,ro)
5) virt-install --paravirt --name=vm-fedora13 --ram=512 --vcpus=1 --file=/vm/vm-fedora.img --location=/home/Fedora13-ISO
此命令将产生 /etc/xen/vm-fedora13配置文件;
(命令行具体参数可参考virt-install的man page)
6) 输入以上命令以后,即可进入安装界面,按提示,选择NFS安装 ,并填入:
服务器名称:自己电脑的ip
Fedora的目录: /home/Fedora13-ISO
7) 此后的步骤就和正常安装过程一样了。
由于Windows的引导方式与Linux不同,所以安装过程需要虚拟光驱的支持。这里介绍利用virt-manager工具安装Windows虚拟机的步骤,这些步骤也可以用于安装Linux虚拟机。
要注意的是,Windows内核无法定制,不支持xen的半虚拟化,因此,必须得到CPU和主板的硬件虚拟化支持,如果所用平台不支持硬件虚拟化,那么安装将失败。
具体步骤如下:
1) 确定平台支持硬件虚拟化:
xm dmesg | grep VMX
输出有关intel-vt技术enabled的信息,则说明CPU和主板都支持硬件虚拟化,且硬件 虚拟化功能已经打开,如果支持,但没有打开,则需要进入BIOS寻找相关项进行设置。
2) 新建虚拟机硬盘文件/vm/vm-winxp.img:
dd if=/dev/zero of=/vm/vm-winxp.img bs=1 count=1 seek=15G
(其中,15G即为虚拟机硬盘的大小,可以调整)
3) virt-install --name=vm-winxp --ram=512 --vcpus=1 --file=/vm/vm-winxp.img --vnc -v -c /home/WinXP-ISO/WinXP.iso
此命令将产生 /etc/xen/vm-winxp配置文件;
(其中,/home/WinXP-ISO/WinXP.iso为windows xp安装光盘镜像)
4) 输入此命令后,将进入安装界面,安装过程中会提示插入安装光盘,此时需要虚拟光驱的支持:
virt-manager
输入此命令后,会弹出virt-manager工具的GUI,选择Hardware标签,配置虚拟光驱路径为/home/WinXP-ISO/WinXP.iso即可;
5) 此后的步骤就和正常安装过程一样了。
常用命令为xm以及virt-开头的命令,具体用法可参考man-page。需要注意的是:
1) 当使用xm create domID启动虚拟机的时候,虚拟机已经处于运行状态,但是不会有GUI出现,此时可以使用virt-viewer domID命令让虚拟机显示出来;
(其中,domID是虚拟机的ID,可以使用xm list命令查看)
2) 当安装过程出现异常,或直接将GUI关闭时,虚拟机不会真正退出,而是任然在后台运行,可以使用xm list命令查看,如果需要关闭虚拟机,则必须使用:
xm shutdown domID
3) 虚拟机关闭以后,后台任然会记录它的状态为关闭,即此虚拟机任然是存在的,只是状态是关闭的。如果想彻底删除虚拟机,必须使用:
xm destroy domID
并同时删除/etc/xen下相应的配置文件。