---------------------------------------
一、前言
二、環境
三、安裝與配置
四、建立xen虛拟機
1.圖形安裝(附:VNC安裝)
2.字元安裝
五、管理xen虛拟機
1.字元管理
2.圖形管理
六、克隆xen虛拟機
七、xen虛拟機增加硬備盤(模拟)
八、xen虛拟機添加網卡
九、實體機連接配接xen虛拟機(安裝有vmware的實體機)
---------------------------------------
XEN 是一個基于X86架構、發展最快、性能最穩定、占用資源最少的開源虛拟化技術。Xen可以在一套實體硬體上安全的執行多個虛拟機,與 Linux 是一個完美的開源組合,Novell SUSE Linux Enterprise Server 最先采用了XEN虛拟技術。它特别适用于伺服器應用整合,可有效節省營運成本,提高裝置使用率,最大化利用資料中心的IT基礎架構。Xen無需特殊硬體支援,就能達到高性能的虛拟化。
系統:centos5.5 32位 在安裝有vmware的實體機下測試
軟體包:
xen.i386 xen工具套件
kernel-xen.i686 xen核心
virt-manager.i386 虛拟管理工具
virt-viewer.i386 圖形終端
# cat /proc/cpuinfo |grep flags //半虛拟化為pae,全虛拟化為vmx(inter)或svm(AMD)的一個
flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss nx rdtscp lm constant_tsc up nonstop_tsc arat pni ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm [8]
請關閉防火牆和SELinux
# yum install xen kernel-xen virt-manager virt-viewer
# ll /boot/ //檢視核心
-rw-r--r-- 1 root root 69593 Apr 3 2010 config-2.6.18-194.el5
-rw-r--r-- 1 root root 69266 Apr 3 2010 config-2.6.18-194.el5xen
drwxr-xr-x 2 root root 1024 Sep 20 00:13 grub
-rw------- 1 root root 2623799 Sep 19 23:38 initrd-2.6.18-194.el5.img
-rw------- 1 root root 2625199 Sep 20 00:13 initrd-2.6.18-194.el5xen.img
drwx------ 2 root root 12288 Sep 19 23:32 lost+found
-rw-r--r-- 1 root root 80032 Mar 13 2009 message
-rw-r--r-- 1 root root 110979 Apr 3 2010 symvers-2.6.18-194.el5.gz
-rw-r--r-- 1 root root 111145 Apr 3 2010 symvers-2.6.18-194.el5xen.gz
-rw-r--r-- 1 root root 967675 Apr 3 2010 System.map-2.6.18-194.el5
-rw-r--r-- 1 root root 963308 Apr 3 2010 System.map-2.6.18-194.el5xen
-rw-r--r-- 1 root root 1875796 Apr 3 2010 vmlinuz-2.6.18-194.el5
-rw-r--r-- 1 root root 2244980 Apr 3 2010 vmlinuz-2.6.18-194.el5xen
-rw-r--r-- 1 root root 382542 Apr 3 2010 xen.gz-2.6.18-194.el5
-rwxr-xr-x 1 root root 829448 Apr 3 2010 xen-syms-2.6.18-194.el5
# vim /boot/grub/grub.conf
default=0 //将1修改為0,啟動2.6.18-194.el5xen核心
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-194.el5
module /vmlinuz-2.6.18-194.el5xen ro root=LABEL=/ rhgb quiet
module /initrd-2.6.18-194.el5xen.img
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-194.el5.img
# reboot
# uname -r //重新開機後檢視核心
2.6.18-194.el5xen
# yum install httpd //建立xen安裝目錄樹(使用web伺服器搭建)
# mkdir /var/www/html/centos
# mount /dev/cdrom /var/www/html/centos/
# service httpd start
浏覽器通路web伺服器:
0.VNC安裝
# yum install vnc-server
# vncserver
You will require a password to access your desktops.
Password: //輸入密碼
Verify: //重複密碼
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
VNC用戶端通路192.168.2.200:1 //無法正常顯示桌面,顯示為指令行
# vim .vnc/xstartup //将4和5行注釋去掉即可
4 unset SESSION_MANAGER
5 exec /etc/X11/xinit/xinitrc
# vncserver
New 'localhost.localdomain:2 (root)' desktop is localhost.localdomain:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:2.log
VNC用戶端通路192.168.2.200:2 //正常
1.圖形工具(virt-manager)
按照圖示進行操作,即可進入。
點選New,建立虛拟機。
提示配置虛拟機相關資訊。
輸入虛拟機名稱。
選擇半虛拟化。
選擇安裝樹(http),及系統版本。
填寫安裝樹位址,最後的斜杠别忘記寫。
虛拟機儲存位置,及虛拟機大小,必須先建立存放目錄。
# mkdir /data //存放虛拟機目錄
網絡選擇預設即可。
記憶體及cpu按需填寫。
預覽整個配置資訊。
開始提取檔案。
下面的操作和安裝系統是一樣的,不再截圖,但是網卡那步選擇預設,自動獲得IP,否則,安裝會失敗。
安裝完成後,系統可能重新開機中斷,可以手動運作VM01。如下圖
# cd /data/ //檢視虛拟機檔案
# ll -h
total 4.0G
-rwxr-xr-x 1 root root 4.0G Sep 21 00:55 VM01.img
2.指令行方式
# virt-install -h //查詢各個指令含義
# virt-install -n VM02 -f /data/vm02.img -s 4 -r 128 nographics -l http://192.168.2.30/centos
也會出現圖形安裝方式,和安裝作業系統一樣。
常用指令:
xm list 顯示虛拟機運作狀态
xm console 使用文本方式連接配接虛拟系統
xm create 開啟虛拟系統
xm shutdown 關閉虛拟系統
注:虛拟機和主控端之間切換使用ctrl+】(右方括号)
# xm create VM01 //開啟VM01虛拟機
Using config file "/etc/xen/VM01".
Started domain VM01
# xm console VM01 //進入VM01虛拟機,使用ctrl+】退出虛拟機
# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 2549 1 r----- 940.6
VM01 5 511 1 -b---- 22.5
可以使用VNC用戶端連接配接,選中虛拟機,點選Open進行操作。
可以進入系統,檢視硬體等一系列操作。
六、xen虛拟機克隆
# virt-clone -h
# virt-clone -o VM01 -n VM02 -f /data/VM02.img //克隆,vm01必須關機
Cloning /data/VM01.img | 3.9 GB 01:39
Clone 'VM02' created successfully.
克隆腳本
# vim clonexen.sh
#!/bin/bash
i=3
while [ $i -le $1 ]
do
/usr/bin/virt-clone -o vm01 -n vm$i -f /data/vm$i.img
echo "vm$i clone successfully"
i=$(($i+1))
done
# chmod a+x clonexen.sh
#./clonexen.sh 20 //克隆虛拟機名稱從2-20
七、為xen增加硬備盤
# xm shutdown VM01 //關閉系統
# dd if=/dev/zero of=/data/00.img bs=1M count=100 //建立一個100M大小的檔案
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.435551 seconds, 241 MB/s
# ll /data/
total 5157840
-rw-r--r-- 1 root root 104857600 Sep 21 01:47 00.img
-rwxr-xr-x 1 root root 4194304000 Sep 21 01:27 VM01.img
-rwxr-xr-x 1 root root 4194304000 Sep 21 01:38 VM02.img
# vim /etc/xen/VM01
name = "VM01"
uuid = "d8840067-5161-d89b-642b-5d2dd6f5b95c"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "tap:aio:/data/VM01.img,xvda,w","tap:aio:/data/00.img,xvdb,w" ]
//将新增的檔案添加即可,将xvda修改為xvdb
vif = [ "mac=00:16:36:09:2d:0d,bridge=virbr0,script=vif-bridge" ]
# xm create VM01 //啟動VM01
Using config file "/etc/xen/VM01".
Started domain VM01
# xm console VM01 //進入VM01
# fdisk -l
Disk /dev/xvda: 4194 MB, 4194304000 bytes
255 heads, 63 sectors/track, 509 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/xvda1 * 1 25 200781 83 Linux
/dev/xvda2 26 152 1020127+ 82 Linux swap / Solaris
/dev/xvda3 153 509 2867602+ 83 Linux
Disk /dev/xvdb: 104 MB, 104857600 bytes
255 heads, 63 sectors/track, 12 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/xvdb doesn't contain a valid partition table
# fdisk /dev/xvdb //分區,格式化,挂載,測試
# mkfs.ext3 /dev/xvdb1
# mkdir /db
# mount /dev/xvdb1 /db
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda3 2.7G 907M 1.7G 36% /
/dev/xvda1 190M 13M 168M 7% /boot
tmpfs 257M 0 257M 0% /dev/shm
/dev/xvdb1 92M 5.6M 81M 7% /db
# echo '123'>/db/1.txt
# cat /db/1.txt
123
# vim /etc/xen/VM01 //在主控端上修改VM01的配置檔案,vif
name = "VM01"
uuid = "d8840067-5161-d89b-642b-5d2dd6f5b95c"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "tap:aio:/data/VM01.img,xvda,w","tap:aio:/data/00.img,xvdb,w" ]
vif = [ "mac=00:16:36:09:2d:0d,bridge=virbr0,script=vif-bridge","mac=00:16:36:09:2d:1e,bridge=virbr0,script=vif-bridge" ]
//在vif中添加一條即可,MAC須不同
# xm reboot VM01
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:36:09:2D:0D
inet addr:192.168.122.90 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::216:36ff:fe09:2d0d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:86 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10605 (10.3 KiB) TX bytes:7507 (7.3 KiB)
eth1 Link encap:Ethernet HWaddr 00:16:36:09:2D:1E
inet addr:192.168.122.58 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::216:36ff:fe09:2d1e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:90 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10675 (10.4 KiB) TX bytes:7047 (6.8 KiB)
九、實體機連接配接xen虛拟機(在vmware中測試)
xen主控端:即在vmware中安裝有xen的centos
xen虛拟機:即通過安裝有xen的centos虛拟出來的系統
xen主控端選擇橋接模式,且實體機後端必須要有交換機或路由器。
vif = [ "mac=00:16:36:29:b1:a6,bridge=xenbr0,script=vif-bridge" ]