openGauss
开源数据库
openGauss社区官网
开源社区
RDMA网络指导_2023
识别CX4/CX5网卡 
执行以下命令。
lspci |grep Mellanox
回显如下:
81:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
81:00.1 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
安装MLNX驱动 
- 选择下载与OS匹配的驱动包,地址:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/。  
- 新建目录,将OS镜像文件挂载至新建目录。OS镜像名称请根据实际情况进行修改。 - mkdir -p /mnt/iso mount openEuler-22.03-LTS-x86_64-dvd.iso /mnt/iso
- 安装过程中需要部分依赖,请配置好OS镜像源,例如本地镜像。 - 打开镜像源文件。 - vim /etc/yum.repos.d/openEuler.repo
- 按“i”进入编辑模式,只保留以下内容。 - [OS] name=OS baseurl=file:///mnt/iso enabled=1 gpgcheck=0
- 按“Esc”键,输入**:wq!**,按“Enter”保存并退出编辑。 
- 缓存软件包。 - yum makecache
 
- 上传驱动包至服务器并解压。驱动包名称请根据实际情况进行修改。 - tar -zxvf MLNX_OFED_LINUX-5.4-3.7.5.0-openeuler22.03-x86_64.tgz
- 进入解压后的驱动包目录,执行以下命令安装驱动。 - ./mlnxofedinstall --without-depcheck --without-fw-update --force- 如果提示内核不匹配,则执行以下命令。 - ./mlnxofedinstall --add-kernel-support
- 设置重启后自动拉起驱动。 - chkconfig --add openibd /etc/init.d/openibd start chkconfig openibd on
- 安装完成后重启服务器。 
安装检查 
- 检查驱动RoCE LAG功能。 
- 检查驱动版本。 - ofed_info -s- 回显驱动版本与安装MLNX驱动版本一致则版本无误。 
- 加载MST工具。 - mst start- 回显如下表示加载成功。 - Starting MST (Mellanox Software Tools) driver set Loading MST PCI module - Success Loading MST PCI configuration module - Success Create devices Unloading MST PCI module (unused) - Success
- 查询设备路径和网络端口。 - 查询设备上RoCE和IB卡的设备路径。 - mst status- 回显如下: - MST modules: ------------ MST PCI module is not loaded MST PCI configuration module loaded MST devices: ------------ /dev/mst/mt4119_pciconf0 - PCI configuration cycles access. domain:bus:dev.fn=0000:81:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1 Chip revision is: 00- 其中,MST devices字段枚举的设备路径/dev/mst/mst_typeN(N取值:0,1,2,……)代表一张CX卡,mst_type和CX网卡型号映射关系参考表1。 - 表 1 mst_type和CX网卡型号映射关系 
- 查看需要检查的网络端口,后续步骤将对查询到的所有端口进行检查。 - ll /dev/mst - 当前节点需要对“mt4119_pciconf0”和“mt4119_pciconf0.1”这两个端口进行检查。 
 
- 检查固件版本。 - 查询RoCE/IB卡的固件版本,其中“/dev/mst/mt4119_pciconf0“为上一步中查询到的设备路径,请根据实际情况进行替换。 - flint -d /dev/mst/mt4119_pciconf0 q- 查询结果如下。 - Image type: FS4 FW Version: 16.31.2006 FW Release Date: 31.8.2021 Product Version: 16.31.2006 Rom Info: type=UEFI version=14.24.15 cpu=AMD64 type=PXE version=3.6.404 cpu=AMD64 Description: UID GuidsNumber Base GUID: ec0d9a0300c152e4 8 Base MAC: ec0d9ac152e4 8 Image VSD: N/A Device VSD: N/A PSID: MT_0000000012 Security Attributes: N/A
 
- 检查固件网络协议。 - 查看当前网络协议,此处以ETH协议为例。 - ibdev2netdev -v 
- 查看LINK_TYPE_P1、LINK_TYPE_P2的值,以/dev/mst/mt4123_pciconf0为例。 - mlxconfig -d /dev/mst/mt4123_pciconf0 q|grep LINK_TYPE_P1 mlxconfig -d /dev/mst/mt4123_pciconf0 q|grep LINK_TYPE_P2
- 设置LINK_TYPE_P1和LINK_TYPE_P2的值,以/dev/mst/mt4123_pciconf0为例。 - mlxconfig -d /dev/mst/mt4123_pciconf0 s LINK_TYPE_P1=2 mlxconfig -d /dev/mst/mt4123_pciconf0 s LINK_TYPE_P2=2 
- 执行reboot命令重启,重复6.b确认已修改成功。 
 
- Server节点执行: - ib_send_bw -d mlx5_1- Client节点执行(xx.xx.xx.xx为Server节点的IP地址): - ib_send_bw -d mlx5_1 xx.xx.xx.xx
- 说明: 此步骤属于优化项,可以降低网络时延,建议用户进行操作。 - 查询CX卡固件选项PCI_WR_ORDERING的值。 - 以“/dev/mst/mt4119_pciconf0“为例,查询该设备的两个端口固件设置,查询结果中per_mkey值应为1,若不为1则执行8.b修改。 - mlxconfig -d /dev/mst/mt4119_pciconf0 q | grep PCI_WR_ORDERING mlxconfig -d /dev/mst/mt4119_pciconf0.1 q | grep PCI_WR_ORDERING 
- 对一张CX5卡两个端口的固件选项PCI_WR_ORDERING进行设置,然后执行reboot命令重启,环境恢复后,按照8再次检查一遍,检查是否修改成功。 - mlxconfig -y -d /dev/mst/mt4119_pciconf0 s PCI_WR_ORDERING=1 - mlxconfig -y -d /dev/mst/mt4119_pciconf0.1 s PCI_WR_ORDERING=1 
 
配置网卡IP 
- 查看以太网设备和IB设备/端口之间的关联。 - ibdev2netdev -v- 当前节点网卡驱动客户端mlx5_0关联网卡名称enp24s0f0
- 当前节点网卡驱动客户端mlx5_1关联网卡名称enp24s0f1
  
- ifconfig -a - 若四个状态均正常表示可正常使用。 - UP:代表网卡开启状态。
- RUNNING:代表网卡的网线被接上。
- MULTICAST:支持组播。
- MTU 1500:最大传输单元。
 
- 根据环境配置网卡IP地址。以下为添加“/etc/sysconfig/network-scripts/ifcfg-enp24s0f0“config文件方式。使用systemctl restart network.service重启应用。  - 配置完成后,根据2查看网卡状态。  
常用IB命令 
表 1 常用IB命令
| 计算一对机器之间RDMA原子事务的带宽,一个server端一个client端,通过CPU采样获取接受完整消息时间计算带宽。该测试支持双向测试,支持更换MTU大小,tx大小,迭代数,消息大小等,更多用法参见“-a”参数。 | |
| 计算一对机器之间RDMA一定消息大小下原子事务的时延,client端发送RDMA atomic操作到服务器端,并对CPU时钟采样获取它接收消息完成情况,从而计算时延。 | |

