wiki:Xen_Lab2

Version 26 (modified by waue, 14 years ago) (diff)

--

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


【前言】

  • 安裝前的小叮嚀
    • 建議修改兩台機器的主機名稱
      • 第1台電腦
        $ sudo gedit /etc/hostname
        
        node01
        
        $ sudo hostname -F /etc/hostname
        
      • 第2台電腦
        $ sudo gedit /etc/hostname
        
        node02
        
        $ sudo hostname -F /etc/hostname
        
    • node01 和 node02 的 /etc/hosts 都有彼此的資訊
      $ sudo gedit /etc/hosts
      
      192.168.X.X  node01
      192.168.X.X  node02
      
    • node01 和 node02 都已安裝好 Xen (若 node02 還沒可以安裝好,可以參考實作一的 Step 1 ~ 3,順便複習一下早上的實作 XD )
    • ONE 只需安裝在 node01 即可 (node01 及為 OpenNEbula Server)
    • node01 為 ONE ServerNFS Server
    • 網路架構採用 Bridge
    • 共享的 Storage 採用 NFS (才能做 Migrate 和 Live Migrate )
  • 將之前透過 xm create 開啟的虛擬機器先 destroy
    $ sudo xm destroy {vm_name}
    $ sudo xm list
    

【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.gzonehost list
    
    $ cd one-1.2.1
    
  • 修改 source code 的 src/vmm/XenDriver.cc
    $ sudo gedit src/vmm/XenDriver.cc
    
    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
    
    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
    
    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 node01
    # onevm list
    
  • 練習:請在開啟一個虛擬機器名為 vm02
    • 法一:複製 vm01 的 image,再修改參數
    • 法二:使用 xen-create-image 指令