wiki:Servers/virt_machines/kernel

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下載連結
    $ 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參考此處
    // 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參考此處
    • Lustre 1.6.6 Patch Log
    • 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參考此處
  8. Enjoy it ...


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 , 可直接至此下載,直接安裝即可
    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
Last modified 15 years ago Last modified on Sep 14, 2009, 1:42:04 AM

Attachments (2)

Download all attachments as: .zip