wiki:Xen_Lab1

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

--

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

【前言】

  • 操作說明:
    • 桌面的 Web Broswer 為瀏覽器,終端機 用來輸入課程中的指令
    • 黑底白字部份為指令 ($ 為命令提示字元, $ 之後才是指令) (# 為root 的命令提示字元)
      $ gedit /etc/hosts
      $ sudo gedit /etc/hosts
      
      $ su root
      # aptitude update
      [Ctrl+D]
      $
      
      • 第1個指令為 使用 gedit 指令來編輯 hosts 這個文件 (也可以使用 vim 來編輯)
      • 第2個指令的 sudo 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改)
      • 第3個指令的 su root 切換 root 身份
      • 第4個指令的 為在 root 身份下執行 aptitude update (# 為 root 的提示字元)
      • 第5個為熱鍵
        • [Ctrl+D] -> 結束,[Ctrl+C] -> 中斷
        • 再這邊則跳出 root 身分 (回到 clouder 身份)
    • 白底黑字為文件內容,文件內容前面有數字則為行數 (下面為 /etc/hosts 文件的第1行)
      1  127.0.0.1 localhost
      
    • 文中的 XY 請自行更換成合適的值
      • IP: 192.168.1.X -> 192.168.1.200
      • MAC: 00:16:XX:XX:XX:XX -> 00:16:03:AB:BA:01
  • 台中硬體清單:
CPU Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
NorthBridge Intel Corporation 82G33/G31 Express Integrated Graphics Controller
SouthBridge Intel Corporation 82801G (ICH7 Family)
Memory 1GB
Storage 160GB
Video Card NVIDIA GeForce 9800GT 1GB
Ethernet Controller(1) Intel Corporation 82571EB Gigabit Ethernet Controller
Ethernet Controller(2) Realtek RTL-8110SC/8169SC Gigabit Ethernet
  • 軟體清單:
OS Debian GNU/Linux 5.0.3 (lenny)
Kernel (support Xen) 2.6.26-amd64
Xen 3.2
NVIDIA_Driver Linux x64 (AMD64/EM64T) Ver.190.42
  • 指令說明:
xm Xen Manager (透過 xm 來管理 xend)
xm list 察看目前有幾台 VM
xm create [VM_conf] 開啟 VM (後面須接 VM 的設定檔)
xm destroy [VM_ID|VM_Name] 關閉 VM (後面須接 VM 的 id 或 名稱)
xen-create-image 產生 Guest/VM Image 的工具

【Step 0: 流程】

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

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

  • Debian 提供一個簡單的整合套件,只需用 aptitude install 指令安裝 xen-linux-system-2.6.26-2-xen-amd64套件 ,即可自動安裝好 Xen-3.2 Hypervisior
    $ sudo aptitude update
    $ sudo aptitude -y install xen-linux-system-2.6.26-2-xen-amd64 python-xml
    

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

  • 上個步驟已安裝好 Xen 和 Kernel,此步驟使用 vimgedit 指令來編輯 xend 的設定檔 /etc/xen/xend-config.sxp (Xen 的設定檔都再 /etc/xen 路徑下)
    $ sudo su
    # echo xen.independent_wallclock=1 >> /etc/sysctl.conf
    # echo loop max_loop=100 > /etc/modules
    # echo xenblktap >> /etc/modules
    # ln -s /usr/lib/xen-3.2-1/bin/tapdisk /usr/sbin
    [CTRL+D]
    
    $ sudo gedit /etc/xen/xend-config.sxp
    ( 也可使用vim,如 $ sudo vim /etc/xen/xend-config.sxp )
    
    58  (xend-http-server yes)
    59  (xend-unix-server yes)
    60  (xend-tcp-xmlrpc-server yes)
    62  (xend-relocation-server yes)
    64  (xend-unix-path /var/lib/xend/xend-socket)
    
    70  (xen-tcp-xmlrpc-server-port 8006)
    80  (xend-port            8000)
    84  (xend-relocation-port 8002)
    91  (xend-address localhost)
    109 (xend-relocation-hosts-allow '')
    
    /*** 台中:netdev=eth1 新竹:netdev=eth0 ***/
    128  (network-script 'network-bridge netdev=eth0')
    139 #(network-script network-dummy)
    
  • 若是為台中電腦教室必須做下面指令,新竹電腦教室則不用
    $ sudo gedit /boot/grub/menu.lst
    125 module          /boot/vmlinuz-2.6.26-2-xen-amd64 root=/dev/sda1 ro console=tty0 mem=950M
    
  • 編輯完 xend & 開機選單後,現在重新開機,選擇剛開安裝的 Xen & Kernel 開機
    $ sync ; sudo reboot
    
  • 若是為新竹電腦教室必須做下面指令,台中電腦教室則不用
    $ su root
    # export LANG=C ; cd
    
    # ./xen_video1.sh    /*** 一路 Yes 到底 ***/
    # ./xen_video2.sh
    

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

  • Ubuntu 預設開機變會自動啟動 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
    $ sudo xm help
    
  • 檢查網路設備是否存在 (於此案例我們使用 bridge 方式,可以檢查 eth1 和 peth1 是否存在)
    $ sudo ifconfig
    eth1      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)
    
    peth1     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 -y install xen-tools
    
  • 修改 xen-tools 的設定檔 (設定檔位置 /etc/xen-tools)
    $ cd /etc/xen-tools
    $ sudo gedit xen-tools.conf
    
    45  dir = /home
    128 size   = 1Gb
    133 dist   = lenny
    
    163 gateway   = 192.168.1.254
    164 netmask   = 255.255.255.0
    165 broadcast = 192.168.1.255
    
    187 passwd = 1
    214 mirror = http://free.nchc.org.tw/debian
    257 serial_device = hvc0
    274 output    = /home/domains 
    

