Xen 半虛擬化安裝教學

由 Derek 發表於 十月 20, 2011 / 尚無評論

一、 Xen介紹 :

在虛擬化軟體的部份,可分為VMWareXenKVMVritualBox是較為常見的。在Xen這到自由軟體上主要可分為半虛擬化(Para-virtualization) 及全虛擬化 (Full virtualization) 兩種,其中半虛擬化主要是透過修改Linux 核心來達成的虛擬技術。另外Xen能安裝和運行在實際的物理分區上或LVM分區上。

 

二、 設定說明 :

1.查看是否能支援XEN虛擬化

半虛擬化 : pae(實體位址延伸技術)

全虛擬化 : pae(實體位址延伸技術)Intel (vmx) AMD (svm)

                vmxsvm只需要有一種就可以了。

而在半虛擬化的部份,基本上只要是64位元的x86主機都可支援半虛擬化

 


[root@localhost ~]# cat /proc/cpuinfo | grep flags

flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36

           clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm

           constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3

           cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

 

 

2. 安裝XEN套件和相關套件:

2.1 安裝相關套件


[root@localhost ~]# yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial

 

2.2 安裝XEN


[root@localhost ~]# yum groupinstall Virtualization

 

 

3.修改kernel

3.1 修改kernel,用新的kernel開機

安裝好套件後的會看到下面多出黃色的區塊。

修改開機選單default=1,把1改為0


[root@localhost ~]# vi /boot/grub/menu.lst

default=0        #1改為0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-274.3.1.el5xen)

        root (hd0,0)

        kernel /boot/xen.gz-2.6.18-274.3.1.el5

        module /boot/vmlinuz-2.6.18-274.3.1.el5xen ro root=LABEL=/1

        module /boot/initrd-2.6.18-274.3.1.el5xen.img

title CentOS (2.6.18-238.el5)

        root (hd0,0)

        kernel /boot/vmlinuz-2.6.18-238.el5 ro root=LABEL=/1

        initrd /boot/initrd-2.6.18-238.el5.img

 

3.2 重啟伺服器


[root@localhost ~]# reboot

 

3.3查看核心

查看是否為修改後的核心


[root@localhost ~]# uname -r

2.6.18-274.3.1.el5xen

 

 

4. 查看相關設定是否正確

4.1 Xen log存放位置


[root@localhost ~]# cd /var/log/xen

 

4.2 查看網卡

會看到多出peth0vif0.0virbr0xenbr0這四張網卡


 [root@localhost ~]# ifconfig

peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1

          RX packets:624 errors:0 dropped:0 overruns:0 frame:0

          TX packets:243 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:62590 (61.1 KiB)  TX bytes:31705 (30.9 KiB)

          Interrupt:24 Memory:d6000000-d6012800

 

vif0.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1

          RX packets:256 errors:0 dropped:0 overruns:0 frame:0

          TX packets:526 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:33213 (32.4 KiB)  TX bytes:54818 (53.5 KiB)

 

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00 

          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:3329 (3.2 KiB)

 

xenbr0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1

          RX packets:359 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:36546 (35.6 KiB)  TX bytes:0 (0.0 b)

 

 

5. 準備安裝源

5.1從光碟中複製安裝(放入光碟)


