[[PageOutline]] {{{ #!html

實作二: Xen 虛擬化叢集安裝操作

}}} ---- = 【前言】 = * '''''安裝前的小叮嚀__''''' * 建議修改兩台機器的主機名稱 * 第1台電腦 {{{ $ sudo gedit /etc/hostname }}} {{{ #!sh node01 }}} {{{ $ sudo hostname -F /etc/hostname }}} * 第2台電腦 {{{ $ sudo gedit /etc/hostname }}} {{{ #!sh node02 }}} {{{ $ sudo hostname -F /etc/hostname }}} * node01 和 node02 的 /etc/hosts 都有彼此的資訊 {{{ $ sudo gedit /etc/hosts }}} {{{ #!sh 192.168.X.X node01 192.168.X.X node02 }}} * node01 和 node02 都已安裝好 Xen (若 node02 還沒可以安裝好,可以參考[https://trac.nchc.org.tw/cloud/wiki/Xen_Lab1 實作一的 Step 1 ~ 3],順便複習一下早上的實作 XD ) * ONE 只需安裝在 '''''node01''''' 即可 (node01 及為 OpenNEbula Server) * node01 為 '''''ONE Server''''' 和 '''''NFS Server''''' * 網路架構採用 Bridge * 共享的 Storage 採用 '''''NFS''''' (才能做 Migrate 和 Live Migrate ) ---- = 【Step 1: 安裝需要的套件】 = * node01 和 node02 須安裝相關套件 {{{ $ sudo aptitude install ruby sqlite3 libsqlite3-0 libsqlite3-dev libsqlite3-ruby libxmlrpc-c3 libxmlrpc-c3-dev scons g++ flex bison }}} ---- = 【Step 2: 下載並安裝One】 = * 在node01 上執行 (ONE 只需安裝在 node01 上) * 下載 source code {{{ $ wget http://opennebula.org/files/one-1.2.1.tar.gz $ tar zxvf one-1.2.1.tar.gz $ cd one-1.2.1 }}} * 修改 source code 的 src/vmm/XenDriver.cc {{{ $ sudo gedit src/vmm/XenDriver.cc }}} {{{ #!sh 237 << "'file:" << vm->get_remote_dir() << "/disk." << i << "," }}} * 編譯和安裝 OpenNEbula {{{ $ scons $ sudo ./install.sh }}} ---- = 【Step 3: 編輯 ONE 設定檔】 = * 在 node01 上編輯,將 160~164 行註解掉,打開 169~173 行 {{{ $ sudo gedit /etc/one/oned.conf }}} {{{ #!sh 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" ] }}} ---- = 【Step 4: 啟動 ONE】 = * 啟動 ONE 前的小叮嚀 * 確認 node01 和 node02 已執行 xend start * 兩台都可讓 root 自動登入 * node01 {{{ $ sudo su # cd # ssh-keygen -P "" -t rsa # cp .ssh/id_rsa.pub .ssh/authorized_keys # scp .ssh/authorized_keys node02:~/.ssh/ }}} * 測試 node01 的 root 是否可以免密碼登入到 node02 {{{ # ssh node02 CTRL + D }}} * 只需在 node01 啟動 ONE 即可 * 在 node01 上執行 {{{ # one start }}} ---- = 【Step 5: 新增 node01 和 node02 到 ONE Pool】 = * 在 node01 上執行 {{{ # onehost add node01 im_xen vmm_xen tm_nfs # onehost add node02 im_xen vmm_xen tm_nfs # onehost list }}} ---- = 【Step 6: 使用 ONE 來開啟 VM】 = * 在 node01 上執行 * 編輯 vm01 的設定檔 {{{ # vim /home/domains/vm01.one }}} {{{ #!sh NAME = vm01 CPU = 1 MEMORY = 156 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.X.X.X", MAC="XX:XX:XX:XX:XX:XX"] }}} * 使用 ONE 來開啟 vm01 {{{ # onevm create vm01.one # onevm deploy vm01 node02 # onevm list }}} * 練習:請在開啟一個虛擬機器名為 vm02 * 法一:複製 vm01 的 image,再修改參數 * 法二:使用 xen-create-image 指令 ----