[[PageOutline]] = 【建立 Xen Machine】 = == 0.相關套件安裝 == {{{ sudo aptitude install build-essential libncurses5-dev kernel-package iproute bridge-utils python-twisted gcc binutils \ make zlib1g-dev python-dev transfig bzip2 screen ssh debootstrap libncurses5-dev x-dev libsdl1.2-dev bin86 bcc \ python-pam patch latex-make qemu qemu-launcher qemuctl graphviz graphviz-dev lvm2 libvncserver-dev libjpeg62-dev libjpeg62 \ gettext python-xml gawk tetex-extra tetex-base openssl libssl-dev mercurial libc6-dev-i386 libcurl4-openssl-dev \ bzip2 debhelper dpatch libsnmp-dev module-assistant quilt libxml2 python-xml libconfig-inifiles-perl libtext-template-perl }}} == 1.安裝 Xen-patched Kernel == * '''''__[grid:source:xen/xen_lustre_patch 1.1 下載 Xen-patched Kernel]__''''' {{{ $ 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 }}} ---- == 2.安裝 Xen == * '''''__[http://www.xen.org/download/ 2.1 下載 Xen Source]'''''__ {{{ $ cd /usr/src $ sudo wget http://bits.xensource.com/oss-xen/release/3.3.1/xen-3.3.1.tar.gz $ sudo tar zxvf xen-3.3.1.tar.gz $ cd xen-3.3.1 $ sudo make -j 4 xen $ sudo make -j 4 tools $ sudo make install-xen $ sudo make install-tools }}} * '''''__2.2 編輯 Grub Menu'''''__ {{{ $ sudo vim /boot/grub/menu.lst title Xen 3.3.1 , kernel 2.6.22.9-rock root (hd0,0) kernel /boot/xen-3.3.1.gz module /boot/vmlinuz-2.6.22.9-rock root=/dev/sda1 ro nosplash module /boot/initrd.img-2.6.22.9-rock $ sudo vim /etc/ }}} * '''''__2.3 重新開機,選擇 Xen patch 過的核心來開機'''''__ {{{ ### 將 gdm 關掉 ### $ sudo rcconf ### 將 loop 數目修改為 255 (預設為7) ### $ sudo vim /etc/modules loop max_loop=255 ### 重新開機 ### $ sync ; sudo reboot }}} ---- == 3.配置 Xen 環境 == {{{ ### 修改 xend 配置檔 (前面數字為修改的行數) ### $ sudo vim /etc/xen/xend-config.sxp 61 (xend-relocation-server yes) 84 (xend-relocation-port 8002) 121 (xend-relocation-hosts-allow '') 122 #(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$') 152 (network-script 'network-bridge netdev=eth0') 167 (vif-script vif-bridge) 207 (vnc-listen '0.0.0.0') }}} ---- == 4.啟動 Xen == {{{ $ sudo xend start $ sudo xm list $ sudo xentop $ sudo xm help }}} ---- == 5. 製作 VM Image == === 5.1 自行使用工具製作 === * '''''__5.1.1 安裝 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 $ cd xen-tools-4.1 $ sudo make install ### 修改 xen-tools 的相關設定 (前面數字為行數) ### $ sudo vim /etc/xen-tools/xen-tools.conf 45 dir = /home 169 dhcp = 1 214 mirror = http://free.nchc.org.tw/debian/ }}} * '''''__5.1.2 產生 VM Image'''''__ {{{ $ sudo xen-create-image --hostname xen01 }}} * '''''__5.1.3 啟動剛產生的 VM'''''__ {{{ $ cd /etc/xen ### 修改 xen01 設定檔 ( mac 請將最後4碼修改成 0~9 或 A~F 之間的字母) ### $ sudo vim xen01.cfg 38 #dhcp = 'dhcp' 39 vif = [ 'mac=00:16:3E:3A:XX:XX' ] $ sudo xm create -c xen01.cfg $ sudo xm list $ sudo xentop $ sudo xm destroy xen01 }}} === 5.2 使用其他團隊已做好的 Image === * '''''__5.2.1 可從以下網站下載 VM Image (這些網站將其稱為 virtual appliance,最底下兩個是需付費)'''''__ * [http://jailtime.org/ jailtime.org] * [http://virtualappliances.org/ Virtual Appliances blog] * [http://www.rpath.org/project/lamp/release?id=6274 rpath online] * [http://www.jumpbox.com/ jumpbox] * '''''__5.2.2 練習使用已作好的 Image 檔來啟動 VM'''''__ {{{ $ wget http://virtualappliances.net/download/archive/VirtualAppliancesLAMP-xen-1.0.113.tar.bz2 $ tar jxvf VirtualAppliancesLAMP-xen-1.0.113.tar.bz2 $ cd VirtualAppliancesLAMP $ vim VirtualAppliancesLAMP.cfg $ sudo xm create -c VirtualAppliancesLAMP.cfg }}} ---- == 6. 啟動 VM Cluster == 此範例是安裝已做好的 Cluster image,1台 Master 和 4台 Slave,裡面已安裝了叢集工具 (C3 command suite,Torque/Maui queue management 和 MPICH 等)來運行簡單的平行運算。 {{{ $ cd /home/virc $ sudo tar zxvf virtualcluster-1.0.tar.gz $ sudo ./prepare-cluster.sh ### 修改參數 (再依續修改 slave1.cfg slave2.cfg slave3.cfg slave4.cfg) ### $ cd config_files $ vim master.cfg kernel = '/boot/vmlinuz-2.6.22.9-rock' ramdisk = '/boot/initrd.img-2.6.22.9-rock' $ cd .. $ sudo ./start-cluster.sh $ sudo xm list }}} [[BR]]