因為工作上的需求,要提供多份的 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 意見:
張貼留言