【Step 5: 產生 VM 的 Image】

  • 使用 xen-tools 提供的指令 xen-create-image 產生一個名為 vm01 虛擬機器的印象檔 (若沒指定 dist ,預設則為 debian etch)
    $ sudo mkdir /home/domains
    $ sudo xen-create-image --hostname=vm01 --ip=192.168.1.X --mac=00:16:00:00:00:XX
    (若是有中途取消操作,先 umount /tmp/XXXXXX ,
    再重新下指令 $ sudo xen-create-image --hostname=vm01 --ip=192.168.1.X --mac=00:16:00:00:00:XX --force )
    
  • 產生完的印象檔 & 設定檔會放在 /home/domains
    $ ls /home/domains
    
  • 查看 vm01 的設定檔
    $ sudo gedit /home/domains/vm01.cfg
    

【Step 6: 開啟 VM】

  • 接下來我們使用此 vm01 的設定檔來開啟一個虛擬機器 (使用 xm create 指令根據設定檔來開啟虛擬機器)
    $ cd /home/domains
    $ sudo xm create vm01.cfg   /*** 若是想 create 虛擬機器後自動登入,可在最後加上 -c 這個參數 ***/
    
  • 檢查此 vm01 是否正常開啟
    $ sudo xm list 
    
  • 如何登入此虛擬機器呢 (使用 xm console [VM_Name|VM_ID])
    $ sudo xm console vm01
    # adduser clouder
    
    # aptitude -y install udev ntpdate
    # cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
    # ntpdate  time.nist.gov
    # echo xen.independent_wallclock=1 >> /etc/sysctl.conf
    
  • 如何登出 vm01 呢 (跳出鍵 CTRL+])
    CTRL + ]
    
  • 關閉虛擬機器 (使用 xm console)
    $ sudo xm list 
    $ sudo xm destroy vm01
    $ sudo xm list 
    

【補充: 使用 VM 圖形管理介面】

  • 若是不習慣用指令,可使用圖形管理介面來控制虛擬機器 (有兩套可以使用 virt-manager 和 convirt)
  • virt-manager
    $ sudo aptitude -y install virt-manager
    $ sudo virt-manager
    
  • convirt
    $ cd
    $ wget --no-cache http://www.convirture.com/repos/convirture_packaging_pub_key
    $ sudo apt-key add convirture_packaging_pub_key
    $ cd /etc/apt/sources.list.d
    $ sudo wget --no-cache http://www.convirture.com/repos/definitions/debian/5.x/convirt.list
    $ sudo aptitude  update
    $ sudo aptitude install -y convirt
    $ su
    # convirt
    

【補充: 安裝 Windows Guest (使用 HVM 模式)】

  • 檢查硬體(CPU)是否支援
    // Intel CPU
    grep --color vmx /proc/cpuinfo
    
    // AMD CPU
    grep --color svm /proc/cpuinfo
    
  • 檢查 BIOS 是否 enabled (有些主機板預設會 disable)
  • 製作 Windows Image
    // 放到光碟到光碟機,製作 iso 檔
    $ cd /home/domains
    $ sudo dd if=/dev/cdrom of=windows7.iso
    
  • 製作虛擬機器的 Image
    $ sudo dd if=/dev/zero of=xenwin.img bs=1024k seek=10000 count=0
    
  • 編輯設定檔
    $ sudo gedit xenwin.cfg
    
    import os, re
    arch = os.uname()[4]
    if re.search('64', arch):
        arch_libdir = 'lib64'
    else:
        arch_libdir = 'lib'
    
    kernel = "/usr/lib/xen-3.2-1/boot/hvmloader"
    builder='hvm'
    memory = 1024
    
    # Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
    shadow_memory = 8
    name = "xenwin"
    vif = [ 'type=ioemu, bridge=eth0' ]
    acpi = 1
    apic = 1
    disk = [ 'file:/home/domains/xenwin.img,hda,w', 'file:/home/domains/windows.iso,hdc:cdrom,r' ]
    
    device_model = '/usr/lib/xen-3.2-1/bin/qemu-dm'
    
    #-----------------------------------------------------------------------------
    # boot on floppy (a), hard disk (c) or CD-ROM (d) 
    # default: hard disk, cd-rom, floppy
    boot="dc"
    sdl=0
    vnc=1
    vncconsole=1
    vncpasswd=''
    
    serial='pty'
    usbdevice='tablet'
    
  • 啟動 xenwin
    $ sduo xm create xenwin.cfg
    

【討論 & 休息】

  • 回顧:
    1. Xen Hypervisior 的安裝
    2. Xen 設定檔的位置和參數
    3. 如何產生一個 VM Image (使用 xen-create-image )
    4. 使用 xm 管理指令來管理 VM
  • 休息前,請記得將 VM 關掉
    $ sudo xm destroy vm01
    



Attachments (3)

Download all attachments as: .zip