[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mkdir /opt/iso               #建立資料夾存放安裝源

[root@localhost ~]# dd if=/dev/cdrom of=/opt/iso/centos.iso  

                     #將光碟中的資料複製到centos.iso,需要一些時間請稍後。

8299392+0 records in

8299392+0 records out

4249288704 bytes (4.2 GB) copied, 558.97 seconds, 7.6 MB/s

[root@localhost ~]# ll -h /opt/iso/centos.iso     #查看檔案是否正確

 

5.2 把複製好的檔案mount


[root@localhost ~]# mount -o loop -t iso9660 /opt/iso/centos.iso /mnt/cdrom

                                  #將複製好的安裝源mount/mnt/cdrom

[root@localhost ~]# df -h         #卻認是否有mount成功

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                       38G  5.8G   31G  16% /

/dev/sda1              99M   21M   73M  23% /boot

tmpfs                 3.8G     0  3.8G   0% /dev/shm

none                  3.8G  104K  3.8G   1% /var/lib/xenstored

/opt/iso/centos.iso   4.0G  4.0G     0 100% /mnt/cdrom

 

 

6. 制作映像文件

使用映像的缺點是在安全性和效能上會低一些,但是優點是很方便。

6.1 創建一個10G大小的檔案


 [root@localhost ~]# mkdir /opt/faq

[root@localhost ~]# cd /opt/faq

[root@localhost ~]# dd if=/dev/zero of=faq.img bs=1M seek=10000 count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.001977 seconds, 530 MB/s

 

6.2 安裝源獲取方式

在使用安裝源的部份可分為httpftpnfs三種

在這邊我們使用nfs的方式,因為nfs的方式是最簡單的。

若想了解NFS的設定方式可參考「NFS Server端設定


[root@localhost ~]# vi /etc/exports

#加入以下資料

/mnt/cdrom *(sync,ro)

[root@localhost ~]# yum install nfs-utils portmap

[root@localhost ~]# /etc/init.d/portmap start      #啟動服務

[root@localhost ~]# /etc/init.d/nfs start          #啟動服務

[root@localhost ~]# exportfs –rv    #查看nfs設定是否正確

exporting *:/mnt/cdrom

 

 

7. 安裝xen虛擬機

7.1 Xen環境配置的方式有兩種,一種是詢問式安裝,另一種是直接輸入指令安裝。

詢問式 :


[root@localhost ~]# virt-install --prompt

Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no   #詢問是否安裝全虛擬化yes為全虛擬,no為半虛擬化。這邊選no

 

 What is the name of your virtual machine? faq    #輸入讓Xen識別的名稱

 

 How much RAM should be allocated (in megabytes)? 1024   #輸入記憶體大小

 

 What would you like to use as the disk (file path)? /opt/faq/faq.img 

#輸入虛擬機硬碟的位置

 

  What is the install URL? nfs://10.254.201.181/mnt/cdrom    #輸入NFS來源

 

直接輸入指令


[root@localhost ~]# virt-install -n faq -r 2048 -f /opt/faq/faq.img  --nographics -l nfs:10.254.201.181:/mnt/cdrom

# -n :後面接你的domain-U的名稱,這個名稱的設定檔會被主動建立在 /etc/xen 底下

# -r :後面接妳要給這個 domain-U 的記憶體,目前至少需要 256MB 才能夠執行

# -f :後面接的就是那個要給 domain-U 的大檔案囉!

# –nographics :不使用圖形介面來安裝的意思;

# -l :後面接安裝伺服器的來源。安裝伺服器的寫法為:

#   NFS 時:   nfs:主機的IP:可以安裝的目錄

#   WWW 時:   http://主機的IP/實際的/完整目錄

#   FTP 時:   ftp://主機的IP/實際的完整目錄

 

7.2 開始安裝

設定如果都沒有問題的話,就會進入了安裝的畫面。

7.2.1 選擇語系,基本上都是選擇English。也可以依個人選別種語系,但不太確定字元顯示是否會正常,所以還是建議選英文就可以了。


 

7.2.2 設定在IPv4的部份是要使用DHCP或是自行設定IP,由於目前還沒使用到IPv6,所以會建議將IPv6關閉不使用。


 

7.2.3 若是選擇Manual configuration(手動設定),就會看到此畫面。請依個人填入IP設定。


 

7.2.4 詢問要使用VNC安裝或是純文字安裝。在這邊選用Use text mode(文字模式)


 

7.2.5 歡迎畫面


 

7.2.6 這是一個提醒警告訊息。選YES就行了。


 

7.2.7 接下來就是進行硬碟的分割了。有四種方式可以選擇,請依各人需求選擇。

Remove all partitions on selected drives and create default layout

(移除所選磁碟上的所有分割區,並建立預設分割模式)

Remove linux partitions on selected drives and create default layout

(移除所選磁碟上的 Linux 分割區,並建立預設的分割模式)

Use free space on selected drives and create default layout

(使用所選取磁碟上的未使用空間,建立預設的分割模式)

Create custom layout

(建立自訂的分割模式)


 

7.2.8 詢問是否確定要選此方式來分割硬碟。


 

7.2.9 詢問是否要檢查或是修改分割設定。


  

7.2.10 進到此畫面後,就可以對設定的大小做更動了。(此部份就依自行需求設定)


 

7.2.11 設定開機管理程式,這邊選擇Use GRUB Boot Loader,使用GRUB開機管理程式。

 

7.2.12 設定domain-U 所使用的終端介面裝置,這邊直接選OK


 

7.2.13 是否需要設定開機選單密碼,基本上是不用設定的。除非有另外用途。


 

7.2.14 由於選單只有一個,也就不用改了,直接OK


 

7.2.15選擇要安裝在那一個位置,當然是選/dev/xvda


 

7.2.16 提示訊息,接下來要設網卡(eth0)


 

7.2.17 設定網路是否要開機啟動。IP的部份看是要用IPv4還是IPv6,這邊會建議使用IPv4


 

7.2.18 選擇是要使用DHCP還是手動設定。若選手動設定的話,請輸入IP AddressNetmask


 

7.2.19 此畫面要選用手動設定才會看到的。請輸入GatewayDNS


 

7.2.20 設定主機名稱。


 

7.2.21 設定時區,請選Asia/Taipei


  

7.2.22 設定root登入的密碼。


 

7.2.23 選擇要安裝的套件。也可勾選Customize software selection(自定軟件)。若是一般SERVER在使用,建議選擇Server就行了。剩下不夠的套件在自行安裝。

 

7.2.24 這是通知的訊息,告知設定會被記錄到該處。/root/install.log


 

7.2.25  開始安裝。需要一點時間請稍後。


 

7.2.26 安裝完成後要重開機。

重開機之後就可以和一般Linux一樣登入使用了。

 

 

8. 宿主機和虛擬機切換的指令


[root@localhost ~]# xm create faq -c       #啟動虛擬機

[root@localhost ~]# ctrl+]                 #離開虛擬機

[root@localhost ~]# xm co faq              #切回虛擬機

[root@localhost ~]# xm shutdown faq        #關閉虛擬機(需在宿主機上執行)

[root@localhost ~]# xm list  #可以看目前虛擬機是否有在運行(要離開虛擬機才看的到)

Name                                      ID Mem(MiB) VCPUs State   Time(s)

Domain-0                                   0     5949    16 r—–    911.9

faq                                        3     2048     1 -b—-     24.5

 

 

9. 設定檔的位置

基本上來說Xen的設定檔都存放在/etc/xen

而設定檔的檔名大部份都是由當初設定Xen時給的名稱命名的。


[root@localhost ~]# vim /etc/xen/faq

name = "faq"                                     #Xen名稱

uuid = "874490f4-cac6-2924-0585-717185fd51f2"    #定義裝置的uuid號碼

maxmem = 2048

memory = 2048                                     #記憶體大小

vcpus = 1

bootloader = "/usr/bin/pygrub"

#利用domain-U自己的核心開機,要使用domain-U核心開機,就要設定此項目

on_poweroff = "destroy"

on_reboot = "restart"

on_crash = "restart"

disk = [ "tap:aio:/opt/faq/faq.img,xvda,w" ]       #硬碟設定

vif = [ "mac=00:16:3e:6e:a2:49,bridge=xenbr0,script=vif-bridge" ]  

#網卡設定可直接指定要模擬網卡的實體卡號或使用橋接器

 

 

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

此文章尚無評論。

發表評論

*