openGauss
开源数据库
openGauss社区官网
开源社区
RDMA网络指导_2024
识别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-aarch64-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.8-1.1.2.1-openeuler22.03-aarch64.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时钟采样获取它接收消息完成情况,从而计算时延。 | |