玩VPS的朋友们大多知道Xen的名头,因为基于Xen的VPS向来以稳定、性能好而受人青睐。在本教程中,抚琴煮酒将介绍在CentOS 5.6下安装Xen的步骤和需要注意的事项。
***部分 Xen工作原理
有关Xen的工作原理,可以参考TechTarget在2008年Sander van Vugt发布过的一篇文章,这里不再赘述。
第二部分 Xen在CentOS 5.6 x86_64下的安装步骤
1.安装Xen前的准备工作
首先我这里介绍下安装Xen机器的配置:
速龙CPU是基于64位架构的,性价比非常高,是一款我非常喜欢的CPU;硬盘我这里用的是以前淘汰下来的一块老IDE硬盘,大小只有40G;由于盘上已有WindowsXP SP3的系统,所以我这里特的划分了18G Free空间准备安装CentOS 5.6 x86_64。
在安装Xen之前我们先检查一下CPU是否支持Xen虚拟化,命令如下:
egrep '(vmx|svm)' /proc/cpuinfo
如果什么结果都不显示,则表示CPU是不支持Xen虚拟化的,结果显示如下:
flags: fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy misalignsse flags: fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy misaligns
2.Xen的安装过程
我们可以用以下命令来安装Xen软件:
yum -y install kernel-xen xen
顺利安装完CentOS 5.6后,我们要修改下/etc/grub.conf文件,让其采用新的内核。
/etc/grub.conf文件内容如下:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,6) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/hdb default=0 timeout=5 splashimage=(hd0,6)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-238.12.1.el5xen) root (hd0,6) kernel /xen.gz-2.6.18-238.12.1.el5 module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-238.12.1.el5xen.img title CentOS (2.6.18-238.el5) root (hd0,6) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-238.el5.img title Other rootnoverify (hd0,0) chainloader +
3.安装Xen虚拟机
下面我们准备安装Xen虚拟机。安装前我们做点准备工作,搭好httpd环境,因为等会我们需要httpd服务。
yum -y install httpd && service httpd start
另外,记得建一个目录以供Xen安装虚拟机使用,我这里是vm;我准备安装两个Xen虚拟系统,一个系统为CentOS 5.6 x86_64,另一个为CentOS 5.0 i386,所以我们将其光盘文件分别用cp -a分别拷至/var/www/html/centos56和/var/www/html/centos5下。如果只有iso文件,我们可以直接在CentOS下用mount命令挂载,命令如下:
mount -t iso9660 -o loop,user download.iso /isoimage
1)首先我们安装CentOS 5.6 x86_64 Xen虚拟机,安装命令为
virt-install -n vm0 -r 256 -f /vm/vm01.img -s 4 -nographics -p -l http://192.168.1.119/centos56
2)安装完vm0的Xen虚拟机后,我们再接阗安装一个名为vm1的Xen虚拟机,命令如下:
virt-install -n vm1 -r 256 -f /vm/vm02.img -s 4 -nographics -p -l http://192.168.1.119/centos5
发现i386系统也很顺利就安装成功了,我们可以用 xm list命令来查看一下
Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1193 2 r----- 114.0 vm0 3 256 1 -b---- 7.6 vm1 2 511 1 -b---- 18.
3.Xen虚拟机常用的命令为:
xm list 查看当前机器里的全部虚拟机列表 xm create xxxx 启动名字为xxx的虚拟机 xm shutdown xxx xm reboot xxx xm pause xxx xm resuem xxx
需要管理登入的时候:
xm console xxxx
就可以像在本机一样操作虚拟机了,如果要退出到Domain-0,按住Ctrl+] 就行。
第三部分 Xen虚拟机的优势所在
我以前玩虚拟化时有一个误区,就是我一直想用一个虚拟机能够***的虚拟我需要的所有系统,比如说Windows Server2003、FreeBSD8、还有CentOS和Debian,所以我一直都是研究VMware ESX系列;后来我发现这种思想是错误的,这也是我决定花时间和精力在Xen上面的原因。Xen的优势所在有如下三点:
一、FreeBSD下的jail(ezjail)的性能出乎我的意料之外,它的使用范围很小,只能虚拟出FreeBSD系统,但这点应付工作就足够了;而我以往玩Xen,总觉得Xen虚拟出的Windows系列很慢,其实完全没有必要,为什么要用Linux的Xen去虚拟Windows呢,在工作中我们完全可以用Linux的Xen只虚拟Linux,满足工作即可;
二、现在我用Critrix XenServer用得非常多,XenServer的优秀性能也给我很深的印象。大家都知道,XenServer系列是基于Xen的基础发展而来的;
三、最近一段时间跟我另一个朋友——卧底兄学习他的Xen在生产环境下的应用。Xen利用模板功能,5分钟就能克隆出一台Xen虚拟机出来,而且在大规模的虚拟机集群部署上,Xen也非常的方便,短时间类就能部署200以台上的Xen虚拟机集群。
以上的一些原因也让我对虚拟化有了更深的认识,也坚定了我继续学习Xen虚拟机的决心。
参考文档:
http://www.searchsv.com.cn/ShowContent_13689.htm?info=svtechguide20090714
http://www.ibm.com/developerworks/cn/linux/l-cn-xen/index.html?ca=drs-
作者简介:余洪春(博客),网名抚琴煮酒,英文名Andrew.Yu,某外企Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。
【编辑推荐】