XEN虛擬機在CentOS 5.8 x86_64下的安裝及管理
原創(chuàng)【51CTO原創(chuàng)稿件】1、安裝XEN虛擬機前的準(zhǔn)備工作
首先介紹一下安裝XEN主機的配置,它的物理機配置如下所示:
- 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的安裝過程
我們可以用以下命令來安裝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. 開始安裝XEN虛擬機
下面我們要安裝XEN虛擬機了,安裝前我們做點準(zhǔn)備工作,搭好httpd環(huán)境,因為等會兒我們需要httpd服務(wù),這個很容易實現(xiàn),命令如下:
yum -y install httpd && service httpd start
另外,記得建一個目錄以供XEN安裝虛擬機使用,我這里是/data/vm;我準(zhǔn)備安裝3個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虛擬機,安裝命令為:
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虛擬機后,我們再接著安裝一個名為vm2的XEN虛擬機,命令如下:
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虛擬機,命令如下:
virt-install -n vm3 -r 256 -f /data/vm/vm3.img -s 150 --nographics -p -l http://192.168.11.23/centos
如果還需要安裝其它的XEN虛擬機,可以依此步驟繼續(xù)操作,最后我們可以用xm list命令來查看一下,如下所示:
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虛擬機沒有開放SSH權(quán)限,或者采用的是DHCP動態(tài)分配IP,這個時候就需要我們進(jìn)入XEN主機進(jìn)行管理登陸,命令如下所示:
xm console ID
此時接XEN機的名字或ID號都是可以的,console命令也可以精簡為con,大家可以自行嘗試,如果進(jìn)入XEN控制臺后想退出,可以按快捷鍵CTRL+]。
如果要啟動名為vm1的XEN虛擬機,可以用如下命令,其他以此類推:
xm create -f /etc/xen/vm1
4. 利用XEN模板機快速克隆虛擬機
如果每次都手動一臺一臺地安裝服務(wù)器,效率會極低,而且也很容易出現(xiàn)不符合規(guī)范的誤操作,所以我們在生產(chǎn)環(huán)境下只需要安裝一次XEN虛擬機,然后就此虛擬機為模板,克隆出成百上千臺虛擬機用于業(yè)務(wù),下面總結(jié)一下安裝XEN模板機要注意的問題:
- 模板機的IP和主機名要避免現(xiàn)在或以后的線上運行的服務(wù)器不要沖突。
- 模板機應(yīng)該精簡不必要的服務(wù),一般只保留network、sshd、crond等基礎(chǔ)服務(wù)。
- 模板機要配置好帳號、snmp、nrpe、ssh、文件同步等與監(jiān)控及安全相關(guān)的配置。
- 模板機應(yīng)該安裝好如Apache、Nginx、PHP或Java、MySQL及Varnish、memcached等常見的服務(wù)程序,想用時隨時可以開啟,省去了重新編譯安裝的時間,統(tǒng)一了編譯參數(shù),為以后的自動化運維做好鋪墊。
- 模板機以后需要通過網(wǎng)絡(luò)分發(fā),所以模板機的體積不宜過大,以20GB為宜。
- 如果是大規(guī)模的部署XEN虛擬機,可以考慮搭建內(nèi)網(wǎng)YUM源服務(wù)器,然后修改模板機的YUM源為同一內(nèi)網(wǎng)服務(wù)器。
- 需要編寫一個修改主機名及IP地址的SHELL腳本,輸入IP地址和主機名后,腳本就可以自動修改這些信息。
下面我們以名為vm1的XEN為模板機來克隆名為vm6的XEN虛擬機,命令如下:
virt-clone -o vm1 -n vm6 -f /data/vm/vm6.img
克隆成功以后我們需要作主機名和IP的修改,這里用腳本來簡化此工作量即可。
5. XEN虛擬機的管理
1.XEN虛擬機常用的命令為:
xm list:查看當(dāng)前機器里的全部虛擬機列表。 xm help:所有可用的xm命令概述。 xm top:提供所有的虛擬機的狀態(tài)概貌。 xm create xxxx:啟動名字為xxx的虛擬機。 xm shutdown xxx:關(guān)閉名字為xxx的虛擬機。 xm destroy xxx:像關(guān)掉電源那樣關(guān)閉名字為xx的虛擬機。 xm reboot xxx:重啟名字為xxx的虛擬機。 xm pause xxx:暫停名字為xxx的虛擬機。 xm resuem xxx:繼續(xù)運行名字為xxx的虛擬機。 xm save xxx:保存虛擬機狀態(tài)到一個文件。 xm restore:重新啟動已經(jīng)保存在文件里的虛擬機。
2.如何快速的新建XEN虛擬機呢?
其實我們只需要拷貝XEN虛擬機的img鏡像文件和配置文件,并修改配置文件中的鏡像路徑和虛擬機名稱就可以了。注意要修改虛擬機的MAC地址,要不然會出現(xiàn)沖突。
3.讓虛擬機隨宿主機一起啟動。
只要在/etc/xen/auto建立一個xen vm配置文件的鏈接就可以了,如下列命令所示:
ln -s /etc/xen/vm1 /etc/xen/auto/vm1
4. XEN虛擬機時間同步失敗的解決辦法
虛擬機同宿主機硬件時鐘同步,本來是很方便的嘛。不過因為軟件模擬中斷會在負(fù)載變化的時候出現(xiàn)延遲,所以慢慢會跑慢了,這個時候我們可以用如下方法來解決。
我們修改/etc/sysctl.conf文件,增加內(nèi)容如下所示:
xen.independent_wallclock = 1
然后執(zhí)行以下命令讓其立即生效,如下所示:
sysctl -p
6. XEN虛擬機的優(yōu)勢
XEN虛擬機的的優(yōu)勢有如下幾點:
?。?)XEN的工作原理是基于準(zhǔn)虛擬化(半虛擬化)的,是獲得最佳性能的方法,XEN虛擬化只有2%-8%的效能損耗,大家可以看一下XEN作為VPS虛擬主機的使用率。
?。?)XEN虛擬機是以文件的形式存在的,所以虛擬機的遷徒和備份及恢復(fù)都是非常方便的。
?。?)Linux下的各種版本自帶了XEN虛擬化軟件,這個跟大多數(shù)Linux系統(tǒng)一樣是免費開源的,大家就不需要擔(dān)心版權(quán)問題了。
?。?)XEN利用模板功能10分鐘就能克隆出一臺XEN虛擬機來,在大規(guī)模的虛擬機集群部署上,我們短時間就能部署200臺以上的XEN虛擬機集群,在自動化運維越來越重要的今天,這個功能非常重要。
注意:對部會會嚴(yán)重消耗I/O的服務(wù),如Cache服務(wù)器、數(shù)據(jù)庫服務(wù)器,不建議使用XEN虛擬機。
本文作者:余洪春(撫琴煮酒),英文名Andrew.Yu。
個人博客地址:http://andrewyu.blog.51cto.com/,
Sina微博地址:http://weibo.com/yuhongchun027。