年前研究lustre编译安装的是1.6.5.1,有些觉得费力气就没有全部编译安装,过年回来,研究了一下lustre failover 功能发现 他提示我的 e2fsprogs 没有mmp功能让我安装最新版本,这次编译安装遇到很问题,因为以前那种编译安装模式有几个库文件没有安装到 /usr/lib里面所以 我在编译 e2fsprogs 的时候总是出错,在这里我要感谢 lenovo (联想)的工程师 卢亿雷先生,耐心的为我摘错,与指导~好了废话不多说了~
os : ubuntu 8.10 64bit
software : linux-2.6.22.tar.bz2 lustre-1.6.6.tar.gz e2fsprogs-1.40.11.tar.gz e2fsprogs-1.40.11-sun1-patches.tar.gz
apt-get install :expect gcc make quilt libncurses5-dev snmpd-dev libdb4.3-dev
安装步骤:
1. 安装需要的一些库文件,与软件
shell $> apt-get install expect gcc make quilt libncurses5-dev snmpd-dev libdb4.3-dev
2.编译内核
shell $> tar jxvf linux-2.6.22.tar.bz2
shell $>tar zxvf lustre-1.6.6.tar.gz
shell $>cd linux-2.6.22
shell $> ln -s /usr/src/lustre-1.6.6/lustre/kernel_patches/series/2.6.22-vanilla.series series
shell $> ln -s /usr/src/lustre-1.6.6/lustre/kernel_patches/patches/ patches
shell $> quilt push -av
shell $> quilt refresh
##上面这四步是为内核打补丁,下面开始编译内核!
shell $> make clean
shell $>make mrproper
shell $>cp /boot/config-2.6.27-7-server .config
#这步是拷贝原有的内核配置
shell $>make menuconfig
#自己选上自己需要的,去掉不需要的~
shell $> make
shell $> make modules_install
shell $> make install
shell $> mkinitramfs -o /boot/initrd.img-2.6.22 2.6.22
#创建linux 内核启动信息, 最后边的 2.6.22 是版本号~
3.修改grub.conf
shell $> cd /boot/grub/
shell $> vim menu.lst
#添加以下信息~
title Ubuntu 8.10, kernel 2.6.22
uuid 1183d584-d824-4cd8-9e96-c9744300de20
kernel /boot/vmlinuz-2.6.22 root=UUID=1183d584-d824-4cd8-9e96-c9744300de20 ro quiet splash
initrd /boot/initrd.img-2.6.22
4.从启动系统进入新编译的内核
shell $> reboot
shell $> uname -r
2.6.22
5.编译lustre-1.6.6
shell $> cd lustre-1.6.6
shell $> ./configure --with-linux=/usr/src/linux-2.6.22
shell $> make
shell $> make modules
shell $> make install
shell $> depmod -a
#加载所有模块,并写存入modules.dep列表
6.编译e2fsprogs-1.40.11
shell $> tar zxvf e2fsprogs-1.40.11.tar.gz
shell $> tar zxvf e2fsprogs-1.40.11-sun1-patches.tar.gz
shell $> cd e2fsprogs-1.40.11
shell $> ln -s /usr/src/patches/series series
shell $> ln -s /usr/src/patches patches
shell $> quilt push -av
shell $> quilt refresh
##以上4步,是为e2fsprogs-1.40.11 打lustre补丁
shell $> ./configure --with-lustre=/usr/src/lustre-1.6.6
shell $> make
shell $> make install
7.测试lustre failover 是否含有mmp
shell $> vim /etc/hosts
127.0.1.1 mds
192.168.6.2 mds1
##192.168.6.2 是内网一个IP 没有装任何东西,这里只为了测试 failover 功能,在生产##上 mds1也应该 安装 lustre 以及 e2fsprogs的
shell $> mkfs.lustre --reformat --fsname=testfs --mdt --mgs --failnode=mds1 /dev/sdb
##在这里可以看到
## Permanent disk data:
## Target: testfs-MDTffff
## Index: unassigned
## Lustre FS: testfs
## Mount type: ldiskfs
## Flags: 0x75
## (MDT MGS needs_index first_time update )
## Persistent mount opts: errors=remount-ro,iopen_nopriv,user_xattr
## Parameters: mdt.group_upcall=/usr/sbin/l_getgroups
## device size = 1024MB
## 2 6 22
## formatting backing filesystem ldiskfs . /dev/sdb
## target name testfs-MDTffff
## 4k blocks 0
## options -i 4096 -I 512 -q -O dir_index,uninit_groups,mmp -F
## mkfs_cmd = mkfs.ext2 -j -b 4096 -L testfs-MDTffff -i 4096 -I 512 -q -O ##dir_index,uninit_groups,mmp -F /dev/sdb
## 清楚的可以看到 文件系统加入了mmp 功能
shell $> dumpe2fs /dev/sdb |grep features
dumpe2fs 1.40.11.sun1 (17-June-2008)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery mmp sparse_super large_file uninit_groups
好了OK 下面在做一个MDS OST 吧~~~