XEN虛擬機(jī)在CentOS 5.8 x86_64下的安裝及管理
原創(chuàng)【51CTO原創(chuàng)稿件】1、安裝XEN虛擬機(jī)前的準(zhǔn)備工作
首先介紹一下安裝XEN主機(jī)的配置,它的物理機(jī)配置如下所示:
- CPU :英特爾 i5-2310
- 內(nèi)存:金士頓DDR3 1333 4GB
- 主板:華碩P8H61-MLX
- 硬盤:西部數(shù)據(jù)SATA3 1T
- 系統(tǒng):Centos5.8 x86_64
- 服務(wù)器IP:192.168.11.23
在安裝XEN之前我們先檢查一下CPU是否支持XEN虛擬化,命令如下:
egrep '(vmx|svm)' /proc/cpuinfo
如果什么結(jié)果都不顯示,則表示CPU是不支持XEN虛擬化的,結(jié)果顯示如下:
flags : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc ida arat pni vmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm flags : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc ida arat pni vmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm flags : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc ida arat pni vmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm flags : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc ida arat pni vmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm
2. XEN的安裝過(guò)程
我們可以用以下命令來(lái)安裝XEN軟件,如:
yum -y install kernel-xen xen
順利安裝完Centos5.8后,我們要修改下/etc/grub.conf文件,讓其采用新的內(nèi)核,/etc/grub.conf文件的內(nèi)容如下:
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-308.11.1.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-308.11.1.el5 module /vmlinuz-2.6.18-308.11.1.el5xen ro root=LABEL=/ module /initrd-2.6.18-308.11.1.el5xen.img title CentOS (2.6.18-238.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=LABEL=/ initrd /initrd-2.6.18-238.el5.img
3. 開(kāi)始安裝XEN虛擬機(jī)
下面我們要安裝XEN虛擬機(jī)了,安裝前我們做點(diǎn)準(zhǔn)備工作,搭好httpd環(huán)境,因?yàn)榈葧?huì)兒我們需要httpd服務(wù),這個(gè)很容易實(shí)現(xiàn),命令如下:
yum -y install httpd && service httpd start
另外,記得建一個(gè)目錄以供XEN安裝虛擬機(jī)使用,我這里是/data/vm;我準(zhǔn)備安裝3個(gè)XEN虛擬系統(tǒng),所以我將其光盤文件用cp -a命令拷至/var/www/html/centos目錄下,這些都是Linux下的基本操作,大家應(yīng)該都很熟悉。如果只有iso文件,我們可以直接在Centos下用mount命令掛載,命令如下:
mount -t iso9660 -o loop,user download.iso /isoimage
1)首先安裝名為vm1的Centos5.6 x86_64 XEN虛擬機(jī),安裝命令為:
virt-install -n vm0 -r 512 -f /data/vm/vm1.img -s 150 --nographics -p -l http://192.168.11.23/centos
2)安裝完vm1的XEN虛擬機(jī)后,我們?cè)俳又惭b一個(gè)名為vm2的XEN虛擬機(jī),命令如下:
virt-install -n vm2 -r 512 -f /data/vm/vm2.img -s 150 --nographics -p -l http://192.168.11.23/centos
3) 我們接著安裝名為vm3的XEN虛擬機(jī),命令如下:
virt-install -n vm3 -r 256 -f /data/vm/vm3.img -s 150 --nographics -p -l http://192.168.11.23/centos
如果還需要安裝其它的XEN虛擬機(jī),可以依此步驟繼續(xù)操作,最后我們可以用xm list命令來(lái)查看一下,如下所示:
Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 3933 4 r----- 32803.0 vm1 8 512 1 -b---- 16074.5 vm2 26 512 1 -b---- 13140.8 vm3 44 256 1 -b---- 7800.5 vm4 45 256 1 -b---- 8048.2 vm5 46 256 1 -b---- 5934.1
如果XEN虛擬機(jī)沒(méi)有開(kāi)放SSH權(quán)限,或者采用的是DHCP動(dòng)態(tài)分配IP,這個(gè)時(shí)候就需要我們進(jìn)入XEN主機(jī)進(jìn)行管理登陸,命令如下所示:
xm console ID
此時(shí)接X(jué)EN機(jī)的名字或ID號(hào)都是可以的,console命令也可以精簡(jiǎn)為con,大家可以自行嘗試,如果進(jìn)入XEN控制臺(tái)后想退出,可以按快捷鍵CTRL+]。
如果要啟動(dòng)名為vm1的XEN虛擬機(jī),可以用如下命令,其他以此類推:
xm create -f /etc/xen/vm1
4. 利用XEN模板機(jī)快速克隆虛擬機(jī)
如果每次都手動(dòng)一臺(tái)一臺(tái)地安裝服務(wù)器,效率會(huì)極低,而且也很容易出現(xiàn)不符合規(guī)范的誤操作,所以我們?cè)谏a(chǎn)環(huán)境下只需要安裝一次XEN虛擬機(jī),然后就此虛擬機(jī)為模板,克隆出成百上千臺(tái)虛擬機(jī)用于業(yè)務(wù),下面總結(jié)一下安裝XEN模板機(jī)要注意的問(wèn)題:
- 模板機(jī)的IP和主機(jī)名要避免現(xiàn)在或以后的線上運(yùn)行的服務(wù)器不要沖突。
- 模板機(jī)應(yīng)該精簡(jiǎn)不必要的服務(wù),一般只保留network、sshd、crond等基礎(chǔ)服務(wù)。
- 模板機(jī)要配置好帳號(hào)、snmp、nrpe、ssh、文件同步等與監(jiān)控及安全相關(guān)的配置。
- 模板機(jī)應(yīng)該安裝好如Apache、Nginx、PHP或Java、MySQL及Varnish、memcached等常見(jiàn)的服務(wù)程序,想用時(shí)隨時(shí)可以開(kāi)啟,省去了重新編譯安裝的時(shí)間,統(tǒng)一了編譯參數(shù),為以后的自動(dòng)化運(yùn)維做好鋪墊。
- 模板機(jī)以后需要通過(guò)網(wǎng)絡(luò)分發(fā),所以模板機(jī)的體積不宜過(guò)大,以20GB為宜。
- 如果是大規(guī)模的部署XEN虛擬機(jī),可以考慮搭建內(nèi)網(wǎng)YUM源服務(wù)器,然后修改模板機(jī)的YUM源為同一內(nèi)網(wǎng)服務(wù)器。
- 需要編寫一個(gè)修改主機(jī)名及IP地址的SHELL腳本,輸入IP地址和主機(jī)名后,腳本就可以自動(dòng)修改這些信息。
下面我們以名為vm1的XEN為模板機(jī)來(lái)克隆名為vm6的XEN虛擬機(jī),命令如下:
virt-clone -o vm1 -n vm6 -f /data/vm/vm6.img
克隆成功以后我們需要作主機(jī)名和IP的修改,這里用腳本來(lái)簡(jiǎn)化此工作量即可。
5. XEN虛擬機(jī)的管理
1.XEN虛擬機(jī)常用的命令為:
xm list:查看當(dāng)前機(jī)器里的全部虛擬機(jī)列表。 xm help:所有可用的xm命令概述。 xm top:提供所有的虛擬機(jī)的狀態(tài)概貌。 xm create xxxx:?jiǎn)?dòng)名字為xxx的虛擬機(jī)。 xm shutdown xxx:關(guān)閉名字為xxx的虛擬機(jī)。 xm destroy xxx:像關(guān)掉電源那樣關(guān)閉名字為xx的虛擬機(jī)。 xm reboot xxx:重啟名字為xxx的虛擬機(jī)。 xm pause xxx:暫停名字為xxx的虛擬機(jī)。 xm resuem xxx:繼續(xù)運(yùn)行名字為xxx的虛擬機(jī)。 xm save xxx:保存虛擬機(jī)狀態(tài)到一個(gè)文件。 xm restore:重新啟動(dòng)已經(jīng)保存在文件里的虛擬機(jī)。
2.如何快速的新建XEN虛擬機(jī)呢?
其實(shí)我們只需要拷貝XEN虛擬機(jī)的img鏡像文件和配置文件,并修改配置文件中的鏡像路徑和虛擬機(jī)名稱就可以了。注意要修改虛擬機(jī)的MAC地址,要不然會(huì)出現(xiàn)沖突。
3.讓虛擬機(jī)隨宿主機(jī)一起啟動(dòng)。
只要在/etc/xen/auto建立一個(gè)xen vm配置文件的鏈接就可以了,如下列命令所示:
ln -s /etc/xen/vm1 /etc/xen/auto/vm1
4. XEN虛擬機(jī)時(shí)間同步失敗的解決辦法
虛擬機(jī)同宿主機(jī)硬件時(shí)鐘同步,本來(lái)是很方便的嘛。不過(guò)因?yàn)檐浖M中斷會(huì)在負(fù)載變化的時(shí)候出現(xiàn)延遲,所以慢慢會(huì)跑慢了,這個(gè)時(shí)候我們可以用如下方法來(lái)解決。
我們修改/etc/sysctl.conf文件,增加內(nèi)容如下所示:
xen.independent_wallclock = 1
然后執(zhí)行以下命令讓其立即生效,如下所示:
sysctl -p
6. XEN虛擬機(jī)的優(yōu)勢(shì)
XEN虛擬機(jī)的的優(yōu)勢(shì)有如下幾點(diǎn):
?。?)XEN的工作原理是基于準(zhǔn)虛擬化(半虛擬化)的,是獲得最佳性能的方法,XEN虛擬化只有2%-8%的效能損耗,大家可以看一下XEN作為VPS虛擬主機(jī)的使用率。
(2)XEN虛擬機(jī)是以文件的形式存在的,所以虛擬機(jī)的遷徒和備份及恢復(fù)都是非常方便的。
(3)Linux下的各種版本自帶了XEN虛擬化軟件,這個(gè)跟大多數(shù)Linux系統(tǒng)一樣是免費(fèi)開(kāi)源的,大家就不需要擔(dān)心版權(quán)問(wèn)題了。
?。?)XEN利用模板功能10分鐘就能克隆出一臺(tái)XEN虛擬機(jī)來(lái),在大規(guī)模的虛擬機(jī)集群部署上,我們短時(shí)間就能部署200臺(tái)以上的XEN虛擬機(jī)集群,在自動(dòng)化運(yùn)維越來(lái)越重要的今天,這個(gè)功能非常重要。
注意:對(duì)部會(huì)會(huì)嚴(yán)重消耗I/O的服務(wù),如Cache服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器,不建議使用XEN虛擬機(jī)。
本文作者:余洪春(撫琴煮酒),英文名Andrew.Yu。
個(gè)人博客地址:http://andrewyu.blog.51cto.com/,
Sina微博地址:http://weibo.com/yuhongchun027。



















