Version 92 (modified by rock, 15 years ago) (diff) |
---|
實作一: Xen 單機安裝與基本操作
【前言】
- 操作說明:
- 桌面的 Web Broswer 為瀏覽器,終端機 用來輸入課程中的指令
- 黑底白字部份為指令 ($ 為命令提示字元, $ 之後才是指令) (# 為root 的命令提示字元)
$ gedit /etc/hosts $ sudo gedit /etc/hosts $ su root # aptitude update
- 第1個指令為 使用 gedit 指令來編輯 hosts 這個文件 (也可以使用 vim 來編輯)
- 第2個指令的 sudo 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改)
- 第3個指令的 su root 切換 root 身份
- 第4個指令的 為在 root 身份下執行 aptitude update (# 為 root 的提示字元)
- 白底黑字為文件內容,文件內容前面有數字則為行數 (下面為 /etc/hosts 文件的第1行)
1 127.0.0.1 localhost
- 文中的 X 和 Y 請自行更換成合適的值
- IP: 192.168.100.X -> 192.168.100.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.3 |
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.可以安裝最新的版本。缺點:得自行解決軟體的相依性問題
【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,此步驟使用 vim 或 gedit 指令來編輯 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 '') 128 (network-script 'network-bridge netdev=eth1') 139 #(network-script network-dummy)
- 編輯 Grub 開機選單 (只需編輯第 125 行)
$ 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
【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 提供三種網路連接方式:
- Bridge Networking (於此案例,我們使用 Bridge,簡單來說就是讓 VM 和 Host 都再同一個網域,讓 VM 可接收 dhcp server 發的 IP)
(network-script network-bridge) (vif-script vif-bridge)
- Two-way Routed Network
(network-script network-route) (vif-script vif-route)
- Routed Networking with NAT
(network-script network-nat) (vif-script vif-nat)
- Bridge Networking (於此案例,我們使用 Bridge,簡單來說就是讓 VM 和 Host 都再同一個網域,讓 VM 可接收 dhcp server 發的 IP)
【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.100.254 164 netmask = 255.255.255.0 165 broadcast = 192.168.100.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.100.X --mac=00:16:00:00:00:XX (若是有中途取消操作,先 umount /tmp/XXXXXX ,再重新下指令 $ sudo xen-create-image --hostname=vm01 --ip=192.168.100.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)
$ sudo xm console vm01 # passwd root # adduser clouder # aptitude -y install udev ntpdate # cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime # ntpdate time.stdtime.gov.tw # echo xen.independent_wallclock=1 >> /etc/sysctl.conf # reboot
- 如何登出 vm01 呢 (跳出鍵 CTRL+])
$ sudo xm console vm01 CTRL + ]
- 關閉虛擬機器 (使用 xm console)
$ sudo xm list $ sudo xm destroy vm01 $ sudo xm list
【Step 7: 使用 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 $ sudo convirt
【討論 & 休息】
- 回顧:
- Xen Hypervisior 的安裝
- Xen 設定檔的位置和參數
- 使用 xen-create-image 產生一個 VM Image
- 使用 xm 管理指令來管理 VM
- 休息前,請記得將 VM 關掉
$ sudo xm destroy vm01
Attachments (3)
- Xen_grub.JPG (85.1 KB) - added by rock 15 years ago.
- xen_lab1_step1.sh (286 bytes) - added by jazz 15 years ago.
- xen-tools.conf.diff (1.7 KB) - added by jazz 15 years ago.
Download all attachments as: .zip