diff --git "a/app/zh/blogs/RDMA/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" "b/app/zh/blogs/RDMA/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..e7199f3ec683529d71b16c677481bc32fa055102 --- /dev/null +++ "b/app/zh/blogs/RDMA/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" @@ -0,0 +1,470 @@ ++++ +title = "RDMA网络指导" +date = '2023-11-07' +category = 'blog' +tags = ['openGauss'] +archives = '2023-11' +author = 'why涛' +summary = "RDMA网络指导" ++++ + + + +# 识别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驱动 + +1. 选择下载与OS匹配的驱动包,地址:[https://network.nvidia.com/products/infiniband-drivers/linux/mlnx\_ofed/](https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/)。 + + ![](figures/zh-cn_image_0000001733510033.png) + +2. 新建目录,将OS镜像文件挂载至新建目录。OS镜像名称请根据实际情况进行修改。 + + ``` + mkdir -p /mnt/iso + mount openEuler-22.03-LTS-x86_64-dvd.iso /mnt/iso + ``` + +3. 安装过程中需要部分依赖,请配置好OS镜像源,例如本地镜像。 + 1. 打开镜像源文件。 + + ``` + vim /etc/yum.repos.d/openEuler.repo + ``` + + 2. 按“i”进入编辑模式,只保留以下内容。 + + ``` + [OS] + name=OS + baseurl=file:///mnt/iso + enabled=1 + gpgcheck=0 + ``` + + 3. 按“Esc”键,输入**:wq!**,按“Enter”保存并退出编辑。 + 4. 缓存软件包。 + + ``` + yum makecache + ``` + +4. 上传驱动包至服务器并解压。驱动包名称请根据实际情况进行修改。 + + ``` + tar -zxvf MLNX_OFED_LINUX-5.4-3.7.5.0-openeuler22.03-x86_64.tgz + ``` + +5. 进入解压后的驱动包目录,执行以下命令安装驱动。 + + ``` + ./mlnxofedinstall --without-depcheck --without-fw-update --force + ``` + + 如果提示内核不匹配,则执行以下命令。 + + ``` + ./mlnxofedinstall --add-kernel-support + ``` + +6. 设置重启后自动拉起驱动。 + + ``` + chkconfig --add openibd + /etc/init.d/openibd start + chkconfig openibd on + ``` + +7. 安装完成后重启服务器。 + +# 安装检查 + +1. 检查驱动RoCE LAG功能。 + 1. 查看RoCE LAG功能是否启用。 + + ``` + find /sys/ -name roce_lag_enable | xargs cat + ``` + + - 输出为1,则表示开启。 + - 输出为0或无输出,则表示关闭。 + - 预期要关闭才可以,如果没有关闭,请执行[1.b](#li519083722516)。 + + 2. 关闭RoCE LAG功能。 + + ``` + sed '/load_module mlx5_core/a\ files=`find /sys -name roce_lag_enable`;for file in $files;do echo 0 > $file;done' -i /etc/init.d/openibd + ``` + + 3. 执行后重启节点使其生效,重启后再执行[1.a](#li389014811257)查看是否生效。 + + ``` + reboot + ``` + +2. 检查驱动版本。 + + ``` + ofed_info -s + ``` + + 回显驱动版本与[安装MLNX驱动](安装MLNX驱动.md)版本一致则版本无误。 + +3. 加载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 + ``` + +4. 查询设备路径和网络端口。 + 1. 查询设备上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](#table93856218287)。 + + **表 1** mst\_type和CX网卡型号映射关系 + + + + + + + + + + + + + + + + + + + +

mst_type

+

网卡型号

+

mt4099_pci_cr

+

CX3

+

mt4117_pciconf

+

CX4-Lx

+

mt4119_pciconf

+

CX5

+

mt4123_pciconf

+

CX6

