【建立 Xen Cluster】
1.佈署成 Cluster
- 可使用 DRBL 或 CloneZilla 來佈署 Cluster
- 此次為了方便,可直接使用隔壁桌的電腦
2.第二台機器的設定
- 2.1 更改第二台主機名稱為 node02
$ sudo vim /etc/hostname node02 $ sudo hostname -F /etc/hostname CTRL + D $ sudo /etc/init.d/gdm restart
- 2.2 重複單機的 0 ~ 4 步驟 回到單機設定的頁面
- 2.3 確認 node01 和 node02 的 /etc/hosts 有 node01 和 node02 的資訊
$ sudo vim /etc/hosts 192.168.X.X node01 192.168.X.X node02
- 2.4 設定兩台的 ssh auto login,讓 root 不需打密碼登入 node01 和 node02
### 在 node01 上執行 ### $ su root $ ssh-keygen -P "" $ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys $ scp -r ~/.ssh node02:~/ $ ssh node02 $ ssh node01 CTRL + D CTRL + D
- 2.5 設定共享的 Storage (本練習使用 NFS ,node01-> NFS Server, node02-> NFS Client)
### node01 的設定 (192.X.X.X 為 node02 IP) ### $ sudo aptitude install nfs-kernel-server $ vim /etc/exports /home/domains 192.X.X.X(rw,sync) /home/one 192.X.X.X(rw,sync) $ /etc/init.d/nfs-kernel-server start $ showmount -a ### 切換到 node02 去掛載 nfs ### $ sudo mount.nfs node01:/home/domains /home/domains $ sudo mount.nfs node01:/home/one /home/one $ mount
3.安裝 ONE (OpenNEbula)
- 3.0 安裝前的小叮嚀
- ONE 只需安裝在 node01 即可 (ONE 的指令都在 node01 上執行)
- node01 為 ONE Server 和 NFS Server
- 此練習不用考慮網路架構和IP分配 (網路架構採用 Bridge 和 IP 交由 DRBL Server 動態分配)
- 共享的 Storagr 採用 NFS (才能做 Migrate 和 Live Migrate )
- 3.1 安裝需要的套件
$ sudo aptitude install ruby sqlite3 libsqlite3-0 libsqlite3-dev libsqlite3-ruby \ libxmlrpc-c3 libxmlrpc-c3-dev scons g++ flex bison
- 3.2 下載 ONE 和安裝
### 在node01 上執行 (ONE 只需安裝在 node01 上) ### $ wget http://opennebula.org/files/one-1.2.0.tar.gz $ tar zxvf one-1.2.0.tar.gz $ cd one-1.2.0 $ scons $ sudo mkdir /home/one ### 配置 ONE 環境變數 ### $ vim ~/.profile export ONE_LOCATION=/home/one export ONE_XMLRPC=http://localhost:2633/RPC2 export PATH=$PATH:$ONE_LOCATION/bin $ source ~/.profile $ sudo ./install.sh -d /home/one
4.使用 ONE 於 Xen Cluster
- 4.0 編輯 ONE 設定檔
### 在 node01 上編輯,將 160~164 行註解掉,打開 169~173 行 ### $ cd /home/one $ vim etc/oned.conf 23 VM_POLLING_INTERVAL = 1 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" ]
- 4.1 啟動 ONE
- 啟動 ONE 前的小叮嚀
- 確認 node01 和 node02 已執行 xend start
- 兩台都可讓 root 自動登入
- 只需在 node01 啟動 ONE 即可
### 在 node01 上執行 ### $ one start
- 啟動 ONE 前的小叮嚀
- 4.2 新增 node01 和 node02 到 ONE Pool
### 在 node01 上執行 ### $ onehost add node01 im_xen vmm_xen tm_nfs $ onehost add node02 im_xen vmm_xen tm_nfs $ sudo onehost list
- 4.3 使用 ONE 來開啟 VM
### 在 node01 上執行 ### ### 編輯 xen01 的設定檔 ### $ vim /home/domains/xen01.one NAME = xen01 CPU = 1 MEMORY = 156 OS = [ kernel = /boot/vmlinuz-2.6.22.9-rock, initrd = /boot/initrd.img-2.6.22.9-rock, root = sda2, kernel_cmd = "ro xencons=tty console=tty1"] DISK = [ source = /home/domains/xen01/disk.img, clone = no, target = sda2, readonly = no] DISK = [ type = swap, size = 512, target = "sda1", readonly = "no" ] NIC = [mac=""] ### 使用 ONE 來開啟 xen01 ### $ sudo onevm create xen01.one $ sudo onevm deploy xen01 node02 $ sudo onevm list
- 練習:請在開啟一個虛擬機器名為 xen02
- 法一:複製 xen01 的 image,再修改參數
- 法二:使用 xen-create-image 指令
5.使用 ONE 開啟 Hadoop Cluster
$ cd /home/hadoop $ ./prepare.sh $ cd /home/domains $ ./one_creatre_hadoop_cluster.sh $ onevm list
6.測試 Migration
- Migration 前的小叮嚀
- 有些指令在 node01 上執行,有的在 node02 上 (執行前得注意一下)
- 若不知道目前虛擬機器 xen01 跑在哪一台上,可在 node01 上執行 onevm list 來得知
- 6.1 Migrate
### 6.1.1 在 node01 上 ### $ cd /home/domains $ onevm create xen01.one $ onevm migrate xen01 node01 $ onevm list ### 6.1.2 在 node01(ONE Server) 上執行,將 xen01 Migrate 到 node02 (設設 xen01 已經跑在 node01) ### $ onevm migrate xen01 node02 $ onevm list ### 6.1.3 在 node02 登入 xen01,當 xen01 編譯程式時,將其 migrate 到 node01 ,看編譯過程式是否中斷 ### $ xm console one-X $ aptitude install build-essential $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2 $ tar jxvf linux-2.6.29.1.tar.bz2 $ cd linux-2.6.29.1 $ make allmodconfig $ make CTRL+] ### 6.1.4 在 node01 (ONE Server) 上,執行 Migrate 動作 ### $ onevm migrate xen01 node01 ### 6.1.5 登入到 xen01 檢查 make 程序是否中斷 ### $ xm console one-X $ top
- 6.2 Live Migrate
### 6.2.1 檢查 xen01 目前跑在哪一台實體機器上(假定 xen01 跑在 node01 時) ### $ onevm list ### 6.2.2 在 node01 登入 xen01,並讓 xen01 執行編譯核心的任務 ### $ xm console one-X $ cd linux-2.6.29.1 $ make allmodconfig $ make clean $ make ### 6.2.3 將正在編譯中的 xen01 live migrate 到 node02 ### $ onevm livemigrate xen01 node02 $ onevm list ### 6.2.4 在 node01 登入到 xen01,並檢查 make 程序是否中斷 ### $ xm console one-X $ top
Last modified 16 years ago
Last modified on Apr 21, 2009, 11:33:18 AM
Attachments (2)
- ONE_demo.png (22.4 KB) - added by rock 16 years ago.
- ONE_demo_2.png (11.8 KB) - added by rock 16 years ago.
Download all attachments as: .zip