[[PageOutline]] {{{ #!html

實作三: Xen 虛擬化叢集進階操作

}}} ---- = 【課前小叮嚀】 = * 有些指令在 __'''pcXXX'''__ 上執行,有的在 __'''pcYYY'''__ 上 (執行前得注意一下) * 若不知道目前虛擬機器 vm01 跑在哪一台上,可在 pcXXX 上執行 onevm list 來得知 ---- = 【Step 0: 流程】 = * 本進階操作將說明如何透過使用 OpenNEbula 來實作 Migrate & Live Migrate [[BR]] {{{ #!graphviz digraph finite_state_machine { rankdir=LR; ranksep=0.3; size="11,8"; node[shape=box,width=3.0]; "3.測試 Migratio" -> "4. 測試 Live Migration"; "1.設定共享儲存裝置 (NFS)" -> "2. 將 vm01 從 pcXXX migrate 到 pcYYY"; } }}} ---- = 【Step 1:設定共享儲存裝置 (NFS)】 = * 設定好 Shared Storage (本練習使用 NFS ,pcXXX-> NFS Server, pcYYY-> NFS Client) * '''pcXXX''' 的設定 (請將 '''__pcYYY IP__''' 換成適合您的值) {{{ $ sudo aptitude -y install nfs-kernel-server $ sudo vim /etc/exports }}} {{{ #!sh /home/domains 192.168.100.pcYYY_IP(rw,sync,no_subtree_check) /var/lib/one/ 192.168.100.pcYYY_IP(rw,sync,no_subtree_check) }}} {{{ $ sudo /etc/init.d/nfs-kernel-server restart $ sudo showmount -e localhost }}} * 切換到 '''pcYYY''' 去掛載 nfs (請將 '''__pcXXX__'''換成 nfs server 的電腦名稱) {{{ $ sudo aptitude install nfs-common $ sudo mkdir /home/domains $ sudo mount.nfs pcXXX:/home/domains /home/domains $ sudo mkdir -p /var/lib/one/ $ sudo mount.nfs pcXXX:/var/lib/one/ /var/lib/one/ $ mount }}} * 到 '''pcXXX''' 檢查是否已經有順利被 pcYYY mount 起來 {{{ $ showmount -a }}} ---- = 【Step 2: 開啟 VM 】 = * 在 '''__pcXXX__''' 上 (記得將 pcXXX 換成您的電腦名稱) {{{ $ cd /home/domains $ sudo su # onevm create vm01.one # onevm deploy vm01 pcXXX }}} ---- = 【Step 3: 測試 Migration 】 = * 將 vm01 從 pcXXX migrate 到 pcYYY {{{ $ onevm migrate vm01 pcYYY $ onevm list }}} * 登入 vn01,當 vm01 編譯程式時,將其 migrate 到 pcXXX ,看編譯過程式是否中斷 {{{ $ ssh 192.168.100.X -l clouder $ 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 }}} * 在 '''__pcXXX__''' 上執行,將 vm 01 從 pcYYY Migrate 回 pcXXX {{{ (開啟新一個新的終端機,輸入以下指令) $ sudo onevm migrate vm01 pcXXX }}} * 回到登入vm01的終端機,檢查編譯過程使是否有中斷 ---- = 【Step 4: 測試 Live Migration】 = * 檢查 vm01 目前跑在哪一台實體機器上(假定 vm01 跑在 pcXXX 時) {{{ $ onevm list }}} * 登入 vm01,並讓 vm01 執行編譯核心的任務 {{{ $ ssh 192.168.100.X -l clouder $ cd linux-2.6.29.1 $ make allmodconfig $ make clean $ make }}} * 開啟一個新的終端機,將正在編譯中的 vm01 live migrate 到 pcYYY {{{ $ sudo onevm livemigrate vm01 pcYYY $ sudo onevm list }}} * 回到登入 vm01的終端機,並檢查 make 程序是否中斷 {{{ $ top }}}