CX8K GPFS全闪存储配置
全闪采用客户端集群部署方式,结构为存储集群<--->文件系统<--->客户端集群,存储集群上负责创建元数据盘和数据盘和文件系统,客户端集群负责添加客户端主机挂载文件系统,分了两个客户端集群挂载三个文件系统
本次实例客户端网卡组:nc_client_3,nc_client_4,nc_client_5:
客户端网卡组 | 服务器 | 设备ID | 网卡 | 网卡 |
---|---|---|---|---|
nc_client_3 | server001,server002 | mlx5_1,mlx5_3 | eth1 | enp74s0np0 |
nc_client_4 | server001..server012 | mlx5_7,mlx5_9 | ens16np0 | ens18np0 |
nc_client_5 | server013..server032 | mlx5_4,mlx5_6 | ens112np0 | ens114np0 |
文件系统:fs1,fs34,fs5
文件系统 | 服务器 |
---|---|
fs1 | server001..server032 |
fs34 | server001..server012 |
fs5 | server013..server032 |
客户端集群:ubuntu.cluster1,ubuntu.cluster2
客户端集群 | 服务器 | 文件系统 |
---|---|---|
ubuntu.cluster1 | server001..server012 | fs1,fs34 |
ubuntu.cluster2 | server013..server032 | fs1,fs5 |
存储节点集群
在客户端集群配置前,需要在存储节点cx001上将虚拟磁盘和文件系统定义并挂载上存储节点集群,以下示例是创建fs5过程:
1.1 定义元数据vs
mmvdisk vdiskset define --vs nvmevs5m --rg rg_1 --code 3WayReplication --block-size 1M --set-size 3t --da DA1 --nsd-usage metadataOnly --storage-pool system
1.2 定义数据
mmvdisk vdiskset define --vs nvmevs5 --rg rg_1 --code 8+3P --block-size 1M --set-size 50T --da DA1 --nsd-usage dataOnly --storage-pool pool1
1.3 查看vdiskset组
/usr/lpp/mmfs/bin/mmvdisk vdiskset list --vs all
1.4 创建vdiskset组
/usr/lpp/mmfs/bin/mmvdisk vs create --vs nvmevs5m
/usr/lpp/mmfs/bin/mmvdisk vs create --vs nvmevs5
1.5 创建文件系统
/usr/lpp/mmfs/bin/mmvdisk fs create --fs fs5 --vs nvmevs5m,nvmevs5 --mmcrfs -T /cx8k/fs5 -n 64
1.6 挂载文件系统到存储集群所有节点
/usr/lpp/mmfs/bin/mmmount fs5 -a
1.7 查看是否已挂载到存储节点
/usr/lpp/mmfs/bin/mmlsmount all -L
客户端集群
先根据客户端集群的数量定义 1/3/5/7单数的仲裁节点,本次是20台华三服务器,需要将选出的仲裁节点与所有客户端做免密互信,此处是所有客户端节点server013-server029 17台,仲裁节点为server013-server017 5台,选择server013客户端集群主节点配置均在server013上
2.1 所有节点先做root密码/配置密钥/root登录
echo "root:xxxxx" | sudo chpasswd
sudo sed -i 's/^#PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo systemctl restart sshd
2.2 在单个仲裁节点先生成SSH-KEY,5台仲裁都需要
ssh-keygen -m PEM
2.3 单个仲裁节点做免密,5台仲裁都需要执行
sudo sshpass -p "XXXXXX" ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa.pub root@server013
.....
sudo sshpass -p "XXXXXX" ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa.pub root@server029
2.4 选择仲裁节点server013配置做客户端集群的安装节点(主节点),配置node list
vim /root/nodes
server013.owl.local:quorum
server014.owl.local:quorum
server015.owl.local:quorum
server016.owl.local:quorum
server017.owl.local:quorum
server018.owl.local:client
server019.owl.local:client
server020.owl.local:client
server021.owl.local:client
server022.owl.local:client
server023.owl.local:client
server024.owl.local:client
server025.owl.local:client
server026.owl.local:client
server027.owl.local:client
server028.owl.local:client
server029.owl.local:client
2.5 server013-server029之前如安装过客户端包需要删除,新添加集群的客户端需要保证客户端上干净
rm -rf /var/mmfs /usr/lpp/mmfs
rm -rf /var/adm/ras/mm*
rm -rf /tmp/mmfs
2.6 scp安装客户端包:
sudo scp /root/Spectrum_Scale_Erasure_Code-5.1.6.1-x86_64-Linux-install root@server013:/root/
....
sudo scp /root/Spectrum_Scale_Erasure_Code-5.1.6.1-x86_64-Linux-install root@server029:/root/
2.7 登录server013-server032依次运行 Spectrum Scale 安装脚本,提示输入1
/root/Spectrum_Scale_Erasure_Code-5.1.6.1-x86_64-Linux-install --text-only
2.8 安装存储客户端
sudo apt install ksh -ysudo dpkg -i /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.base_5.1.6-1_amd64.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.docs_5.1.6-1_all.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.gpl_5.1.6-1_all.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.adv_5.1.6-1_amd64.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.gskit_8.0.55-19.1_amd64.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.java_5.1.6-1_amd64.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.license.ec_5.1.6-1_amd64.deb /usr/lpp/mmfs/5.1.6.1/gpfs_debs/gpfs.msg.en-us_5.1.6-1_all.debsudo /usr/lpp/mmfs/bin/mmbuildgpl
2.9 创建客户端集群
/usr/lpp/mmfs/bin/mmcrcluster -N /root/nodes --ccr-enable -r /usr/bin/ssh -R /usr/bin/scp -C ubuntu.cluster2
2.10 授权客户端节点
/usr/lpp/mmfs/bin/mmchlicense server --accept -N server013,server014,server015,server016,server017,server018,server019,server020,server021,server022,server023,server024,server025,server026,server027,server028,server029
2.11 配置自动挂载和块大小
/usr/lpp/mmfs/bin/mmchconfig autoload=yes
/usr/lpp/mmfs/bin/mmchconfig maxblocksize=16M
2.12 客户端集群的秘钥发送到存储集群的安装cx001上
scp -r /var/mmfs/ssl/id_rsa.pub 10.24.9.201:/home/
2.13 在存储集群节点cx001执行,把存储集群的秘钥发送到客户端集群的客户端server013上
scp -r /var/mmfs/ssl/id_rsa.pub 10.24.9.13:/home
2.14 在客户端server013上执行,获取客户端集群的集群名,本例中为ubuntu.cluster2
/usr/lpp/mmfs/bin/mmlscluster
2.15 在存储节点cx001上执行,存储集群对客户端集群授,秘钥在之前发送的/home路径下,ubuntu.cluster2为客户端集群名
/usr/lpp/mmfs/bin/mmauth add ubuntu.cluster2 -k /home/id_rsa.pub
2.16 在存储节点cx001上执行,存储集群对客户端集群文件系统授权
/usr/lpp/mmfs/bin/mmauth grant ubuntu.cluster2 -f fs1 -a rw
2.17 在客户端server013上执行,在客户端集群指定链接节点cx001
/usr/lpp/mmfs/bin/mmremotecluster add h3c_cx8028.h3c.com -n cx001.h3c.com -k /home/id_rsa.pub
2.18 在客户端server013上执行,创建远程文件系统的挂载点
/usr/lpp/mmfs/bin/mmremotefs add fs1 -f fs1 -C h3c_cx8028.h3c.com -T /cx8k/fs1 -A yes
2.19 启动客户端集群
/usr/lpp/mmfs/bin/mmstartup -a
2.20 在客户端server013上执行,所有客户端挂载文件系统
/usr/lpp/mmfs/bin/mmmount fs1 -a
2.21 客户端自动挂载文件系统
/usr/lpp/mmfs/bin/mmchconfig autoload=yes
/usr/lpp/mmfs/bin/mmremotefs update fs1 -A ye
客户端配置RDMA
3.1 配置rc.local
#!/bin/bash# 关闭自动更新
sudo sed -i 's/^APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/10periodic# 配置 rc.local
sudo sh -c 'echo "[Install]\nWantedBy=multi-user.target" >> /lib/systemd/system/rc-local.service'# 添加设置到 rc.local
sudo tee -a /etc/rc.local <<EOFmlnx_qos -i ens112np0 --pfc 0,0,0,1,0,0,0,0 --trust dscp
mlnx_qos -i ens114np0 --pfc 0,0,0,1,0,0,0,0 --trust dscpcma_roce_tos -d mlx5_4 -t 106
cma_roce_tos -d mlx5_6 -t 106
echo 106 > /sys/class/infiniband/mlx5_4/tc/1/traffic_class
echo 106 > /sys/class/infiniband/mlx5_6/tc/1/traffic_classsysctl -w net.ipv6.conf.ens112np0.disable_ipv6=0
sysctl -w net.ipv4.conf.ens112np0.arp_ignore=2
sysctl -w net.ipv4.conf.ens112np0.arp_announce=1
sysctl -w net.ipv4.conf.ens112np0.rp_filter=2sysctl -w net.ipv6.conf.ens114np0.disable_ipv6=0
sysctl -w net.ipv4.conf.ens114np0.arp_ignore=2
sysctl -w net.ipv4.conf.ens114np0.arp_announce=1
sysctl -w net.ipv4.conf.ens114np0.rp_filter=2for i in mlx5_4 mlx5_6; do mlxconfig -y -d \$i -e s INT_LOG_MAX_PAYLOAD_SIZE=12; doneethtool -G ens112np0 rx 8192 tx 8192
ethtool -G ens114np0 rx 8192 tx 8192EOF# 设定权限
chmod +x /etc/rc.local# 启用 rc.local 服务
systemctl enable rc-local.service# 重启 rc.local 服务
3.2 .配置200G网络,传参IP最后一位
#!/bin/bash# 检查参数是否提供正确
if [ $# -ne 1 ]; thenecho "Usage: $0 <new_last_octet>"exit 1
fi# 存储传递给脚本的参数
new_octet="$1"# 生成配置文件内容并替换指定的地址部分
config_content="network:version: 2ethernets:ens112np0:addresses: [10.24.12.$new_octet/24]dhcp4: nomtu: 9000ipv6-address-generation: eui64routes:- to: 10.24.12.0/24scope: linkfrom: 10.24.12.$new_octettable: 101routing-policy:- from: 10.24.12.$new_octettable: 101priority: 32761ens114np0:addresses: [10.24.14.$new_octet/24]dhcp4: nomtu: 9000ipv6-address-generation: eui64routes:- to: 10.24.14.0/24scope: linkfrom: 10.24.14.$new_octettable: 102routing-policy:- from: 10.24.14.$new_octettable: 102priority: 32761"# 写入配置文件
echo "$config_content" | sudo tee /etc/netplan/01-roce-config.yaml > /dev/nullecho "Configuration generated and written to /etc/netplan/01-roce-config.yaml"# 应用配置
sudo netplan apply# 添加路由表
echo "101 t1" | sudo tee -a /etc/iproute2/rt_tables
echo "102 t2" | sudo tee -a /etc/iproute2/rt_tables
客户端网卡组
4.1 在客户端集群仲裁节点server013上创建客户端组
/usr/lpp/mmfs/bin/mmcrnodeclass nc_client_5 -N server013,server014,server015,server016,server017,server018,server019,server020,server021,server022,server023,server024,server025,server026,server027,server028,server029
/usr/lpp/mmfs/bin/mmchconfig verbsPorts="mlx5_4/1 mlx5_6/1" -N nc_client_5
/usr/lpp/mmfs/bin/mmchconfig workerThreads=2048,maxMBpS=50000,maxFilesToCache=3M,maxStatCache=4M -N nc_client_5
/usr/lpp/mmfs/bin/mmchconfig pagepool=16G -N nc_client_5
/usr/lpp/mmfs/bin/mmshutdown -N nc_client_5
/usr/lpp/mmfs/bin/mmstartup -N nc_client_5
4.2 在客户端集群仲裁节点server013启用RDMA通道
/usr/lpp/mmfs/bin/mmchconfig verbsRdma=enable -N nc_client_5
/usr/lpp/mmfs/bin/mmchconfig verbsRdmaSend=yes -N nc_client_5
/usr/lpp/mmfs/bin/mmchconfig verbsRdmaCm=enable -N nc_client_5
ROCE全闪常用查询
##集群节点查看挂载节点:
/usr/lpp/mmfs/bin/mmlsmount all -L##集群节点上查看节点状态:
/usr/lpp/mmfs/bin/mmgetstate -a##集群节点上查看健康:
/usr/lpp/mmfs/bin/mmhealth cluster show node
/usr/lpp/mmfs/bin/mmhealth cluster show##客户端上集群查询:
/usr/lpp/mmfs/bin/mmlscluster##客户端上查询集群名:
/usr/lpp/mmfs/bin/mmlscluster |grep -i GPFS##集群节点上查看RDMA状态
/usr/lpp/mmfs/bin/mmdiag --network##CX001存储节点查看vdiskset组
/usr/lpp/mmfs/bin/mmvdisk vdiskset list --vs all##CX001存储节点查看创建好的vdisks
/usr/lpp/mmfs/bin/mmvdisk vdisk list --rg all##客户端上查看包是否安装:
ll /usr/lpp/mmfs/bin/mmcrcluster##集群节点查看配置信息包括网卡组:
/usr/lpp/mmfs/bin/mmlsconfig
GUI服务器
CX8028存储还可以提供一台GUI服务器,安装在一台单独的虚拟机上。 主要能提供一些监控功能,比如节点状态,负载,健康度,文件系统;还可能用来创建快照。 功能比较单一,并不能用来取代命令行进行配置。