Centos7离线部署luster

2023-12-12
5分钟阅读时长

集群规划如下:

节点以太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

image-20241115152436016

写入配置文件

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

image-20241115152443329

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.测试

image-20241115152449307

可以看到单机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
下一页 Lvm实战