Centos7离线部署luster
集群规划如下:
节点以太IP | 节点IB IP | 磁盘数目 | 服务 |
---|---|---|---|
10.1.32.101 | lustre01 | 16* NVME | mds&oss |
10.1.32.102 | 192.168.6.102 | 16* NVME | oss |
10.1.32.103 | 192.168.6.103 | 16* NVME | oss |
目标系统的内核版本是3.10.0-1160.49.1
我们在以centos7.9 2009 minimal 的镜像新建一台能连外网的虚拟机
1.更新到目标内核
目标内核以被官方仓库移除,所以自行google搜到第三方的备份的目标内核和其开发包的链接,安装
yum install -y http://mirror.centos.org/centos/7/updates/x86_64/Packages/kernel-3.10.0-1160.49.1.el7.x86_64.rpm https://linuxsoft.cern.ch/cern/centos/7/updates/x86_64/Packages/kernel-devel-3.10.0-1160.49.1.el7.x86_64.rpm
安装完重启系统,切到新内核下进行下面的操作
2.下载lustre软件包
配置yum源
新建/etc/yum.repos.d/lustre.repo
[lustre-server]
name=lustre-server
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.12.9-ib/el7.9.2009/server/
gpgcheck=0
[lustre-client]
name=lustre-client
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.12.9-ib/el7.9.2009/client/
gpgcheck=0
[e2fsprogs-wc]
name=e2fsprogs-wc
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/
gpgcheck=0
下载rpm包到~/lustre目录:
yum --downloadonly --downloaddir=/root/lustre install -y e2fsprogs e2fsprogs-libs libss libcom_err kernel-*lustre kmod-lustre kmod-lustre-osd-ldiskfs kmod-lustre-tests lustre-osd-ldiskfs lustre-osd-ldiskfs-mount lustre-modules lustre-ldiskfs-dkms lustre
tar打包后 上传到目标机器 并解压
3.安装lustre
yum localinstall -y *
安装完lustre后重启系统,切到lustre的内核
4.配置IB网络
修改可用的ib网卡,配置其网络ip、网关,如下
TYPE=InfiniBand
BOOTPROTO=static
NAME=ib0
DEVICE=ib0
ONBOOT=yes
IPADDR=192.168.6.100
NETMASK=255.255.255.0
GATEWAY=192.168.6.1
METRIC=200
5.配置hosts和时钟源、关闭selinux和防火墙
编辑/etc/hosts:
lustre01 lustre01
lustre01 lustre02
lustre01 lustre03
关闭防火墙永久:
systemctl diable firewalld --now
关闭selinux永久:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
第一台机器 作为内部时钟源 修改**/etc/chrony.conf**
allow 10.1.32.101.0/24
其他机器 修改**/etc/chrony.conf**
logdir /var/log/chrony
pool 10.1.32.101 iburst
所有节点重启
5.配置lnet网络
加载lnet模块前需要去除lustre模块:
lustre_rmmod
加载lnet模块
modprobe -v lnet
配置lnet网络
lnetctl lnet configure
lnetctl net add --net o2ib --if ib0
//lnetctl net add --net tcp --if ens5f3
查看网络
lnetctl net show
写入配置文件
lnetctl export > /etc/sysconfig/lnet.conf
配置开机自启
systemctl enable lnet
6.配置lustre
第一台服务器
mgs服务创建
格式化第一块盘为mgt盘,并挂载
这里service node 只有当前节点,生产环境可以配置多个servicenode
mkfs.lustre --fsname=lustre --reformat --mgs --servicenode=lustre01@o2ib /dev/nvme10n1
mkdir -p /mnt/mgt
mount -t lustre /dev/nvme10n1 /mnt/mgt
mds服务创建
格式化第2、3块盘为mdt盘
mkfs.lustre --fsname=lustre --reformat --mdt --mgsnode=lustre01@o2ib --index=0 /dev/nvme11n1
mkfs.lustre --fsname=lustre --reformat --mdt --mgsnode=lustre01@o2ib --index=1 /dev/nvme12n1
mkdir -p /mnt/mdt{1,2}
mount -t lustre /dev/nvme11n1 /mnt/mdt1
mount -t lustre /dev/nvme12n1 /mnt/mdt2
oss服务创建
第一台服务器
/dev/nvme13n1 - /dev/nvme15n1 3块盘作为ost盘
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --servicenode=lustre01@o2ib --index=101 /dev/nvme13n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --servicenode=lustre01@o2ib --index=102 /dev/nvme14n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --servicenode=lustre01@o2ib --index=103 /dev/nvme15n1
mkdir -p /mnt/ost{1..3}
mount -t lustre /dev/nvme13n1 /mnt/ost1
mount -t lustre /dev/nvme14n1 /mnt/ost2
mount -t lustre /dev/nvme15n1 /mnt/ost3
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=110 /dev/nvme0n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=111 /dev/nvme1n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=112 /dev/nvme2n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=113 /dev/nvme3n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=114 /dev/nvme4n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=115 /dev/nvme5n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=116 /dev/nvme6n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=117 /dev/nvme7n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=118 /dev/nvme8n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=119 /dev/nvme9n1
mkdir /mnt/ost{10..19}
mount -t lustre /dev/nvme0n1 /mnt/ost10
mount -t lustre /dev/nvme1n1 /mnt/ost11
mount -t lustre /dev/nvme2n1 /mnt/ost12
mount -t lustre /dev/nvme3n1 /mnt/ost13
mount -t lustre /dev/nvme4n1 /mnt/ost14
mount -t lustre /dev/nvme5n1 /mnt/ost15
mount -t lustre /dev/nvme6n1 /mnt/ost16
mount -t lustre /dev/nvme7n1 /mnt/ost17
mount -t lustre /dev/nvme8n1 /mnt/ost18
mount -t lustre /dev/nvme9n1 /mnt/ost19
第二台服务器
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=201 /dev/nvme10n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=202 /dev/nvme11n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=203 /dev/nvme12n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=204 /dev/nvme13n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=205 /dev/nvme14n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=206 /dev/nvme15n1
mkdir /mnt/ost{1..6}
mount -t lustre /dev/nvme10n1 /mnt/ost1
mount -t lustre /dev/nvme11n1 /mnt/ost2
mount -t lustre /dev/nvme12n1 /mnt/ost3
mount -t lustre /dev/nvme13n1 /mnt/ost4
mount -t lustre /dev/nvme14n1 /mnt/ost5
mount -t lustre /dev/nvme15n1 /mnt/ost6
mkdir /mnt/ost{10..19}
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=310 /dev/nvme0n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=311 /dev/nvme1n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=312 /dev/nvme2n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=313 /dev/nvme3n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=314 /dev/nvme4n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=315 /dev/nvme5n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=316 /dev/nvme6n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=317 /dev/nvme7n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=318 /dev/nvme8n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=319 /dev/nvme9n1
mount -t lustre /dev/nvme0n1 /mnt/ost10
mount -t lustre /dev/nvme1n1 /mnt/ost11
mount -t lustre /dev/nvme2n1 /mnt/ost12
mount -t lustre /dev/nvme3n1 /mnt/ost13
mount -t lustre /dev/nvme4n1 /mnt/ost14
mount -t lustre /dev/nvme5n1 /mnt/ost15
mount -t lustre /dev/nvme6n1 /mnt/ost16
mount -t lustre /dev/nvme7n1 /mnt/ost17
mount -t lustre /dev/nvme8n1 /mnt/ost18
mount -t lustre /dev/nvme9n1 /mnt/ost19
第三台服务器
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=301 /dev/nvme10n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=302 /dev/nvme11n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=303 /dev/nvme12n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=304 /dev/nvme13n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=305 /dev/nvme14n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=306 /dev/nvme15n1
mkdir /mnt/ost{1..6}
mount -t lustre /dev/nvme10n1 /mnt/ost1
mount -t lustre /dev/nvme11n1 /mnt/ost2
mount -t lustre /dev/nvme12n1 /mnt/ost3
mount -t lustre /dev/nvme13n1 /mnt/ost4
mount -t lustre /dev/nvme14n1 /mnt/ost5
mount -t lustre /dev/nvme15n1 /mnt/ost6
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=310 /dev/nvme0n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=311 /dev/nvme1n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=312 /dev/nvme2n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=313 /dev/nvme3n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=314 /dev/nvme4n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=315 /dev/nvme5n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=316 /dev/nvme6n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=317 /dev/nvme7n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=318 /dev/nvme8n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=319 /dev/nvme9n1
mkdir /mnt/ost{10..19}
mount -t lustre /dev/nvme0n1 /mnt/ost10
mount -t lustre /dev/nvme1n1 /mnt/ost11
mount -t lustre /dev/nvme2n1 /mnt/ost12
mount -t lustre /dev/nvme3n1 /mnt/ost13
mount -t lustre /dev/nvme4n1 /mnt/ost14
mount -t lustre /dev/nvme5n1 /mnt/ost15
mount -t lustre /dev/nvme6n1 /mnt/ost16
mount -t lustre /dev/nvme7n1 /mnt/ost17
mount -t lustre /dev/nvme8n1 /mnt/ost18
mount -t lustre /dev/nvme9n1 /mnt/ost19
7.测试
客户端安装lustre-client包 ,
可离线下载
yum --downloadonly --downloaddir=/root/lustrec install lustre-client
服务端直接测试 (不用安装上面的客户端软件包)
mkdir /share
mount.lustre lustre01@o2ib:/lustre /share
8.测试raid6下创建oss
使用mdadm创建软raid6 lustre也能支持后端存储为raid的设备
# lustre01
mkfs.lustre --fsname=lustre --reformat --mgs --servicenode=lustre01@o2ib /dev/nvme10n1
mkdir -p /mnt/mgt
mount -t lustre /dev/nvme10n1 /mnt/mgt
mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/nvme11n1 /dev/nvme12n1
mkfs.lustre --fsname=lustre --reformat --mdt --mgsnode=lustre01@o2ib --index=0 /dev/md1
mkdir /mnt/mdt
mount -t lustre /dev/md1 /mnt/mdt
mdadm --create /dev/md0 --level=6 --raid-devices=13 /dev/nvme13n1 /dev/nvme14n1 /dev/nvme15n1 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=100 /dev/md0
mkdir /mnt/ost0
mount -t lustre /dev/md0 /mnt/ost0
# lustre02
mdadm --create /dev/md0 --level=6 --raid-devices=16 /dev/nvme10n1 /dev/nvme11n1 /dev/nvme12n1 /dev/nvme13n1 /dev/nvme14n1 /dev/nvme15n1 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=200 /dev/md0
mkdir /mnt/ost0
mount -t lustre /dev/md0 /mnt/ost0
# lustre03
mdadm --create /dev/md0 --level=6 --raid-devices=16 /dev/nvme10n1 /dev/nvme11n1 /dev/nvme12n1 /dev/nvme13n1 /dev/nvme14n1 /dev/nvme15n1 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1
mkfs.lustre --fsname=lustre --reformat --ost --mgsnode=lustre01@o2ib --index=300 /dev/md0
mkdir /mnt/ost0
#lustre01
mount.lustre lustre01@o2ib:/lustre /share
9.IO500性能测试
1.下载源码包
http://pan.bitllion.top:88/d/jn/hpc/test/io500.tgz
2.解压编译安装
tar xzf io500.tgz
cd io500
module load mpi/mpich-3.0-x86_64
CC=mpicc ./prepare.sh
执行prepare.sh即可编译,并在当前目录下生成io500可执行程序和配置文件
3.测试
可以看到单机32线程跑的结果如图,但因为是在存储服务器做的测试,会有通信阻塞,实际性能会比图中更高
sbatch脚本参考
#!/bin/bash
#SBATCH --job-name=io500_test
#SBATCH --partition=cpu64
#SBATCH --nodes=10
#SBATCH --ntasks-per-node=64
#SBATCH -o io_500_out_%J
#SBATCH -e io_500_err_%J
# Load the necessary MPI environment
module load intel/2021.4.0
# Run the IO500 test with your configuration file
mpirun -np $SLURM_NTASKS /share/app/io500/io500 config-minimal.ini