wiki:Xen_Lab1

Version 32 (modified by rock, 15 years ago) (diff)

--

實作一: Xen 單機安裝與基本操作

【前言】

  • 操作說明:
    • 桌面的 Web Broswer 為瀏覽器,終端機 用來輸入課程中的指令
    • 黑底白字部份為指令 ($ 為命令提示字元, $ 之後才是指令)
      $ vim /etc/hosts
      $ sudo vim /etc/hosts
      $ sudo gedit /etc/hosts
      
      • 第1個指令為 使用 vim 指令來編輯 hosts 這個文件
      • 第2個指令的 sudo 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改)
      • 第3個指令的 gedit 給不習慣用 vim 的學員使用 (類似 windows 的 notepad)
    • 白底黑字為文件內容
      127.0.0.1 localhost
      
      • 若是文件內容前面有數字則為行數 (方便學員可以快速找到文件編輯位置,下圖則為 /etc/hosts 文件的第1行)
        1  127.0.0.1 localhost
        
  • 軟體說明:
OS Ubuntu 9.04 Desktop (AMD64)
Kernel (support Xen) 2.6.26
Xen 3.3

【Step 0: 流程】

  • 本教學方便學員,儘量使用官方提供的 Xen 相關套件來安裝 (Ubuntu 目前維護的 Xen 版本為 3.3),若是想用最新版的 Xen-3.4.1 可以參考此篇改用 source 檔安裝
    • 套件安裝的優點: 1.方便快速 2.不需考慮軟體相依性,系統會自動幫你安裝相依的套件。缺點:可能不是最新的軟體版本
    • source安裝的優點: 1.了解軟體的安裝邏輯 2.可以安裝最新的版本。缺點:得自行解決軟體的相依性問題
GraphViz image

