关于之前遇到的一些问题,比较繁杂,主要有以下问题:

  • 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的下载地址可能会变,请打开下载目录查看最新链接

从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),请参考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
  • user/duo/lustrebuild.txt
  • 最后更改: 6年前
  • 王一多