===== lustre 安装过程与一些问题(废弃) ===== 关于之前遇到的一些问题,比较繁杂,主要有以下问题: *lustre的release版本与zfs的release版本是不兼容的(会报一个ksym的错误),查阅他们的mailing list有人汇报了这个问题,给出的解答是由于zfs的升级导致的,但是我没有找到他们给出的决办法,所以我没有使用release的zfs(0.7.0),而是使用的以前版本(0.6.5) *首先Lustre与InfiniBand是兼容的,但是之前我们实验室的InfiniBand有问题,所以我总是装不上,会在快编译完的时候报一个OpenIB的conflict,这个问题没有人遇到过,所以我就卸载了node7与node8的InfiniBand以完成安装。最近师兄说InfiniBand的错误修复了,我会尝试在node6与node9上安装时进行InfiniBand的兼容。这个问题我在node6上重装了InfiniBand(4.4版本),编译时加上相应参数,得到解决 ==== lustre server安装过程 ==== ---- === 准备工作 === 首先可以创建一个单独的账户,如build,然后给予其sudo权限,在build的home目录下面弄以防混乱 cd ~ 接着安装一些dependency sudo yum -y groupinstall "Development Tools" sudo rpm -ivh https://mirrors.ustc.edu.cn/epel//7/x86_64/Packages/e/epel-release-7-11.noarch.rpm sudo yum -y install xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel hmaccalc perl-ExtUtils-Embed bison elfutils-devel \ audit-libs-devel kernel-devel libattr-devel libuuid-devel libblkid-devel libselinux-devel libudev-devel libyaml-devel # 为装InfiniBand而加入libyaml-devel sudo yum -y install pesign numactl-devel pciutils-devel ncurses-devel libselinux-devel fio epel的下载地址可能会变,请打开[[https://mirrors.ustc.edu.cn/epel/7/x86_64/|下载目录]]查看最新链接 === 从git下载lustre-release并配置 === 从git下载最新的lustre并利用其脚本进行configure git clone git://git.whamcloud.com/fs/lustre-release.git cd lustre-release sh ./autogen.sh 如果显示以下输出说明没有问题 configure.ac:10: installing 'config/config.guess' configure.ac:10: installing 'config/config.sub' configure.ac:12: installing 'config/install-sh' configure.ac:12: installing 'config/missing' libcfs/libcfs/autoMakefile.am: installing 'config/depcomp' === 从git下载zfs与spl并编译安装 === 如果你怀疑你的zfs已安装版本有问题(比如你已经使用yum直接安装了zfs),请参考[[https://github.com/zfsonlinux/zfs/wiki/RHEL-and-CentOS|Installation for zfs]]来卸载干净你的zfs环境并用git重新构建zfs 同时,目前的zfs-release与lustre不兼容,一定记得切换zfs的分支 从git上clone下来spl并查看其分支 cd ~ git clone https://github.com/zfsonlinux/spl.git cd spl/ git branch -a 可以看到有如下版本 master * spl-0.6.5-release remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/spl-0.6.3-stable remotes/origin/spl-0.6.4-release remotes/origin/spl-0.6.5-release remotes/origin/spl-0.7-release #改变分支 git checkout spl-0.6.5-release ./autogen.sh 从git上clone下来zfs并改变其分支 cd ~ git clone https://github.com/zfsonlinux/zfs.git cd zfs git checkout zfs-0.6.5-release ./autogen.sh 构建spl cd ~/spl ./configure --with-spec=redhat make pkg-utils pkg-kmod 如成功,应有如下显示 Executing(%clean): /bin/sh -e /tmp/spl-build-build-tCTZ7hGa/TMP/rpm-tmp.7z8fOR + umask 022 + cd /tmp/spl-build-build-tCTZ7hGa/BUILD + cd spl-0.6.5.11 + rm -rf /tmp/spl-build-build-tCTZ7hGa/BUILDROOT/spl-kmod-0.6.5.11-1.el7.centos.x86_64 + exit 0 Executing(--clean): /bin/sh -e /tmp/spl-build-build-tCTZ7hGa/TMP/rpm-tmp.tIJbbV + umask 022 + cd /tmp/spl-build-build-tCTZ7hGa/BUILD + rm -rf spl-0.6.5.11 + exit 0 make[1]: Leaving directory `/home/build/spl' 安装生成的本地rpm包 sudo yum -y localinstall *.x86_64.rpm 在任何时候,如果你遇到了大量的ksym依赖错误,尝试执行以下命令 yum install \ asciidoc audit-libs-devel automake bc \ binutils-devel bison device-mapper-devel elfutils-devel \ elfutils-libelf-devel expect flex gcc gcc-c++ git \ glib2 glib2-devel hmaccalc keyutils-libs-devel krb5-devel ksh \ libattr-devel libblkid-devel libselinux-devel libtool \ libuuid-devel libyaml-devel lsscsi make ncurses-devel \ net-snmp-devel net-tools newt-devel numactl-devel \ parted patchutils pciutils-devel perl-ExtUtils-Embed \ pesign python-devel redhat-rpm-config rpm-build systemd-devel \ tcl tcl-devel tk tk-devel wget xmlto yum-utils zlib-devel 以类似的步骤,我们来编译安装zfs cd ~/zfs/ ./configure --with-spec=redhat make pkg-utils pkg-kmod sudo yum -y localinstall *.x86_64.rpm