H3C CX8028 GPFS并行文件系统全闪存储配置案例

CX8K GPFS全闪存储配置

全闪采用客户端集群部署方式,结构为存储集群<--->文件系统<--->客户端集群,存储集群上负责创建元数据盘和数据盘和文件系统,客户端集群负责添加客户端主机挂载文件系统,分了两个客户端集群挂载三个文件系统

image.png

本次实例客户端网卡组: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 -y

sudo 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.deb

sudo /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 <<EOF

mlnx_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 dscp

cma_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_class

sysctl -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=2

sysctl -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=2

for i in mlx5_4 mlx5_6; do mlxconfig -y -d \$i -e s INT_LOG_MAX_PAYLOAD_SIZE=12; done

ethtool -G ens112np0 rx 8192 tx 8192
ethtool -G ens114np0 rx 8192 tx 8192


EOF

# 设定权限
chmod +x /etc/rc.local

# 启用 rc.local 服务
systemctl enable rc-local.service

# 重启 rc.local 服务

3.2 .配置200G网络,传参IP最后一位

#!/bin/bash
  
# 检查参数是否提供正确
if [ $# -ne 1 ]; then
    echo "Usage: $0 <new_last_octet>"
    exit 1
fi

# 存储传递给脚本的参数
new_octet="$1"

# 生成配置文件内容并替换指定的地址部分
config_content="network:
  version: 2
  ethernets:
    ens112np0:
      addresses: [10.24.12.$new_octet/24]
      dhcp4: no
      mtu: 9000
      ipv6-address-generation: eui64
      routes:
        - to: 10.24.12.0/24
          scope: link
          from: 10.24.12.$new_octet
          table: 101
      routing-policy:
        - from: 10.24.12.$new_octet
          table: 101
          priority: 32761

    ens114np0:
      addresses: [10.24.14.$new_octet/24]
      dhcp4: no
      mtu: 9000
      ipv6-address-generation: eui64
      routes:
        - to: 10.24.14.0/24
          scope: link
          from: 10.24.14.$new_octet
          table: 102
      routing-policy:
        - from: 10.24.14.$new_octet
          table: 102
          priority: 32761"

# 写入配置文件
echo "$config_content" | sudo tee /etc/netplan/01-roce-config.yaml > /dev/null

echo "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服务器,安装在一台单独的虚拟机上。 主要能提供一些监控功能,比如节点状态,负载,健康度,文件系统;还可能用来创建快照。 功能比较单一,并不能用来取代命令行进行配置。

posted @ 2025-02-16 12:40  陈大玉  阅读(366)  评论(0)    收藏  举报