wiki:Xen_Lab2

Version 76 (modified by rock, 14 years ago) (diff)

--

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


【前言】

  • 安裝前的小叮嚀
    • pcXXX 和 pcYYY 都已安裝好 Xen (若 pcYYY 還沒可以安裝好,可以參考實作一的 Step 1 ~ 2,順便複習一下實作1。或是再第2台機器執行以下script來設定 Xen 環境
      /*** 第2台機器 (新竹) ***/
      $ scp clouder@192.168.1.254:~/setup_Xen_HB.sh .
      $ sudo ./setup_Xen_HB.sh
      $ reboot 
      $ su root
      # export LANG=C ; cd
      # ./xen_video1.sh    /*** 一路 Yes 到底 ***/
      # ./xen_video2.sh
      
      /*** 第2台機器 (台中) ***/
      $ scp clouder@pc-eth1:~/setup_Xen.sh .
      $ sudo ./setup_Xen.sh
      
    • 目前 pcXXX 並無任何正在執行的 VM (若是有的話使用 sudo xm destroy [VM_Name|VM_ID] 來關閉)
      $ sudo xm list
      
    • ONE 只需安裝在 pcXXX 即可 (pcXXX 及為 OpenNEbula Server)
    • pcXXX 為 ONE ServerNFS Server
    • 網路架構採用 Bridge
    • 共享的 Storage 採用 NFS (才能做 Migrate 和 Live Migrate )
  • 將之前透過 xm create 開啟的虛擬機器先 destroy
    $ sudo xm destroy [VM_Name]
    $ sudo xm list
    
  • 軟體說明:
Host/dom0 OS Debian 503 lenny(AMD64)
VM/Guest/dmoU OS Debian lenny (AMD64)
Xen 3.2
OpenNEbula 1.2.1

【Step 0: 流程】

  • 本範例將說明如何安裝與設定 OpenNEbula 以及如何透過 OpenNEbula 來啟動管理虛擬機器 GraphViz image

【Step 1: 安裝需要的套件】

  • pcXXXpcYYY 須安裝相關套件
    $ sudo aptitude install g++ ruby libsqlite3-0 sqlite3 libsqlite3-dev \
    libsqlite3-ruby libxmlrpc-c3-dev libxmlrpc-c3 libssl-dev scons
    

【Step 2: 下載並安裝OpenNEbula】

  • 在 pcXXX 上執行 (OpenNEbula 只需安裝在 pcXXX 上)
  • 下載 source code
    $ cd
    $ wget http://dev.opennebula.org/attachments/download/103/one-1.4.0.tar.gz
    $ tar zxvf one-1.4.0.tar.gz
    
  • 編譯和安裝 OpenNEbula
    $ cd one-1.4.0
    $ sudo scons
    $ sudo mkdir /home/one
    $ sudo ./install.sh -d /home/one
    
  • 編輯 OpenNEbula 路徑
    $ sudo su
    
    # echo export ONE_LOCATION=/home/one >> ~/.bashrc
    # echo export ONE_XMLRPC="http://localhost:2633/RPC2" >> ~/.bashrc
    # echo export PATH='$ONE_LOCATION/bin:$PATH' >> ~/.bashrc
    
    # source ~/.bashrc
    
    # echo $ONE_LOCATION 
    (測試 $ONE_LOCATION 路徑是否存在)
    

【Step 3: 編輯 ONE 設定檔】

  • 在 pcXXX 上編輯,將 160~164 行註解掉,打開 169~173 行
    # cd /home/one
    # gedit etc/oned.conf
    
    21 HOST_MONITORING_INTERVAL = 5
    23 VM_POLLING_INTERVAL      = 10
    
    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 前的小叮嚀:
    1. 確認 pcXXX 和 pcYYY 已執行 xend start
    2. 兩台都可讓 root 免密碼 ssh 登入 (此步驟已預先幫學員做好了,細節可參考此網頁)
    3. 只需在 pcXXX 啟動 ONE 即可
  • 在 pcXXX 上執行
    # one start
    

【Step 5: 新增 pcXXX 和 pcYYY 到 ONE Pool】

  • 在 pcXXX 上執行 (X 和 Y 請自行修改成自己的電腦名稱)
    # onehost add pcXXX im_xen vmm_xen tm_nfs
    # onehost add pcYYY im_xen vmm_xen tm_nfs
    
    # onehost list
     HID NAME                      RVM   TCPU   FCPU   ACPU     TMEM    FMEM STAT
       1 pcXXX                       0    400    399    400  1313856       0   on
       2 pcYYY                       0    400    399    400  1313856       0   on
    
    # onehost show pcXXX
    
  • onehost list參數說明
    • RVM - Number of running VMs
    • TCPU - Total CPU
    • FCPU - Free CPU
    • ACPU - Available CPU (not allocated by VMs)
    • TMEM - Total Memory
    • FMEM - Free Memory

【Step 6: 使用 ONE 來開啟 VM】

  • 在 pcXXX 上執行
  • 編輯 vm01 的設定檔 (X 和 Y 請自行修改成自己的電腦名稱)
    # cd /home/domains
    # gedit vm01.one
    
     NAME   = vm01
     CPU    = 1
     MEMORY = 128
     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.168.168.X", MAC="00:16:00:00:00:XX"]
    
  • 使用 ONE 來開啟 vm01
    # onevm create vm01.one 
    # onevm deploy vm01 pcXXX
    
    # onevm list
      ID     NAME STAT CPU     MEM        HOSTNAME         TIME
       1     vm01 runn   0  131072           pcXXX  00 00:04:21
    
    # onevm show vm01
    
  • onevm list 的資訊
    • ID ONE VM identifier
    • NAME Name of the ONE
    • STAT Status of the VM
    • CPU CPU percentage used by the VM
    • MEM Memory used by the VM
    • HOSTNAME Host where the VM is being or was run
    • TIME Time since the submission of the VM (days hours:minutes:seconds
  • 使用 ssh 來登入 vm01
    $ ssh 192.168.100.X -l clouder
    # ping ptt.cc
    CTRL+D
    
  • 關掉 vm01
    # onevm list
    # onevm shutdown vm01
    # onevm list
    

【討論 & 休息】

  • 回顧:
    1. 安裝 OpenNEbula
    2. 設定 OpenNEbula
    3. 使用 onehost 來管理實體機器
    4. 使用 onevm 來管理虛擬機器