wiki:Reading/XenP/cluster

【建立 Xen Cluster】

1.佈署成 Cluster

  1. 可使用 DRBL 或 CloneZilla 來佈署 Cluster
  2. 此次為了方便,可直接使用隔壁桌的電腦

2.第二台機器的設定

  • 2.1 更改第二台主機名稱為 node02
    $ sudo vim /etc/hostname
    node02
    
    $ sudo hostname -F /etc/hostname
    CTRL + D
    
    $ sudo /etc/init.d/gdm restart
    
  • 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 ServerNFS Server
    • 此練習不用考慮網路架構和IP分配 (網路架構採用 Bridge 和 IP 交由 DRBL Server 動態分配)
    • 共享的 Storagr 採用 NFS (才能做 Migrate 和 Live Migrate )

範例的系統架構圖 -> 範例的 ONE 架構圖 ->

  • 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
        
  • 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)

Download all attachments as: .zip