【Step 1: 安裝 Xen 和 Xen-patched Kernel】

  • Ubuntu 提供一個簡單的整合套件,只需用 aptitude install 指令安裝 ubuntu-xen-desktop 套件,即可自動安裝好 Xen-3.3 Hypervisior
    $ sudo aptitude update
    $ sudo aptitude install ubuntu-xen-desktop gcc-4.1 python-xml
    
  • 安裝 Xen-patched Kernel,再這邊我們使用 Debian 已打包好的 Kernel 2.6.26
    $ cd
    $ mkdir Xen_Kernel && cd Xen_Kernel
    $ wget http://trac.nchc.org.tw/grid/export/110/Xen/dom0_Kernel/linux-2.6.26-xen-amd64.tar.bz2
    $ tar jxvf linux-2.6.26-xen-amd64.tar.bz2
    $ dpkg -i ./*.deb
    

【Step 2: 編輯Xend 設定檔 & 開機選單】

  • 上個步驟已安裝好Xen和Kernel,此步驟使用 vimgedit 指令來編輯 xend 的設定檔 /etc/xen/xend-config.sxp (Xen 的設定檔都再 /etc/xen 路徑下)
    $ sudo vim /etc/xen/xend-config.sxp
    $ sudo gedit /etc/xen/xend-config.sxp
    
    56  (xend-http-server yes)
    58  (xend-tcp-xmlrpc-server yes)
    61  (xend-relocation-server yes)
    70  (xen-tcp-xmlrpc-server-port 8006) 
    80  (xend-port            8000)
    84  (xend-relocation-port 8002)
    121 (xend-relocation-hosts-allow '')
    122 #(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
    
  • 檢查 Grub 開機選單
    $ vim /boot/grub/menu.lst
    $ gedit /boot/grub/menu.lst
    
  • 編輯完 xend & 開機選單後,現在重新開機,選擇剛開安裝的 Xen & Kernel 開機
    $ sync ; sudo reboot
    


【Step 3: 檢查 Xen 是否正常運作】

  • Debian 預設開機變會自動啟動 xend,我們使用 ps -aux | grep xend 來檢查 xend 是否正常運作
    $ ps -aux | grep xend
    
  • 再使用 xm list,檢查是否有 domain 0 (xm 是 Xen manager 的解稱,我們使用 xm 來控制 xend,xm 指令的用法可以參考 xm help)
    $ sudo xm list
    
  • 檢查網路設備是否存在 (於此案例我們使用 bridge 方式,可以檢查 eth0 和 peth0 是否存在)
    $ sudo ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1a:4d:9f:ea:f8  
              inet addr:X.X.X.X  Bcast:140.110.138.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:821 errors:0 dropped:0 overruns:0 frame:0
              TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:64586 (63.0 KiB)  TX bytes:11348 (11.0 KiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)
    
    peth0     Link encap:Ethernet  HWaddr 00:1a:4d:9f:ea:f8  
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:3694 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2142 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:311184 (303.8 KiB)  TX bytes:759489 (741.6 KiB)
              Interrupt:21 Base address:0xe000
    
  • Xen 提供三種網路連接方式:
    1. Bridge Networking (於此案例,我們使用 Bridge,簡單來說就是讓 VM 和 Host 都再同一個網域,讓 VM 可接收 dhcp server 發的 IP)
      (network-script network-bridge)
      (vif-script vif-bridge)
      
    2. Two-way Routed Network
      (network-script network-route)
      (vif-script vif-route)
      
    3. Routed Networking with NAT
      (network-script network-nat)
      (vif-script vif-nat)
      

【Step 4: 安裝 xen image 製作工具】

  • 使用 aptitude install 安裝 xen-tools (xen-tools 可以協助我們產生VM的印象檔)
    $ sudo aptitude install xen-tools
    
  • 修改 xen-tools 的設定檔 (設定檔位置 /etc/xen-tools)
    $ cd /etc/xen-tools
    $ sudo vim /etc/xen-tools/xen-tools.conf
    $ sudo gedit /etc/xen-tools/xen-tools.conf
    
    45  dir = /home
    128 size   = 1Gb
    133 dist   = lenny
    163 gateway   = 192.168.100.254
    164 netmask   = 255.255.255.0
    165 broadcast = 192.168.100.255
    193 accounts = 1
    214 mirror = http://free.nchc.org.tw/debian
    257 serial_device = hvc0
    

【Step 5: 產生 VM 的 Image】

  • 使用 xen-tools 提供的指令 xen-create-image 產生一個名為 vm01 虛擬機器的印象檔 (若沒指定 dist ,預設則為 debian etch)
    $ sudo xen-create-image --hostname=vm01 --ip=192.X.X.X
    
  • 產生完的印象檔會放在 /home/domains 內,而設定檔則會放在 /etc/xen/
    $ ls /home/domains
    $ ls /etc/xen/
    
  • 查看 vm01 的設定檔
    $ sudo vim /etc/xen/vm01.cfg
    $ sudo gedit /etc/xen/vm01.cfg
    
  • 檢查 vm01 設定檔的 MAC address 是否為 00:6:3E:BE:53:2C (建議修改末兩碼,例如:01、11、21、31...,若大家 MAC 皆相同的話,會讓 DHCP server 混亂)
    32 vif         = [ 'mac=00:16:3E:BE:53:01' ]
    

【Step 6: 開啟 VM】

  • 接下來我們使用此 vm01 的設定檔來開啟一個虛擬機器 (使用 xm create 指令根據設定檔來開啟虛擬機器)
    $ sudo xm create /etc/xen/vm01.cfg
    
  • 檢查此 vm01 是否正常開啟
    $ sudo xm list 
    
  • 如何登入此虛擬機器呢 (使用 xm console)
    $ sudo xm console vm01
    
  • 如何登出呢 (跳出鍵 CTRL+])
  • 關閉虛擬機器 (使用 xm console)
    $ sudo xm destroy vm01
    $ sudo xm list 
    

【Step 7: 使用 VM 圖形管理介面】

  • 若是不習慣用指令,可使用圖形管理介面來控制虛擬機器 (有兩套可以使用 virt-manager 和 convirt)
  • virt-manager
    $ sudo aptitude install virt-manager
    $ sudo virt-manager
    
  • convirt
    $ sudo aptitude install convirt
    $ sudo su root
    $ convirt
    CTRL+D
    

Attachments (3)

Download all attachments as: .zip