天天看點

CentOS5.5下xen配置(半虛拟化)

---------------------------------------

一、前言

二、環境

三、安裝與配置

四、建立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伺服器:

CentOS5.5下xen配置(半虛拟化)

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)

按照圖示進行操作,即可進入。

CentOS5.5下xen配置(半虛拟化)

點選New,建立虛拟機。

CentOS5.5下xen配置(半虛拟化)

提示配置虛拟機相關資訊。

CentOS5.5下xen配置(半虛拟化)

輸入虛拟機名稱。

CentOS5.5下xen配置(半虛拟化)

選擇半虛拟化。

CentOS5.5下xen配置(半虛拟化)

選擇安裝樹(http),及系統版本。

CentOS5.5下xen配置(半虛拟化)

填寫安裝樹位址,最後的斜杠别忘記寫。

CentOS5.5下xen配置(半虛拟化)

虛拟機儲存位置,及虛拟機大小,必須先建立存放目錄。

# mkdir /data	                                    //存放虛拟機目錄	      
CentOS5.5下xen配置(半虛拟化)

網絡選擇預設即可。

CentOS5.5下xen配置(半虛拟化)

記憶體及cpu按需填寫。

CentOS5.5下xen配置(半虛拟化)

預覽整個配置資訊。

CentOS5.5下xen配置(半虛拟化)

開始提取檔案。

CentOS5.5下xen配置(半虛拟化)

下面的操作和安裝系統是一樣的,不再截圖,但是網卡那步選擇預設,自動獲得IP,否則,安裝會失敗。

CentOS5.5下xen配置(半虛拟化)

安裝完成後,系統可能重新開機中斷,可以手動運作VM01。如下圖

CentOS5.5下xen配置(半虛拟化)
# 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進行操作。

CentOS5.5下xen配置(半虛拟化)

可以進入系統,檢視硬體等一系列操作。

CentOS5.5下xen配置(半虛拟化)

六、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" ]      

繼續閱讀