+
+ + 2. 查看需要检查的网络端口,后续步骤将对查询到的所有端口进行检查。 + + ``` + ll /dev/mst + ``` + + ![](figures/zh-cn_image_0000001739179505.png) + + 当前节点需要对“mt4119\_pciconf0”和“mt4119\_pciconf0.1”这两个端口进行检查。 + +5. 检查固件版本。 + 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 + ``` + +6. 检查固件网络协议。 + 1. 查看当前网络协议,此处以ETH协议为例。 + + ``` + ibdev2netdev -v + ``` + + ![](figures/zh-cn_image_0000001745935689.png) + + - 若网卡名前缀为ib,则表示当前网络协议为IB,执行[6.b](#li7704752131814)。 + - 若网卡名前缀为en,则表示当前网络协议为ETH,跳至[7](#li71941554151214)。 + + 2. 查看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 + ``` + + - 若结果为空,表示此环境不支持更改网络协议,请更换环境。 + - 若查询有结果,表示网络协议可修改。 + - 查询值应为ETH\(2\),跳至[7](#li71941554151214)。 + + ![](figures/zh-cn_image_0000001745981337.png) + + - 若查询值为IB\(1\),则执行[6.c](#li1297794616574)修改。 + + ![](figures/zh-cn_image_0000001734394589.png) + + 3. 设置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 + ``` + + ![](figures/zh-cn_image_0000001686355694.png) + + 4. 执行**reboot**命令重启,重复[6.b](#li7704752131814)确认已修改成功。 + +7. 验证RDMA网络。 + + Server节点执行: + + ``` + ib_send_bw -d mlx5_1 + ``` + + Client节点执行(xx.xx.xx.xx为Server节点的IP地址): + + ``` + ib_send_bw -d mlx5_1 xx.xx.xx.xx + ``` + +8. (可选)设置固件选项。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >此步骤属于优化项,可以降低网络时延,建议用户进行操作。 + + 1. 查询CX卡固件选项PCI\_WR\_ORDERING的值。 + + 以“/dev/mst/mt4119\_pciconf0“为例,查询该设备的两个端口固件设置,查询结果中per\_mkey值应为1,若不为1则执行[8.b](#li19557114614540)修改。 + + ``` + mlxconfig -d /dev/mst/mt4119_pciconf0 q | grep PCI_WR_ORDERING + mlxconfig -d /dev/mst/mt4119_pciconf0.1 q | grep PCI_WR_ORDERING + ``` + + ![](figures/zh-cn_image_0000001749130525.png) + + 2. 对一张CX5卡两个端口的固件选项PCI\_WR\_ORDERING进行设置,然后执行**reboot**命令重启,环境恢复后,按照[8](#li1555794655417)再次检查一遍,检查是否修改成功。 + + ``` + mlxconfig -y -d /dev/mst/mt4119_pciconf0 s PCI_WR_ORDERING=1 + ``` + + ![](figures/zh-cn_image_0000001701131200.png) + + ``` + mlxconfig -y -d /dev/mst/mt4119_pciconf0.1 s PCI_WR_ORDERING=1 + ``` + + ![](figures/zh-cn_image_0000001701290696.png) + +# 配置网卡IP + +1. 查看以太网设备和IB设备/端口之间的关联。 + + ``` + ibdev2netdev -v + ``` + + - 当前节点网卡驱动客户端mlx5\_0关联网卡名称enp24s0f0 + - 当前节点网卡驱动客户端mlx5\_1关联网卡名称enp24s0f1 + + ![](figures/zh-cn_image_0000001734363669.png) + +2. 查看网卡状态。 + + ``` + ifconfig -a + ``` + + ![](figures/zh-cn_image_0000001686524646.png) + + 若四个状态均正常表示可正常使用。 + + - UP:代表网卡开启状态。 + - RUNNING:代表网卡的网线被接上。 + - MULTICAST:支持组播。 + - MTU 1500:最大传输单元。 + +3. 根据环境配置网卡IP地址。以下为添加“/etc/sysconfig/network-scripts/ifcfg-enp24s0f0“config文件方式。使用**systemctl restart network.service**重启应用。 + + ![](figures/zh-cn_image_0000001734403817.png) + + 配置完成后,根据[2](#li1681619318285)查看网卡状态。 + + ![](figures/zh-cn_image_0000001734363673.png) + +# 常用IB命令 + +**表 1** 常用IB命令 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

命令

+

含义

+

lspci |grep Mell

+

查看机器上是否存在IB卡(搜索厂商名字Mellanox)。

+

ibstatus

+

查看IB卡相关信息:链路状态,端口速率,端口GUID等信息。

+

ibstat

+

ibstat功能与ibstatus相似。

+

ofed_info -s

+

查询当前安装的驱动版本。

+

ibv_devinfo

+

查询当前节点系统中IB设备信息。

+

ibqueryerrors -C mlx4_0 -P 1

+

检查当前IB网络各端口的统计信息。

+

perfquery

+

查看IB卡端口丢包、端口符号错误。

+

ibv_devices

+

查询当前节点的IB卡 - ibv_devices。

+

ibdump

+

该工具可以抓取IB层报文,由Mellanox提供。

+

ethtool --set-priv-flags eth-s0 sniffer on

+

用ethtool命令使能Sniffer,可以使用TCPDUMP抓包。

+

ib_atomic_bw

+

计算一对机器之间RDMA原子事务的带宽,一个server端一个client端,通过CPU采样获取接受完整消息时间计算带宽。该测试支持双向测试,支持更换MTU大小,tx大小,迭代数,消息大小等,更多用法参见“-a”参数。

+

ib_atomic_lat

+

计算一对机器之间RDMA一定消息大小下原子事务的时延,client端发送RDMA atomic操作到服务器端,并对CPU时钟采样获取它接收消息完成情况,从而计算时延。

+

ib_read_bw

+

计算一对机器之间RDMA read操作带宽。

+

ib_read_lat

+

计算一对机器之间RDMA一定消息大小下read操作时延。

+

ib_send_bw -d mlx5_1

+

计算一对机器之间RDMA send操作带宽。

+

ib_send_lat

+

计算一对机器之间RDMA一定消息大小下send操作时延。

+

ib_write_bw

+

计算一对机器之间RDMA write操作带宽。

+

ib_write_lat

+

计算一对机器之间RDMA一定消息大小下write操作时延。

+

raw_ethernet_bw

+

计算一对机器之间send带宽。

+

raw_ethernet_lat

+

计算一对机器之间send一定大小消息的时延。

+

rping

+

检测RDMA CM连接是否OK。

+
diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686355694.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686355694.png new file mode 100644 index 0000000000000000000000000000000000000000..48437c8dcd9645a8a7800c15d6193bff17619589 Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686355694.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686524646.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686524646.png new file mode 100644 index 0000000000000000000000000000000000000000..05e6e0c2ff8b696be08652d9a0461db24561d53e Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001686524646.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701131200.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701131200.png new file mode 100644 index 0000000000000000000000000000000000000000..2c1a901d84a1f5daeca3d49a168903ce84f58e5d Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701131200.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701290696.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701290696.png new file mode 100644 index 0000000000000000000000000000000000000000..adc54afdba28d0f8f816ca9bf8fdcde1f2ea4a76 Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001701290696.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001733510033.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001733510033.png new file mode 100644 index 0000000000000000000000000000000000000000..67deb5f9173575918afacc16ed0b0b6c5906d4f0 Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001733510033.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363669.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363669.png new file mode 100644 index 0000000000000000000000000000000000000000..e86a5bf8707494643c15c9c73ec25cbe79f0975e Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363669.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363673.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363673.png new file mode 100644 index 0000000000000000000000000000000000000000..5afc7ae67dbc12459b144eaee658efda4deae424 Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734363673.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734394589.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734394589.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3a349b1b4b17065bb49d79d8afa478fcfc22ec Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734394589.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734403817.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734403817.png new file mode 100644 index 0000000000000000000000000000000000000000..5090e1ba6d0a64dac4028b8d34884325477688c2 Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001734403817.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001739179505.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001739179505.png new file mode 100644 index 0000000000000000000000000000000000000000..021b2c08bb8f25129d3019f77b2c0990b888d31d Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001739179505.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745935689.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745935689.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ad4a1c470be5773f07218c6581e6a4bf1a194e Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745935689.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745981337.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745981337.png new file mode 100644 index 0000000000000000000000000000000000000000..dae5c550cee5854d0b4733d3ea4e743020fb54cf Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001745981337.png differ diff --git a/app/zh/blogs/RDMA/figures/zh-cn_image_0000001749130525.png b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001749130525.png new file mode 100644 index 0000000000000000000000000000000000000000..8f062c69ae64e37b3c5426ada17aa7675f9bc3ce Binary files /dev/null and b/app/zh/blogs/RDMA/figures/zh-cn_image_0000001749130525.png differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-caution.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-caution.gif differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-danger.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-danger.gif differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-note.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3995e34b6644fc11c916ffe69c7cb5512610d8 Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-note.gif differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-notice.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..75397a3efc5c345922fd37f551d7d28675ab6c5f Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-notice.gif differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-tip.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..110cd67cefa9f6b2800a2b8076a7a0dcc00b783c Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-tip.gif differ diff --git a/app/zh/blogs/RDMA/public_sys-resources/icon-warning.gif b/app/zh/blogs/RDMA/public_sys-resources/icon-warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and b/app/zh/blogs/RDMA/public_sys-resources/icon-warning.gif differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..61a4065636caae1b744326a04dc5edd001326c8c --- /dev/null +++ "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/RDMA\347\275\221\347\273\234\346\214\207\345\257\274.md" @@ -0,0 +1,470 @@ +--- +title: "RDMA网络指导" +date: '2023-11-07' +category: 'blog' +tags: ['openGauss'] +archives: '2023-07' +author:'why涛' +summary: "RDMA网络指导。" +--- + + + +# 识别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驱动 + +1. 选择下载与OS匹配的驱动包,地址:[https://network.nvidia.com/products/infiniband-drivers/linux/mlnx\_ofed/](https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/)。 + + ![](figures/zh-cn_image_0000001733510033.png) + +2. 新建目录,将OS镜像文件挂载至新建目录。OS镜像名称请根据实际情况进行修改。 + + ``` + mkdir -p /mnt/iso + mount openEuler-22.03-LTS-x86_64-dvd.iso /mnt/iso + ``` + +3. 安装过程中需要部分依赖,请配置好OS镜像源,例如本地镜像。 + 1. 打开镜像源文件。 + + ``` + vim /etc/yum.repos.d/openEuler.repo + ``` + + 2. 按“i”进入编辑模式,只保留以下内容。 + + ``` + [OS] + name=OS + baseurl=file:///mnt/iso + enabled=1 + gpgcheck=0 + ``` + + 3. 按“Esc”键,输入**:wq!**,按“Enter”保存并退出编辑。 + 4. 缓存软件包。 + + ``` + yum makecache + ``` + +4. 上传驱动包至服务器并解压。驱动包名称请根据实际情况进行修改。 + + ``` + tar -zxvf MLNX_OFED_LINUX-5.4-3.7.5.0-openeuler22.03-x86_64.tgz + ``` + +5. 进入解压后的驱动包目录,执行以下命令安装驱动。 + + ``` + ./mlnxofedinstall --without-depcheck --without-fw-update --force + ``` + + 如果提示内核不匹配,则执行以下命令。 + + ``` + ./mlnxofedinstall --add-kernel-support + ``` + +6. 设置重启后自动拉起驱动。 + + ``` + chkconfig --add openibd + /etc/init.d/openibd start + chkconfig openibd on + ``` + +7. 安装完成后重启服务器。 + +# 安装检查 + +1. 检查驱动RoCE LAG功能。 + 1. 查看RoCE LAG功能是否启用。 + + ``` + find /sys/ -name roce_lag_enable | xargs cat + ``` + + - 输出为1,则表示开启。 + - 输出为0或无输出,则表示关闭。 + - 预期要关闭才可以,如果没有关闭,请执行[1.b](#li519083722516)。 + + 2. 关闭RoCE LAG功能。 + + ``` + sed '/load_module mlx5_core/a\ files=`find /sys -name roce_lag_enable`;for file in $files;do echo 0 > $file;done' -i /etc/init.d/openibd + ``` + + 3. 执行后重启节点使其生效,重启后再执行[1.a](#li389014811257)查看是否生效。 + + ``` + reboot + ``` + +2. 检查驱动版本。 + + ``` + ofed_info -s + ``` + + 回显驱动版本与[安装MLNX驱动](安装MLNX驱动.md)版本一致则版本无误。 + +3. 加载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 + ``` + +4. 查询设备路径和网络端口。 + 1. 查询设备上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](#table93856218287)。 + + **表 1** mst\_type和CX网卡型号映射关系 + + + + + + + + + + + + + + + + + + + +

mst_type

+

网卡型号

+

mt4099_pci_cr

+

CX3

+

mt4117_pciconf

+

CX4-Lx

+

mt4119_pciconf

+

CX5

+

mt4123_pciconf

+

CX6

+
+ + 2. 查看需要检查的网络端口,后续步骤将对查询到的所有端口进行检查。 + + ``` + ll /dev/mst + ``` + + ![](figures/zh-cn_image_0000001739179505.png) + + 当前节点需要对“mt4119\_pciconf0”和“mt4119\_pciconf0.1”这两个端口进行检查。 + +5. 检查固件版本。 + 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 + ``` + +6. 检查固件网络协议。 + 1. 查看当前网络协议,此处以ETH协议为例。 + + ``` + ibdev2netdev -v + ``` + + ![](figures/zh-cn_image_0000001745935689.png) + + - 若网卡名前缀为ib,则表示当前网络协议为IB,执行[6.b](#li7704752131814)。 + - 若网卡名前缀为en,则表示当前网络协议为ETH,跳至[7](#li71941554151214)。 + + 2. 查看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 + ``` + + - 若结果为空,表示此环境不支持更改网络协议,请更换环境。 + - 若查询有结果,表示网络协议可修改。 + - 查询值应为ETH\(2\),跳至[7](#li71941554151214)。 + + ![](figures/zh-cn_image_0000001745981337.png) + + - 若查询值为IB\(1\),则执行[6.c](#li1297794616574)修改。 + + ![](figures/zh-cn_image_0000001734394589.png) + + 3. 设置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 + ``` + + ![](figures/zh-cn_image_0000001686355694.png) + + 4. 执行**reboot**命令重启,重复[6.b](#li7704752131814)确认已修改成功。 + +7. 验证RDMA网络。 + + Server节点执行: + + ``` + ib_send_bw -d mlx5_1 + ``` + + Client节点执行(xx.xx.xx.xx为Server节点的IP地址): + + ``` + ib_send_bw -d mlx5_1 xx.xx.xx.xx + ``` + +8. (可选)设置固件选项。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >此步骤属于优化项,可以降低网络时延,建议用户进行操作。 + + 1. 查询CX卡固件选项PCI\_WR\_ORDERING的值。 + + 以“/dev/mst/mt4119\_pciconf0“为例,查询该设备的两个端口固件设置,查询结果中per\_mkey值应为1,若不为1则执行[8.b](#li19557114614540)修改。 + + ``` + mlxconfig -d /dev/mst/mt4119_pciconf0 q | grep PCI_WR_ORDERING + mlxconfig -d /dev/mst/mt4119_pciconf0.1 q | grep PCI_WR_ORDERING + ``` + + ![](figures/zh-cn_image_0000001749130525.png) + + 2. 对一张CX5卡两个端口的固件选项PCI\_WR\_ORDERING进行设置,然后执行**reboot**命令重启,环境恢复后,按照[8](#li1555794655417)再次检查一遍,检查是否修改成功。 + + ``` + mlxconfig -y -d /dev/mst/mt4119_pciconf0 s PCI_WR_ORDERING=1 + ``` + + ![](figures/zh-cn_image_0000001701131200.png) + + ``` + mlxconfig -y -d /dev/mst/mt4119_pciconf0.1 s PCI_WR_ORDERING=1 + ``` + + ![](figures/zh-cn_image_0000001701290696.png) + +# 配置网卡IP + +1. 查看以太网设备和IB设备/端口之间的关联。 + + ``` + ibdev2netdev -v + ``` + + - 当前节点网卡驱动客户端mlx5\_0关联网卡名称enp24s0f0 + - 当前节点网卡驱动客户端mlx5\_1关联网卡名称enp24s0f1 + + ![](figures/zh-cn_image_0000001734363669.png) + +2. 查看网卡状态。 + + ``` + ifconfig -a + ``` + + ![](figures/zh-cn_image_0000001686524646.png) + + 若四个状态均正常表示可正常使用。 + + - UP:代表网卡开启状态。 + - RUNNING:代表网卡的网线被接上。 + - MULTICAST:支持组播。 + - MTU 1500:最大传输单元。 + +3. 根据环境配置网卡IP地址。以下为添加“/etc/sysconfig/network-scripts/ifcfg-enp24s0f0“config文件方式。使用**systemctl restart network.service**重启应用。 + + ![](figures/zh-cn_image_0000001734403817.png) + + 配置完成后,根据[2](#li1681619318285)查看网卡状态。 + + ![](figures/zh-cn_image_0000001734363673.png) + +# 常用IB命令 + +**表 1** 常用IB命令 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

命令

+

含义

+

lspci |grep Mell

+

查看机器上是否存在IB卡(搜索厂商名字Mellanox)。

+

ibstatus

+

查看IB卡相关信息:链路状态,端口速率,端口GUID等信息。

+

ibstat

+

ibstat功能与ibstatus相似。

+

ofed_info -s

+

查询当前安装的驱动版本。

+

ibv_devinfo

+

查询当前节点系统中IB设备信息。

+

ibqueryerrors -C mlx4_0 -P 1

+

检查当前IB网络各端口的统计信息。

+

perfquery

+

查看IB卡端口丢包、端口符号错误。

+

ibv_devices

+

查询当前节点的IB卡 - ibv_devices。

+

ibdump

+

该工具可以抓取IB层报文,由Mellanox提供。

+

ethtool --set-priv-flags eth-s0 sniffer on

+

用ethtool命令使能Sniffer,可以使用TCPDUMP抓包。

+

ib_atomic_bw

+

计算一对机器之间RDMA原子事务的带宽,一个server端一个client端,通过CPU采样获取接受完整消息时间计算带宽。该测试支持双向测试,支持更换MTU大小,tx大小,迭代数,消息大小等,更多用法参见“-a”参数。

+

ib_atomic_lat

+

计算一对机器之间RDMA一定消息大小下原子事务的时延,client端发送RDMA atomic操作到服务器端,并对CPU时钟采样获取它接收消息完成情况,从而计算时延。

+

ib_read_bw

+

计算一对机器之间RDMA read操作带宽。

+

ib_read_lat

+

计算一对机器之间RDMA一定消息大小下read操作时延。

+

ib_send_bw -d mlx5_1

+

计算一对机器之间RDMA send操作带宽。

+

ib_send_lat

+

计算一对机器之间RDMA一定消息大小下send操作时延。

+

ib_write_bw

+

计算一对机器之间RDMA write操作带宽。

+

ib_write_lat

+

计算一对机器之间RDMA一定消息大小下write操作时延。

+

raw_ethernet_bw

+

计算一对机器之间send带宽。

+

raw_ethernet_lat

+

计算一对机器之间send一定大小消息的时延。

+

rping

+

检测RDMA CM连接是否OK。

+
diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686355694.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686355694.png" new file mode 100644 index 0000000000000000000000000000000000000000..48437c8dcd9645a8a7800c15d6193bff17619589 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686355694.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686524646.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686524646.png" new file mode 100644 index 0000000000000000000000000000000000000000..05e6e0c2ff8b696be08652d9a0461db24561d53e Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001686524646.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701131200.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701131200.png" new file mode 100644 index 0000000000000000000000000000000000000000..2c1a901d84a1f5daeca3d49a168903ce84f58e5d Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701131200.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701290696.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701290696.png" new file mode 100644 index 0000000000000000000000000000000000000000..adc54afdba28d0f8f816ca9bf8fdcde1f2ea4a76 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001701290696.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001733510033.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001733510033.png" new file mode 100644 index 0000000000000000000000000000000000000000..67deb5f9173575918afacc16ed0b0b6c5906d4f0 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001733510033.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363669.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363669.png" new file mode 100644 index 0000000000000000000000000000000000000000..e86a5bf8707494643c15c9c73ec25cbe79f0975e Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363669.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363673.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363673.png" new file mode 100644 index 0000000000000000000000000000000000000000..5afc7ae67dbc12459b144eaee658efda4deae424 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734363673.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734394589.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734394589.png" new file mode 100644 index 0000000000000000000000000000000000000000..8a3a349b1b4b17065bb49d79d8afa478fcfc22ec Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734394589.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734403817.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734403817.png" new file mode 100644 index 0000000000000000000000000000000000000000..5090e1ba6d0a64dac4028b8d34884325477688c2 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001734403817.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001739179505.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001739179505.png" new file mode 100644 index 0000000000000000000000000000000000000000..021b2c08bb8f25129d3019f77b2c0990b888d31d Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001739179505.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745935689.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745935689.png" new file mode 100644 index 0000000000000000000000000000000000000000..d3ad4a1c470be5773f07218c6581e6a4bf1a194e Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745935689.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745981337.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745981337.png" new file mode 100644 index 0000000000000000000000000000000000000000..dae5c550cee5854d0b4733d3ea4e743020fb54cf Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001745981337.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001749130525.png" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001749130525.png" new file mode 100644 index 0000000000000000000000000000000000000000..8f062c69ae64e37b3c5426ada17aa7675f9bc3ce Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/figures/zh-cn_image_0000001749130525.png" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-caution.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-caution.gif" new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-caution.gif" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-danger.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-danger.gif" new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-danger.gif" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-note.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-note.gif" new file mode 100644 index 0000000000000000000000000000000000000000..db3995e34b6644fc11c916ffe69c7cb5512610d8 Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-note.gif" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-notice.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-notice.gif" new file mode 100644 index 0000000000000000000000000000000000000000..75397a3efc5c345922fd37f551d7d28675ab6c5f Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-notice.gif" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-tip.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-tip.gif" new file mode 100644 index 0000000000000000000000000000000000000000..110cd67cefa9f6b2800a2b8076a7a0dcc00b783c Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-tip.gif" differ diff --git "a/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-warning.gif" "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-warning.gif" new file mode 100644 index 0000000000000000000000000000000000000000..81fb2aba954177efa588e675927082b1f6bed41f Binary files /dev/null and "b/app/zh/blogs/RDMA\347\275\221\347\273\234\346\214\207\345\257\274/public_sys-resources/icon-warning.gif" differ