wiki:Xen_Lab1

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

--

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

【前言】

  • 使用的 OS 為 Debian etch (5.0.3) AMD64
    • 桌面的 Web Broswer 為瀏覽器
    • 桌面的 終端機用來輸入課程中的指令
  • 為了方便學員,可以使用 複製貼上 繁瑣的指令 (請複製 "$" 之後的指令)
  • 黑底白字部份為指令
    • 第1個指令為 使用 vim 指令來編輯 hosts 這個文件
    • 第2個指令的 sudo 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改)
    • 第3個指令的 gedit 給不習慣用 vim 的學員使用 (類似 windows 的 notepad)
      $ vim /etc/hosts
      $ sudo vim /etc/hosts
      $ sudo gedit /etc/hosts
      
  • 白底黑字為文件內容
    127.0.0.1 localhost
    
  • 若是文件內容前面有數字則為行數 (方便學員可以快速找到文件編輯位置,下圖則為 /etc/hosts 文件的第1行)
    1  127.0.0.1 localhost
    

【Step 0: 流程】

GraphViz image

【Step 1: 安裝所需的相關套件】

  • 因 Xen 會相依某些套件,此步驟可以把需要的套件一次先裝好
    $ sudo aptitude update
    $ sudo aptitude install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo pciutils-dev mercurial build-essential make gcc libc6-dev zlib1g-dev python python-dev python-twisted libncurses5-dev patch libvncserver-dev libsdl-dev libjpeg62-dev
    
  • 若 Debian 為64 bit則需再安裝以下套件
    $ sudo aptitude install gcc-multilib
    

【Step 2: 安裝 Xen-patched Kernel】

  • 目前 Debian 官方維護的 Kernel (2.6.26-2-xen) 安裝後會使得桌面系統(gdm)無法正常啟動,所以用 wget 指令來下載已 patch 好的 Kernel (2.6.22.9-rock)
    $ cd /usr/src
    $ sudo wget http://trac.nchc.org.tw/grid/browser/xen/xen_lustre_patch/linux-xen0-2.6.22.9-rock_r01_amd64.deb
    
  • 下載完後使用 dpkg 指令來安裝
    $ sudo dpkg -i linux-xen0-2.6.22.9-rock_r01_amd64.deb
    $ sudo mv /boot/xen0-linux-2.6.22.9-rock /boot/vmlinuz-2.6.22.9-rock
    $ sudo mkinitramfs -o /boot/initrd.img-2.6.22.9-rock 2.6.22.9-rock
    

【Step 3: 安裝 Xen 3.4.1】

  • 目前 Debian 的 Xen 套件版本為 3.2,所以我們手動下載最新版的 Xen 3.4.1 版本
    $ cd /usr/src/
    $ sudo wget http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.4.1.tar.gz
    
  • 編譯和安裝 Xen
    $ sudo tar zxvf xen-3.4.1.tar.gz
    $ cd xen-3.4.1
    $ make -j 4 xen && make -j 4 tools
    $ sudo make install-xen 
    $ sudo make install-tools
    
  • 編輯 Grub Memu/開機選單 (於第 121 行新增)
    $ sudo vim /boot/grub/menu.lst
    $ sudo gedit /boot/grub/menu.lst
    
    title           Xen 3.4.1 , kernel 2.6.22.9-rock
    root            (hd0,0)
    kernel          /boot/xen-3.4.1.gz
    module          /boot/vmlinuz-2.6.22.9-rock root=/dev/sda1 ro nosplash      
    module          /boot/initrd.img-2.6.22.9-rock
    
  • 現在我們重新開機,選擇剛開安裝的 Xen & Kernel 開機
    $ sync ; sudo reboot
    

【Step 4: 測試 Xen 是否安裝成功】

  • Xen 的設定檔放於 /etc/xen
  • 再啟動 xend 前,我們先編輯設定檔
    $ cd /etc/xen
    $ sudo vim /etc/xen/xend-config.sxp
    $ sudo gedit /etc/xen/xend-config.sxp
    
    62  (xend-relocation-server yes)
    84  (xend-relocation-port 8002)
    109 (xend-relocation-hosts-allow '')
    123 (network-script network-bridge)
    139 #(network-script network-dummy)
    
  • 啟動 xend
    $ sudo xend start
    
  • 檢查 domain0 是否存在
    $ sudo xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0   936     4     r-----     30.0
    
  • 檢查 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 5: 安裝 xen image 製作工具】

  • 使用 wget此網頁下載新版 xen-tools,xen-tools 可協助建置 VM 的 Image
    $ cd
    $ wget http://www.xen-tools.org/software/xen-tools/xen-tools-4.1.tar.gz
    $ tar zxvf xen-tools-4.1.tar.gz
    $ sudo aptitude install debootstrap perl-modules libconfig-inifiles-perl libtext-template-perl
    # sudo make install
    
  • 修改 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
    169 dhcp = 1
    214 mirror = http://free.nchc.org.tw/debian
    

【Step 6: 產生 Image】

  • 使用 xen-tools 提供的指令 xen-create-image 產生一個名為 vm01 虛擬機器的印象檔 (若沒指定 dist ,預設則為 debian etch)
    $ sudo xen-create-image hostname=vm01
    
  • 產生完的印象檔會放在 /home/domains 內,而設定檔則會放在 /etc/xen/
    $ ls /home/domains
    $ ls /etc/xen/
    
  • 查看 vm01 的設定檔
    $ sudo vim /etc/xen/vm01.cfg
    $ sudo gedit /etc/xen/vm01.cfg
    

【Step 7: 開啟 VM】

  • 接下來我們使用此 vm01 的設定檔來開啟一個虛擬機器 (使用 xm 指令根據設定檔來開啟虛擬機器)
    $ 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 8: 使用 VM 圖形管理介面】

  • 若是不習慣用指令,可安裝 virt-manager 圖形管理介面來控制虛擬機器 (有兩套可以選擇 convirt 和 virt-manager)
    $ cd
    $ wget http://virt-manager.et.redhat.com/download/sources/virt-manager/virt-manager-0.8.0.tar.gz
    $ tar zxvf virt-manager-0.8.0.tar.gz
    $ 
    

Attachments (3)

Download all attachments as: .zip