Version 68 (modified by rock, 15 years ago) (diff) |
---|
實作二: Xen 虛擬化叢集安裝操作
【前言】
- 安裝前的小叮嚀
- pcXXX 和 pcYYY 都已安裝好 Xen (若 pcYYY 還沒可以安裝好,可以參考實作一的 Step 1 ~ 2,順便複習一下實作1。或是再第2台機器執行以下script來設定 Xen 環境
/*** 第2台機器 (新竹) ***/ $ wget clouder@192.168.168.254:~/setup_Xen_HB.sh . $ sudo ./setup_Xen_HB.sh /*** 第2台機器 (台中) ***/ $ wget clouder@pc-eth1:~/setup_Xen.sh $ sudo ./setup_Xen.sh
- 目前 pcXXX 並無任何正在執行的 VM (若是有的話使用 sudo xm destroy [VM_Name|VM_ID] 來關閉)
$ sudo xm list
- ONE 只需安裝在 pcXXX 即可 (pcXXX 及為 OpenNEbula Server)
- pcXXX 為 ONE Server 和 NFS Server
- 網路架構採用 Bridge
- 共享的 Storage 採用 NFS (才能做 Migrate 和 Live Migrate )
- pcXXX 和 pcYYY 都已安裝好 Xen (若 pcYYY 還沒可以安裝好,可以參考實作一的 Step 1 ~ 2,順便複習一下實作1。或是再第2台機器執行以下script來設定 Xen 環境
- 將之前透過 xm create 開啟的虛擬機器先 destroy
$ sudo xm destroy [VM_Name] $ sudo xm list
- 軟體說明:
Host/dom0 OS | Ubuntu 9.04 Desktop (AMD64) |
VM/Guest/dmoU OS | Debian lenny (AMD64) |
Xen | 3.2 |
OpenNEbula | 1.2.1 |
【Step 0: 流程】
- 本範例將說明如何安裝與設定 OpenNEbula 以及如何透過 OpenNEbula 來啟動管理虛擬機器
【Step 1: 安裝需要的套件】
- pcXXX 和 pcYYY 須安裝相關套件
$ sudo aptitude -y install ruby sqlite3 libsqlite3-0 libsqlite3-dev libsqlite3-ruby libxmlrpc-c3 libxmlrpc-c3-dev scons g++ flex bison
【Step 2: 下載並安裝OpenNEbula】
- 在 pcXXX 上執行 (OpenNEbula 只需安裝在 pcXXX 上)
- 下載 source code
$ cd $ wget http://opennebula.org/files/one-1.2.1.tar.gz $ tar zxvf one-1.2.1.tar.gz
- 編譯和安裝 OpenNEbula
$ cd one-1.2.1 $ sudo scons $ sudo mkdir /home/one $ sudo ./install.sh -d /home/one
- 編輯 OpenNEbula 路徑
$ sudo su # echo export ONE_LOCATION=/home/one >> ~/.bashrc # echo export ONE_XMLRPC="http://localhost:2633/RPC2" >> ~/.bashrc # echo export PATH='$ONE_LOCATION/bin:$PATH' >> ~/.bashrc # source ~/.bashrc # echo $ONE_LOCATION (測試 $ONE_LOCATION 路徑是否存在)
【Step 3: 編輯 ONE 設定檔】
- 在 pcXXX 上編輯,將 160~164 行註解掉,打開 169~173 行
# cd /home/one # gedit etc/oned.conf
21 HOST_MONITORING_INTERVAL = 3 23 VM_POLLING_INTERVAL = 3 160 # TM_MAD = [ 161 # name = "tm_ssh", 162 # executable = "one_tm", 163 # arguments = "tm_ssh/tm_ssh.conf", 164 # default = "tm_ssh/tm_ssh.conf" ] 169 TM_MAD = [ 170 name = "tm_nfs", 171 executable = "one_tm", 172 arguments = "tm_ssh/tm_nfs.conf", 173 default = "tm_ssh/tm_nfs.conf" ]
【Step 4: 啟動 ONE】
- 啟動 ONE 前的小叮嚀:
- 確認 pcXXX 和 pcYYY 已執行 xend start
- 兩台都可讓 root 免密碼 ssh 登入 (此步驟已預先幫學員做好了,細節可參考此網頁)
- 只需在 pcXXX 啟動 ONE 即可
- 在 pcXXX 上執行
# one start
【Step 5: 新增 pcXXX 和 pcYYY 到 ONE Pool】
- 在 pcXXX 上執行 (X 和 Y 請自行修改成自己的電腦名稱)
# onehost add pcXXX im_xen vmm_xen tm_nfs # onehost add pcYYY im_xen vmm_xen tm_nfs # onehost list HID NAME RVM TCPU FCPU ACPU TMEM FMEM STAT 1 pcXXX 0 400 399 400 1313856 0 on 2 pcYYY 0 400 399 400 1313856 0 on # onehost show pcXXX
- onehost list參數說明
- RVM - Number of running VMs
- TCPU - Total CPU
- FCPU - Free CPU
- ACPU - Available CPU (not allocated by VMs)
- TMEM - Total Memory
- FMEM - Free Memory
【Step 6: 使用 ONE 來開啟 VM】
- 在 pcXXX 上執行
- 編輯 vm01 的設定檔 (X 和 Y 請自行修改成自己的電腦名稱)
# cd /home/domains # gedit vm01.one
NAME = vm01 CPU = 1 MEMORY = 128 OS = [ kernel = /boot/vmlinuz-2.6.26-2-xen-amd64, initrd = /boot/initrd.img-2.6.26-2-xen-amd64, root = sda2] DISK = [ source = /home/domains/vm01/disk.img, clone = no, target = sda2, readonly = no] DISK = [ type = swap, size = 128, target = "sda1", readonly = "no" ] NIC=[IP="192.168.168.X", MAC="00:16:00:00:00:XX"]
- 使用 ONE 來開啟 vm01
# onevm create vm01.one # onevm deploy vm01 pcXXX # onevm list ID NAME STAT CPU MEM HOSTNAME TIME 1 vm01 runn 0 131072 pcXXX 00 00:04:21 # onevm show vm01
- 使用 ssh 來登入 vm01
$ ssh 192.168.100.X -l clouder # ping ptt.cc CTRL+D
- 關掉 vm01
# onevm list # onevm shutdown vm01 # onevm list
【討論 & 休息】
- 回顧:
- 安裝 OpenNEbula
- 設定 OpenNEbula
- 使用 onehost 來管理實體機器
- 使用 onevm 來管理虛擬機器