在RedhatEnterprise5上安装配置XEN简介Xen是一个基于虚拟硬件监控器技术的虚拟化软件。Xen运行在一个宿主linux系统上,提供同时引导启动多个linux实例的能力。每个由Xen生成的虚拟机,被称为domain。新创建的domain需要为其安装一个操作系统,方可引导并使用。以下是几种虚拟化软件的对比:项目VirtualMachineParaVirtualizedOSVirtualized虚拟层面硬件虚拟机准虚拟化操作系统虚拟化虚拟原理虚拟硬件监控层模拟多个虚拟机运行并行虚拟化同时启动多个虚拟的子系统将操作系统划分为多个容器构成虚拟环境代表产品EMCVMware微软VirtualServerXenSWsoftVirtuozzoSUNContainer运行的系统内核实例底层物理系统运行一个内核,每个虚拟机各自运行运行一个标准内核底层系统使用一个修改过的内核,所有虚拟机运行经过修改的特别内核(如过CPU支持虚拟指令集,则虚拟机可使用标准内核所有虚拟环境一个内核,由底层系统提供性能低一般高虚拟机间隔离隔离隔离隔离物理节点和虚拟机间隔离隔离隔离隔离资源分配颗粒度粗粗非常细软件可管理性高一般非常高安装RedhatEnterpriseLinux自5.0版本(以下简称AS5)起,内核版本提升到了2.6.18系列,正式提供了对Xen虚拟化技术的支持。在以往的Linux版本中,安装Xen需要编译内核(Domain0/DomainU等)等,并进行有关配置,安装过程比较复杂。而在Xen上安装新的虚拟机操作系统(即创建新Domain)更是让新手无从下手。从AS5起,系统级集成让这一切有了明显改善,更加简单易用。首先用默认安装方式安好一个干净的AS5系统,推荐安装X图形环境,一般使用GNOME即可。AS5提供了基于图形的Xen管理工具,所以安装X图形环境会让使用Xen更加简便。当然,如果对Xen很熟悉,可以不安装或者安装但是不启动X图形环境,全部在命令行下边操作Xen。使用默认安装方式安装操作系统完毕后,从操作系统的光盘中寻找如下RPM并上传到服务器上,用于Xen的安装:光盘Server目录kernel-xenxen-libgnome-python2-gnomekeyring光盘VT目录gnome-applet-vm-0.1.2-1.el5.i386.rpmlibvirt-0.1.8-15.el5.i386.rpmlibvirt-devel-0.1.8-15.el5.i386.rpmlibvirt-python-0.1.8-15.el5.i386.rpmpython-virtinst-0.99.0-2.el5.noarch.rpmvirt-manager-0.2.6-7.el5.i386.rpmVirtualization-en-US-5.0.0-7.noarch.rpmVirtualization-zh-CN-5.0.0-7.noarch.rpmxen-3.0.3-25.el5.i386.rpmxen-devel-3.0.3-25.el5.i386.rpm在第五张安装光盘的VT目录中还有许多其他文件,主要是Xen图形管理工具的语言包文件,可以不用都安装上。上边列出的只是主要的RPM包,如果在安装过程中报告还需要其他的RPM,则从光盘中寻找并安装即可。首先安装Kernel的RPM包,使用rpm-ivh命令安装。[root@localhost]#rpm-ivhkernel-xen-2.6.18-8.el5.i686.rpmwarning:kernel-xen-2.6.18-8.el5.i686.rpm:HeaderV3DSAsignature:NOKEY,keyID37017186Preparing...###########################################[100%]1:kernel-xen###########################################[100%][root@localhost]#rpm-ivhxen-libs-3.0.3-25.el5.i386.rpmwarning:xen-libs-3.0.3-25.el5.i386.rpm:HeaderV3DSAsignature:NOKEY,keyID37017186Preparing...###########################################[100%]1:xen-libs###########################################[100%][root@localhost]#接下来修改默认的Kernel启动顺序。编辑/etc/grub.conf,找到“default=1”这行,把数字改成“0”。“0”表示启动第一个内核,即Xen内核。“1”表示启动第二个内核,即操作系统AS5原来的普通内核。如下图中红色的标记。[root@localhost]#vi/etc/grub.conf#grub.confgeneratedbyanaconda##Notethatyoudonothavetorerungrubaftermakingchangestothisfile#NOTICE:Youhavea/bootpartition.Thismeansthat#allkernelandinitrdpathsarerelativeto/boot/,eg.#root(hd0,0)#kernel/vmlinuz-versionroroot=/dev/VolGroup00/LogVol00#initrd/initrd-version.img#boot=/dev/hdadefault=1timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleRedHatEnterpriseLinuxServer(2.6.18-8.el5xen)root(hd0,0)kernel/xen.gz-2.6.18-8.el5module/vmlinuz-2.6.18-8.el5xenroroot=/dev/VolGroup00/LogVol00rhgbquietmodule/initrd-2.6.18-8.el5xen.imgtitleRedHatEnterpriseLinuxServer(2.6.18-8.el5)root(hd0,0)kernel/vmlinuz-2.6.18-8.el5roroot=/dev/VolGroup00/LogVol00rhgbquietinitrd/initrd-2.6.18-8.el5.img修改完毕后重新启动系统。重启系统完成后,再安装其他的RPM。[root@localhost/xen]#rpm-ivh*.rpmwarning:gnome-applet-vm-0.1.2-1.el5.i386.rpm:HeaderV3DSAsignature:NOKEY,keyID37017186Preparing...###########################################[100%]1:Virtualization-en-US###########################################[9%]2:gnome-python2-gnomekeyr###########################################[18%]3:Virtualization-zh-CN###########################################[27%]4:xen-devel###########################################[36%]5:libvirt###########################################[45%]6:xen###########################################[55%]7:python-virtinst###########################################[64%]8:libvirt-python###########################################[73%]9:virt-manager###########################################[82%]10:gnome-applet-vm###########################################[91%]11:libvirt-devel###########################################[100%][root@localhost/xen]#安装完成。这里可以不重启系统。当且仅当更新内核的时候,才需要重启。而安装Xen的其他组件和管理工具是不需要重启的。这里也可以看出Linux系统架构设计的优势——绝大部分情况下都不用重启系统。现在启动Xen自己的后台服务“Xend”并将其设置为随机自动启动。[root@localhost/xen]#/etc/init.d/xendstartStartingxend:[OK][root@localhost/xen]#chkconfig--addxend[root@localhost/xen]#chkconfig--level345xendon[root@localhost/xen]#配置Xen可以通过图形方式配置,也可以通过字符方式配置。字符方式使用命令xm,可以直接键入xm查看输出的命令参数信息。[root@localhost/xen]#xmUsage:xm[args]Control,list,andmanipulateXenguestinstances.Common'xm'commands:consoleAttachto'sconsole.createCreateadomainbasedon.destroyTerminateadomainimmediately.dump-coreDumpcoreforaspecificdomain.helpDisplaythismessage.listListinformationaboutall/somedomains.mem-setSetthecurrentmemoryusageforadomain.migrateMigrateadomaintoanothermachine.pausePauseexecutionofadomain.rebootRebootadomain.restoreRestoreadomainfromasavedstate.saveSaveadomainstatetorestorelater.shutdownShutdownadomain.topMonitorahostandthedomainsinrealtime.unpauseUnpauseapauseddomain.uptimePrintuptimeforadomain.vcpu-setSetthenumberofactiveVCPUsforallowedforthedomain.caneitherbetheDomainNameorId.Formorehelpon'xm'seethexm(1)manpage.Formorehelpon'xmcreate'seethexmdomain.cfg(5)manpage.Foracompletelistofsubcommandsrun'xmhelp'.[root@localhost/xen]#通过执行vm命令输出的这里可以看到,xm命令行工具可执行的操作包括登录、启动、停止、暂停、备份、恢复、重启、迁移、内存设置、CPU设置等。具