【Build Xen & Lustre enabled kernel】
- Our OS: Dbian etch / ubuntu 8.04
- Our Method: Xen 和 Lustre 都需 patch kernel 來達到彼此特有的功能。
我們使用較簡單但較笨的方法來 Merge Xen 和 Lustre ,主要步驟可分為:
(1)安裝 XEN image (2)產生 XEN 和 Lustre 相容的 Kernel (3)建立 Lustre 模組。
1.Requirement packages
- 1.1 Kernel Packages
sudo aptitude install build-essential libncurses5-dev kernel-package
- 1.2 XEN Packages
$ sudo apt-get install 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 libcurl3-dev
- libcurl3-dev 在新的版本以 libcurl4-openssl-dev 取代
- 1.3 Lustre Packages
$ sudo aptitude install bzip2 debhelper dpatch libsnmp-dev module-assistant quilt libxml2 python-xml
2.Download XEN & Lustre
- 2.1 Download XEN
$ cd /usr/src $ sudo wget http://bits.xensource.com/oss-xen/release/3.1.4/xen-3.1.4.tar.gz $ sudo tar zxvf xen-3.1.4.tar.gz
- 2.2 Download Lustre
- Lustre
$ cd /usr/src $ tar zxvf lustre-1.6.5.1.tar.gz
- Lustre
3.Build Xen Image
$ cd /usr/src/xen-3.2.1 $ sudo make -j 4 world $ sudo make install $ sudo rm /boot/vmlinuz-2.6.18.8-xen /boot/System.map-2.6.18.8-xen ; sudo rm -fr /lib/modules/2.6.18.8-xen/
4.Build Xen & Lustre Kernel
- 4.1 Use Lustre's Patch File to Patch Xen Kernel
$ cd /usr/src/xen-3.1.4/linux-2.6.18.8-xen $ sudo ln -s /usr/src/lustre-1.6.5.1/lustre/kernel_patches/series/2.6.18-vanilla.series series $ sudo ln -s /usr/src/lustre-1.6.5.1/lustre/kernel_patches/patches/ . $ sudo quilt -av push $ sudo cp /boot/config-2.6.18.8-xen .config // Config Kernel Option : //(1)建議將未來需要的 driver build-in //(2)在Local version - append to kernel release 加上 -xen //(3)把相關網路屬性選上 (Nat, Bridge...) //(4)File System 的 quota support (Lustre 需要的功能),關掉 automount //(5)CONFIG_SCSI_PROC_FS 和 CONFIG_SD_IOSTATS 需選上 $ sudo make menuconfig
- 4.2 Install XEN & Lustre Patched Kernel
$ sudo make ; sudo make modules ; sudo make install ; sudo make modules_install $ sudo mkinitramfs -o /boot/initrd.img-2.6.18.8-xen 2.6.18.8-xen $ sudo update-grub $ sudo reboot
5.Make Lustre Modules
$ cd /usr/src/lustre-1.6.5.1 $ ln -s /usr/src/xen-3.1.4/linux-2.6.18.8-xen/ /usr/src/linux $ sudo ./configure --with-linux=/usr/src/xen-3.1.4/linux-2.6.18.8-xen/ $ sudo make -j 4 $ sudo make install $ sduo depmod -a $ sudo reboot
6.Using DRBL to massively deploy(option)
- Refer to https://trac.nchc.org.tw/grid/wiki/jazz/DRBL_Xen
- 可使用 dsh 方便管理
7.Test Xen & Lustre
- 7.1 Config Lustre module
$ sudo vim /etc/modules ldiskfs lnet networks=tcp $ sudo sync ; sudo reboot
- 7.2 Config Xend
$ sudo vim /boot/grub/menu.lst netloop.nloopbacks=150 $ sudo vim /etc/xen/xend-config.sxp $ sudo xend start $ sudo xm list
- 7.3 Setup Lsutre
- Meta Data & Management Server
$ sudo mkfs.lustre --fsname=testfs --mdt --mgs /dev/sdb1 $ sudo mount -t lustre /dev/sdb1 /home/mdt
- Object Storage Machine
$ sudo mkfs.lustre --fsname=testfs --ost --mgsnode=virt@tcp0 /dev/sda $ sudo mount -t lustre /dev/sda /home/ost $ sudo dmesg Lustre: flyfs-OST0000: received MDS connection from 140.X.X.X@tcp
- Mount Lustre FS
$ sudo mount -t lustre virt@tcp0:/testfs /home/testfs $ mount $ df -h
- Auto mount Lustre FS
$ mount -l -t lustre /dev/sdb1 on /home/mdt type lustre (rw) [flyfs-MDT0000] /dev/sdb2 on /home/ost type lustre (rw) [flyfs-OST0000] $ vim /etc/fstab LABEL=flyfs-MDT0000 /home/mdt lustre defaults,_netdev,noauto 0 0 LABEL=flyfs-OST0000 /home/ost lustre defaults,_netdev,noauto 0 0
- Meta Data & Management Server
8.Install xen-tools
- xen-tools
$ sudo aptitude install libconfig-inifiles-perl libtext-template-perl $ 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 // Config xen-tools : (1)印象檔存放於 Lustre FS /home/testfs (2)網路設定 // $ sudo vim /etc/xen-tools/xen-tools.conf
『Notice』
- 若 Xen image 若放於 lustre 上,無法使用 tap:aio: VBD 建議使用 file: VBD
- 從網路查到 tap:aio VBD 比 file-based VBD (loop) 穩定,也支援 COW (copy-on-write)特色的裝置
『Reference』
Last modified 16 years ago
Last modified on Apr 30, 2009, 5:43:08 PM
Attachments (3)
-
linux-xen0-2.6.18.8.rock_r01_amd64.deb
(15.3 MB) -
added by rock 16 years ago.
XEN & Lustre patched kernel
-
linux-headers-2.6.18.8.rock_r01_amd64.deb
(7.4 MB) -
added by rock 16 years ago.
XEN & Lustre patched kernel headers
-
config-xen0-2.6.18.8.rock
(60.5 KB) -
added by rock 16 years ago.
XEN config file