[[PageOutline]] = Xen & Lustre Kernel in Dell Machine = == 1. 問題和解決方案 == * 因 Dell Machine 的新硬體晶片(Intel ICH9R),原本 Xen 和 Lustre 支援的 Kernel 2.6.18 無法驅動 (2.6.19 後才有支援),與 rider 討論後,決定採用以下方法: 1. 下載 ubuntu Kernel source 2.6.22 2. 採用 ubuntu 的 Xen patch for 2.6.22 (在 Ubuntu gusty 有提供 Xen patch file) 3. 再使用 Lustre 的 patch for 2.6.22 * '''Software Stacks:''' * Ubuntu 8.10 AMD64 Server * Kernel 2.6.22.9 * Xen-3.3.1 * Lustre 1.6.6 == 2. 步驟 == 1. '''''__下載 Ubuntu Kenrel__,[grid:source:xen/xen_lustre_patch 下載連結]''''' {{{ $ cd /usr/src $ tar zxvf linux-source-2.6.22_2.6.22.orig.tar.gz }}} 2. '''''__Patch Xen-Compatible Kernel__ (使用 Ubuntu Xen patch file,可直接從本網頁最下面連結下載)''''' {{{ // Patch Kenrel to be compatible with Xen $ cd /usr/src/linux-2.6.22 $ sudo patch -p1 < ../linux-source-2.6.22_2.6.22-16.61.diff $ sudo patch -p1 < debian/binary-custom.d/xen/patchset/001.patch $ sudo patch -p1 < debian/binary-custom.d/xen/patchset/002-fix-pae-vmalloc-sync.patch $ sudo patch -p1 < debian/binary-custom.d/xen/patchset/003-fix-ia32entry-xen.patch $ sudo patch -p1 < debian/binary-custom.d/xen/patchset/004-fix-blkif-maxnrsegs.patch }}} 3. '''''__Build Xen Image and reboot__,[wiki:Xen_Lustre 參考此處]''''' {{{ // Install Xen Image $ cd /usr/src/xen-3.3.1 $ sudo make xen $ sudo make tools $ sudo make install-xen $ sudo make install-tools }}} 4. '''''__確認此 Kernel 是否正常開機__ (可省略)''''' {{{ // Build Kernel $ cd /usr/src/linux-2.6.22 $ sudo menuconfig $ sudo make -j 5 ; sudo make -j 5 modules ; sudo make install ; sudo make modules_install $ sudo mkinitramfs -o /boot/initrd.img-2.6.22.9 2.6.22.9 $ sudo update-grub $ sudo sync ; sudo reboot }}} 5. '''''__Install e1000e driver__ (2.6.22 無 e1000e 的 driver)''''' {{{ $ sudo tar zxvf e1000e-0.5.11.2.tar.gz $ cd e1000e-0.5.11.2/src ; sudo make install }}} 6. '''''__Patch Lustre-Compatiable Kernel & Build Lustre Modules__,[wiki:Xen_Lustre 參考此處]''''' * [wiki:Servers/virt_machines/kernel/1.6.6.log Lustre 1.6.6 Patch Log] * [wiki:Servers/virt_machines/kernel/compile_err Compile Error & Solution] * Build Lutsre Modules {{{ $ sudo ln -s /usr/src/linux-2.6.22 /usr/src/linux $ cd /usr/src/lustre-1.6.6 $ sudo vim lustre/include/linux/lustre_compat25.h 570 #define ll_remove_suid(inode,mnt) remove_suid(inode) $ sudo ./configure --with-linux=/usr/src/linux-2.6.22 $ sudo make -j 4 $ sudo make install ; sudo depmod -a $ sudo vim /etc/modules ldiskfs lnet networks=tcp $ sudo sync ; sudo reboot }}} 7. '''''__設定 Lustre FS & 啟動 xend__,[wiki:Xen_Lustre 參考此處]''''' * [wiki:Servers/virt_machines/kernel/mount_err Mount Error & Solution] 8. '''''__Enjoy it ...__''''' [[BR]] == 3. 結論 == * Lustre 在 2.6.22 Kernel 上,有些 Kernel option 必須選上否則會 compiler 不過,建議官方可在 Kernel 設定檔內做好相依性 * Lustre 的 remove_suid 依舊有問題,雖然官方說 * ./lustre/ChangeLog:4964: - kernel version 43 - fix remove_suid bugs in both 2.4 and 2.6 (5695) * 但仍需手動去更改 remove_suid 的宣告 * 幸運的是 Xen 和 Lustre Patch 不太衝突,雖有 patch 相同的檔案,但 patch 處不同 * 若想直接使用本方法產生的 (1)Xen & Lustre Kernel Image 和 (2)Xen & Lustre Patch 過的 Kernel source , 可直接[grid:source:xen/xen_lustre_patch 至此下載],直接安裝即可 1. linux-xen0-2.6.22.9_2.6.22-16.61_amd64.deb 2. linux-source-2.6.22.9_2.6.22-16.61_all.deb