Ads 468x60px

Pages

2010年8月12日 星期四

CentOS 5.x RHEL(RedHat Enterprise Linux) 5.x 安裝 Xen hypervisor 3.x 筆記



因為工作上的需求,要提供多份的 RHEL 5.x 環境給不同部門做測試用;因為是測試用,所以它所需的硬體資源也不會太多,於是乎想到來試試把它們都安裝到同一台主機上吧!要達成這個目的,非 Virtualization 莫屬。

因為是要提供 RHEL 5.x 的環境,Redhat 公司對於 Xen Hpyervisor 支援完整,所以就直接選定用它囉!

Xen 支援兩種不同的虛擬化模式:Para-virtualization(半虛擬化), Fully-virtualization(全虛擬化),以下是它們的簡短介紹。

  • Para-virtualization(半虛擬化)
    • 半虛擬化需使用特殊的系統核心(Xen kernel or kernel-xen). 半虛擬化的作業系統(guest)在執行時可以共用主系統(host)的資源(libraries and devices)。所以它相對的會比全虛擬化系統快速。
  • Full virtualization(全虛擬化)
    • 全虛擬化系統使用處理器的功能來提供整個硬體資源的抽象層(可以稱作虛擬機器),然後將所要安裝的作業系統安裝在它的上面,就好是裝在一台實體的機器一般。


對於我來說,因為都是要用 RHEL,所以我就選用 Para-virtualization。

1. 檢查 Kenel

[w2 ~]$ uname -r
2.6.18-128.el5

如果沒有出現 xen 字眼的話,代表你的核心還不支援

2. 安裝 Xen Kenel

請安裝底下這幾個 packages 。

xen 
kernel-xen
python-virtinst
libvirt
libvirt-python

還沒結束,這時要修改一下你的開機檔。請看一下 /boot/grub/menu.lst,確認 title Red Hat Enterprise Linux Server (2.6.18-128.el5xen) 是在第1筆,並且 default 要設成 0

[w2 /boot/grub]$ sudo cat menu.lst 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,2)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda3
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-128.el5xen)
        root (hd0,2)
        kernel /xen.gz-2.6.18-128.el5
        module /vmlinuz-2.6.18-128.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /initrd-2.6.18-128.el5xen.img
title Red Hat Enterprise Linux Server (2.6.18-128.el5)
        root (hd0,2)
        kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-128.el5.img
title Other
        rootnoverify (hd0,1)
        chainloader +1

改完了之後,就可以重開機了。sync;sync;sync;reboot

重新登入後,你就可以看到 xen 了。

$ uname -r
2.6.18-128.el5xen

3. 安裝來源

接下來,在安裝的時候,由於我們沒有辨法直接提供 DVD Drive ,所以只能透過 HTTP, FTP, or NFS 的方式提供 OS 的安裝檔。我這裡選用 NFS 的方式。

檢查並啟動 NFS 服務

[root@w2 home]# /sbin/service portmap status
portmap (pid 2279) is running...

[root@w2 home]# /sbin/service nfs status
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped

[root@w2 home]# /sbin/service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]

決定那個目錄可以透過 NFS 分享出去,設定 /etc/exports

[root@w2 ~]# cat /etc/exports 
# The directory is for RHEL iso image
/home/nfs/redhat 192.168.0.100/24(ro,sync)

試一下看看可不可以正確的 mount 到 NFS

[root@w2 ~]# mount -v -o ro,intr,timeo=14 192.168.0.100:/home/nfs/redhat /mnt/redhat
mount: no type was given - I'll assume nfs because of the colon
mount: trying 192.168.0.100 prog 100003 vers 3 prot tcp port 2049
mount: trying 192.168.0.100 prog 100005 vers 3 prot udp port 965

如果有問題的話,試著先關掉 iptable 的設定,等到用完之後,再重新啟動 iptable。

4. 提供 OS files tree

把 RHEL 5.x DVD 的 image 檔,mount 到 /home/nfs/redhat,一定要加參數 -o loop 喔!
[root@w2 ~]# mount -o loop /home/rhel-server-5.3-x86_64-dvd.iso /home/nfs/redhat

5. 開始裝 OS 囉!

以下指令,會以文字模式,從 NFS 的來源位置,安裝一個 paravirtualized Xen, 500MB RAM, 15GB of disk 的 RHEL 5.x 作業系統。此虛擬作業系統的 image file 會被放在 /home/xen/images/w2-vm001.img

過程中會需要以下資訊,請先行準備

HOSTNAME=w2-vm2.mydomain.com
GATEWAY=192.168.0.10
nameserver 192.168.0.50
nameserver 192.168.0.51

# virt-install \
    --paravirt \
    --name w2-vm001 \
    --ram 500 \
    --file /home/xen/images/w2-vm001.img \
    --file-size 6 \
    --nographics \
    --location nfs:192.168.0.100:/home/nfs/redhat

0 意見:

張貼留言