[[PageOutline]] {{{ #!html

實作一: 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 }}} * 白底黑字為文件內容 {{{ #!sh 127.0.0.1 localhost }}} ---- = 【Step 0: 流程】 = {{{ #!graphviz digraph finite_state_machine { rankdir=LR; ranksep=0.3; size="16,10"; node[shape=box,width=3.0]; "7.開啟 VM" -> "8.安裝圖形管理介面"; "4.測試 Xen 是否安裝成功" -> "5.安裝 xen image 製作工具" -> "6.產生 Image"; "1.安裝必須套件" -> "2.安裝 Xen-patched Kernel" -> "3.安裝 Xen 3.4.1"; } }}} ---- = 【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 }}} {{{ #!sh 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 }}} {{{ #!sh 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) {{{ #!sh (network-script network-bridge) (vif-script vif-bridge) }}} 2. Two-way Routed Network {{{ #!sh (network-script network-route) (vif-script vif-route) }}} 3. Routed Networking with NAT {{{ #!sh (network-script network-nat) (vif-script vif-nat) }}} ---- = 【Step 5: 安裝 xen image 製作工具】 = * 使用 '''wget''' 於[http://www.xen-tools.org/software/xen-tools/releases.html 此網頁]下載新版 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 }}} {{{ #!sh 45 dir = /home 169 dhcp = 1 214 mirror = http://free.nchc.org.tw/debian }}}