目录

RDMA 常用命令

0、使用命令例子

1、常规 IB 监视命令

2、常规 IB 性能测试命令

3、光纤网络诊断工具

4、查询并报告非零 IB 端口计数器

5、其常用指令

新华三 IB 网卡相关

1 概述

2 配置准备

2.1  IB网卡驱动下载(IB1040i)

2.2  IB网卡驱动安装

2.3  网络配置

2.4  MFT工具下载

2.5  MFT工具安装

2.6  IB设备管理

3 IB网卡常用命令(IB1040i)

3.1  查看网卡端口状态

3.2  查看网卡对应端口名称及状态

3.3  查看集群中所有的IB网卡设备

3.4  查看网卡端口的详细信息

3.5  查看服务器下网卡端口的GUID号

3.6  查看当前SM的运行的guid号

3.7  启用mst服务功能

3.8  IB设备加入集群

3.9  查看当前集群内的所有设备

3.10  IB交换模块和IB网卡设备信息查询

3.11  IB交换模块和IB网卡固件升级

3.12  端口速率及状态查询

3.13  设置IB网卡的up/down

4 IB交换模块常用命令(BX1020B)

4.1  IB交换模块端口查询

4.2  IB交换模块和IB网卡设备信息查询

4.3  IB交换模块和IB网卡固件升级

4.4  查看集群下各IB交换模块对应的设备

4.5  查看在位IB交换模块

4.6  设置IB交换模块端口up/down

4.7  检查当前环境下光纤物理链路的健康情况

4.8  IB交换模块日志收集

5 常见问题处理

5.1  IB网卡常见问题

5.1.1  IB网卡端口不可见

5.1.2  IB网口不通或端口为初始化状态

5.1.3  IB网卡端口速率协商异常

5.1.4  IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

5.2  IB交换模块常见问题


随时更新,源文地址:https://blog.csdn.net/bandaoyu/article/details/115798693

RDMA 常用命令

HCA:在Infiniband/RoCE规范中,将RDMA网卡称为HCA,全称为Host Channel Adapter。(https://blog.csdn.net/bandaoyu/article/details/125234262?spm=1001.2014.3001.5501)

ibv_devices,ibv_devinfo libibverbs-utils.rpm包里的工具,用于显示本机上的RDMA设备

RDMA命令
命令                      操作                             备注
ibv_devinfo                显示device信息(简略)
ibv_devinfo -v             显示device信息(详细)
ibv_devinfo -d  mlx4_0     输出指定设备的主要信息
ibv_devinfo -d  mlx4_0 -v  输出指定设备的详细信息  ibv_devices                 列出device
ibvdev2netdev               显示device和网口的对应关系           mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令
show_gids                   显示gid列表                        mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令
show_drop                   查看端口包丢弃情况                  mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令
ibstatus                    查看核更改网卡工作模式:Ethernet 或infiniband模式
ibv_asyncwatch              监视 InfiniBand 异步事件
iblinkinfo.pl 或 iblinkinfo  显示光纤网络中所有链路的链路信息
sminfo  用法sminfo –help;   查询 IB SMInfo 属性
ibstat 或 ibsysstat          查询 InfiniBand 设备状态或 IB地址上的系统状态
hca_self_test.ofed          RDMA网卡自测    查看网卡状态          mellonx
/etc/infiniband/info        Mellanox OFED 安装的信息         mellonx
cat /etc/infiniband/openib.conf 看自动加载的模块列表          mellonx
lspci   grep Mellanox       检查Mellanox网卡是否安装和版本查询ice和固件版本
ethtool -i ens21f0
driver: ice
version: 5.18.1300-0.el9.x86_64
firmware-version: 4.10 0x8000c54c 1.3106.0
expansion-rom-version:查看irdma版本、ice版本
modinfo irdma
modinfo ice查看rdma-core版本
rpm -qa|grep rdma-core查看当前工作模式:sudo /sbin/connectx_port_config -s    (mellonx)验证RDMA内核模块是否已加载:/etc/init.d/openibd statusLINUX 查看安装的网卡:  lspci | grep -i eth查看加载了哪些模块: lsmodibstatCA 'mlx4_0'    CA type: MT4099

0、使用命令例子

显示GID
show_gids

显示当前设备安装的OFED包的信息:驱动、工具等
ofed_info

1、检查网卡是否安装:

检查Mellanox网卡是否安装和版本
[root@rdma61 ~]#  lspci | grep Mellanox
0000:18:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
0000:3b:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
 
2、查看系统里所有的网卡和工作状态:
[root@rdma63 tcpdump]# ip a

[root@rdma63 tcpdump]# ibv_devices
    device                 node GUID
    ------              ----------------
    mlx5_1              98039b03009a4296
    mlx5_0              98039b03009a2b3a

[root@rdma63 tcpdump]# ibv_devinfo

[root@rdma63 tcpdump]# ibv_devinfo mlx5_0
hca_id: mlx5_0
        transport:                      InfiniBand (0)
        fw_ver:                         16.29.1016
        node_guid:                      9803:9b03:009a:2b3a
        sys_image_guid:                 9803:9b03:009a:2b3a
        vendor_id:                      0x02c9
        vendor_part_id:                 4119
        hw_ver:                         0x0
        board_id:                       MT_0000000010
        phys_port_cnt:                  1
        Device ports:
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             1024 (3)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

如果要显示全部信息:ibv_devinfo  -v

查看网口映射关系

#ibdev2netdev 命令查看网口映射关系。

[root@rdma64 ibdump-master]# ibdev2netdev
mlx5_0 port 1 ==> eth18-0 (Up)
mlx5_1 port 1 ==> ib3b-0 (Up)

原文;FAQ-IB常用命令- 华为

查看HCA端口

hca_self_test.ofed

sudo /etc/init.d/openibd restart sudo /etc/init.d/opensmd restart

一、诊断工具--翻译中

摘自《Mellanox_OFED_Linux_User_Manual_v4_1》

本章介绍的诊断工具提供了fabric中IB设备的连接和状态调试方法。

工具 描述
ibdump

测试流入和流出Mellanox Technologies ConnectX系列适配器InfiniBand端口的InfiniBand通信。

请注意以下几点:

  • 虚拟功能(SR-IOV)不支持ibdump。
  • 所有HCA均支持Infiniband流量嗅探。
  • 仅在Connect-X3和Connect-X3 Pro卡上支持以太网和RoCE嗅探。

dump出来的文件,可以通过Wireshark工具加载进行图形流量分析。

以下描述了本地HCA(适配器)嗅探的工作流程:

  • 1.运行ibdump 并给定运行选项
  • 2.运行进行IB通信的应用程序
  • 3.停止ibdump(CTRL-C)或等待数据缓冲区填充(在--mem-mode中)
  • 4.打开Wireshark并加载生成的文件。要下载适用于Linux或Windows环境的Wireshark,请访问www.wireshark.org。

注意:尽管ibdump是Linux应用程序,但是可以在任一操作系统上分析生成的.pcap文件。 [mlx4]为了使ibdump与RoCE一起使用,必须启用Flow Steering。

启用步骤:

1.将以下内容添加到/etc/modprobe.d/mlnx.conf文件:options mlx4_core log_num_mgm_entry_size = -1

2.重新启动驱动程序。

注意:如果将HCA的端口中有一个配置为InfiniBand,则ibdump要求IPoIB DMFS是使能的。有关更多信息,请参阅第3.1.12.1节,启用/禁用流向,第103页。有关更多信息,请参阅工具的手册页。

dump_fts

为子网的ibnetdiscover扫描中发现的每个交换机转储表。dump文件格式与使用-R file -U /path/to/dump-file语法加载到OpenSM兼容。

Dumps tables for every switch found in an ibnetdiscover scan of the subnet. The dump file format is compatible with loading into OpenSM using the -R file -U /path/to/dump-file syntax.
For further information, please refer to the tool’s man page.

ibaddr

默认情况下,可以用来显示指定端口或本地端口的LID和GID地址。这个实用程序可以用作简单的地址解析器。
要了解更多信息,请参考该工具的手册页。

Can be used to show the LID and GID addresses of the specified port or the local port by default. This utility can be used as simple address resolver.
For further information, please refer to the tool’s man page.

ib_send_bw

测试两台机器之间的SEND带宽

一个充当服务器,另一个充当客户端。服务器从客户端接收数据包,它们都计算操作的吞吐量。该测试支持双向功能(双向功能可同时发送和接收),mtu大小的更改,tx大小,迭代次数,消息大小等。使用“ -a”可提供所有消息大小的结果。
有关更多信息,请参阅该工具的手册页。

Calculates the BW of SEND between a pair of machines. One acts as a server and the other as a client. The server receive packets from the client and they both calculate the throughput of the operation. The test supports features such as Bidirectional, on which they both send and receive at the same time, change of mtu size, tx size, number of iteration, message size and more. Using the "-a" provides results for all message sizes.
For further information, please refer to the tool’s man page.

rping softRoCE连通性测试

服务端IP为:192.168.1.10,在服务端开启RDMA
rping -s -a 192.168.1.10 -v -C 10
出现的等待窗口,

客户端IP为:192.168.1.34,按照同样的方式安装RDMA(因为rping的命令需要使用以上软件的安装才能生成)
rping -c -a 192.168.1.10 -v -C 10

更换网卡工作模式

有些网卡,当你安装好驱动后,通过 ibstatus 命令,会出现下面的情况:

可以看到,该网卡现在处于 Ethernet 的工作模式,如果想要切换成infiniband模式,参考如下链接:

https://community.mellanox.com/s/article/howto-change-port-type-in-mellanox-connectx-3-adapter

查看当前工作模式:

sudo /sbin/connectx_port_config -s

输入以下命令切换工作模式:

sudo /sbin/connectx_port_config

如果提示如图,说明不支持infiniband模式,否则,就切换成功了,再次使用一下命令可以验证:

原文链接:https://blog.csdn.net/bandaoyu/article/details/115906185

1、常规 IB 监视命令

ibv_asyncwatch 监视 InfiniBand 异步事件
ibv_devices or ibv_devinfo 列举 InfiniBand 设备或设备信息
ibv_rc_pingpong、ibv_srq_pingpong 或 ibv_ud_pingpong 使用 RC 连接、SRQ 或 UD 连接测试节点之间的连通性
mckey 测试 RDMA CM 多播设置和简单数据传输
rping 测试 RDMA CM 连接并尝试 RDMA ping
ucmatose 测试 RDMA CM 连接并尝试简单 ping
udaddy 测试 RDMA CM 数据报设置并尝试简单 ping

2、常规 IB 性能测试命令

RDMA通信测试工具|perftest_https://blog.csdn.net/bandaoyu/article/details/115798045

rdma_client 或rdma_server 或rdma_xclient或 rdma_xserver 测试 RDMA 写处理确定流带宽或等待时间
ib_read_bw 或 ib_read_lat 测试 RDMA 读处理确定带宽或等待时间
ib_send_bw 或 ib_send_lat 测试 RDMA 发送处理确定带宽或等待时间
ib_write_bw 或 ib_write_bw_postlist 测试 RDMA 写处理,确定一次显示一个 I/O 请求的带宽或显示一系列 I/O 请求的发布列表带宽
ib_write_lat 测试 RDMA 写处理确定等待时间
ib_clock_test 测试系统时钟准确性
qperf 测量插槽与 RDMA 性能
RDS 监视与测试工具
rds-info 显示 RDS 内核模块信息
rds-ping 确定基于 RDS 的远程节点是否可访问
rds-stress 在基于 RDS 插槽的进程间发送消息

3、光纤网络诊断工具

iblinkinfo.pl 或 iblinkinfo 显示光纤网络中所有链路的链路信息
sminfo 查询 IB SMInfo 属性
ibstat 或 ibsysstat 查询 InfiniBand 设备状态或 IB 地址上的系统状态
perfquery or saquery 查询 IB 端口计数器或 sIB 子网管理属性
ibdiagnet 执行整个光纤网络诊断检查
ibcheckerrors 或 ibcheckerrs 验证 IB 端口(或节点)或 IB 子网并报告错误
ibaddr 查询 InfiniBand 的一个地址或多个地址
ibnetdiscover 搜索远程 InfiniBand 拓扑
ibping 验证 IB 节点之间的连通性
ibportstate 查询 IB 端口的物理端口状态和链接速度
ibroute 显示 InfiniBand 交换机转发表
ibtracert 跟踪 IB 路径
smpquery 或 smpdump 查询或转储 IB 子网管理属性
ibchecknet, ibchecknode, 或 ibcheckport 验证 IB 子网、节点或端口并报告错误
ibcheckportstate, ibcheckportwidth, ibcheckstate, or ibcheckwidth 验证已链接但不活动的 IB 端口、面向 1x (2.0 Gbps) 链路带宽的端口、IB 子网中已链接但不活动的端口或 IB 子网中的 lx 链路
ibclearcounters or ibclearerrors 对 IB 子网中的端口计数器或错误计数器进行清零
ibdatacounters or ibdatacounts 查询 IB 子网中的数据计数器或 IB 端口数据计数器
ibdiscover.pl 注释并比较 IB 拓扑
ibcheckerrors 或 ibcheckerrs 验证 IB 端口(或节点)或 IB 子网并报告错误
ibchecknet, ibchecknode, 或 ibcheckport 验证 IB 子网、节点或端口并报告错误
ibhosts 显示拓扑中的 IB 主机节点
ibnodes 显示拓扑中的 IB 节点
ibprintca.pl 显示来自 ibnetdiscover 输出的特定 CA 或 CA 列表
ibprintrt.pl 显示来自 ibnetdiscover 输出的特定路由器或路由器列表
ibprintswitch.pl 显示来自 ibnetdiscover 输出的特定交换机或交换机列表
ibrouters 显示拓扑中的 IB 路由器节点
ibstatus 查询 IB 设备的基本状态
ibswitches 显示拓扑中的 IB 交换机节点
ibswportwatch.pl
ibqueryerrors.pl 轮询特定交换机或端口上的计数器并报告更改信息速率

4、查询并报告非零 IB 端口计数器

ibprintswitch.pl 显示来自 ibnetdiscover 输出的特定交换机或交换机列表
set_nodedesc.sh 设置或显示针对 IB 主机控制器适配器 (HCA) 的节点描述字符串
dump2psl.pl 转储基于 opensm 输出文件的 PSL 文件,该输出文件用于信用循环检查
dump2slvl.pl 转储基于 opensm 输出文件的 SLVL 文件,该输出文件用于信用循环检查
ibis 针对 IB 管理带内服务的扩展 TCL shell

5、其常用指令

ibv_srq_pingpong Command - Sun Datacenter InfiniBand Switch 648 Topic Set

更多命令:

用户命令 - 手册页部分 1: 用户命令

=================================================================

查看映射关系
mlnx_qos -i eth2   (mellonx)

设置用L3做流控
mlnx_qos -i eth2 --trust=dscp  (mellonx)

修改dscp到priority 映射
dscp 30 映射到修改dscp到priority 6
# mlnx_qos -i eth2 --dscp2prio set,30,6    (mellonx)

使能PFC
# mlnx_qos -i --pfc 0,0,0,1,0,0,0,0

修改tc和prio的映射(默认除了tc0对应prio1,tc对应prio0,其他的都是对应的,如tc2-prio2,tc3-prio3,tc4-prio4……)
mlnx_qos -i ib3b-0 -p 0,1,2,3,4,5,6,7

端口各优先级的收发计数
#测量该接口发送和接收的 Xon 和 Xoff(传输开启和关闭)帧的数量:
# watch -n 1 "ethtool -S eth1 | grep prio"

(intel
 请注意,Rx 计数器全为 0。当适配器通过交换机连接时,rx_priority_* 计数器可能为 0,表明适配器尚未从交换机收到任何暂停帧。根据网络中的压力水平,如果交换机有足够的缓冲来跟上主机需求,这是可以接受的。但是,对于高压力流量(例如更大规模的 HPC 应用程序),交换机通常会向主机发送暂停帧。通常,预计会同时看到 tx 和 rx_priority 计数器。
请注意,某些 Tx 计数器具有相同的值。在 800 系列 QoS 实施中,如果为traffic class中的任何priority启用 PFC,则该traffic class中的所有priority都会获得暂停帧。这意味着同一 TC 中所有priority的计数器都会一致递增,而不管导致 PFC 触发的特定单个priority如何。如果所有priority都映射到同一个 TC,它们都会一致增加。)

查看GID

show_gids          (mellonx;intel自己也写同样的脚本,脚本内容见末尾)
show_gids mlx5_5   (mellonx)查看设备可用端口, gid_index, rmda版本

查看端口丢弃

show_drop        (mellonx;intel自己也写同样的脚本,脚本内容见末尾)

弃包统计
ethtool -S enp175s0f0 | grep drop

查看device
ibdev2netdev     (mellonx;intel自己也写同样的脚本,脚本内容见末尾)

ibdev2netdev –v  (mellonx)

验证 InfiniBand 链接是否已启动

hca_self_test.ofed   (mellonx)

Mellanox OFED 安装的信息

/etc/infiniband/info

看自动加载的模块列表
/etc/infiniband/openib.conf

检查Mellanox网卡是否安装和版本
[root@rdma61 ~]#  lspci | grep Mellanox

查看系统里所有的网卡和工作状态:
[root@rdma63 tcpdump]# ip a

[root@rdma63 tcpdump]# ibv_devices
    device                 node GUID
    ------              ----------------
    mlx5_1              98039b03009a4296
    mlx5_0              98039b03009a2b3a

[root@rdma63 tcpdump]# ibv_devinfo

[root@rdma63 tcpdump]# ibv_devinfo mlx5_0

2.配置H3C交换机

a)    配置优先级信任模式为DSCP:

例如:
[H3C]sys
[H3C]interface HundredGigE1/0/6
[H3C-HundredGigE1/0/6] qos trust  dscp

*配置信任模式为DSCP,交换机才会使用 报文自带的DSCP做映射。
设置信任模式为DSCP,则进入交换机的报文优先级映射会涉及到3个表:
进-->出 映射,
dscp-dot1p    #入端口报文为dscp会被交换机映射到lp队列
dscp-dp       #入端口报文为dscp会被交换机映射到dp队列
dscp-dscp     #入端口报文的dscp会被交换机改为dscp转发
(优先级可分为两类:报文携带优先级和设备调度优先级。
设备调度优先级是指报文在设备内转发时所使用的优先级,只对当前设备自身有效。
设备调度优先 级包括以下几种: 
• 本地优先级(LP):设备为报文分配的一种具有本地意义的优先级,每个本地优先级对应一 个队列,本地优先级值越大的报文,进入的队列优先级越高,从而能够获得优先的调度。
• 丢弃优先级(DP):在进行报文丢弃时参考的参数,丢弃优先级值越大的报文越被优先丢弃。)

b)    配置PFC功能的开启模式
例如:
[H3C]sys
[H3C]interface HundredGigE1/0/6
[H3C-HundredGigE1/0/6] priority-flow-control enable

2.2.2.5 显示和维护(H3C交换机)

1.    显示指定优先级映射表配置情况 
display qos map-table  dot1p-dp | dot1p-exp | dot1p-lp | dscp-dot1p | dscp-dp | dscp-dscp | exp-dot1p | exp-dp ] 
如:display qos map-table dscp-dscp

2.    显示接口优先级信任模式信息(sys视图)
 display qos trust interface [ interface-type interface-number ]
如:
display qos trust interface HundredGigE1/0/1

3.    显示端口简单信息
display interface brief
4.    显示端 口在该间隔时间内统计的报文信息
display interface
5.    显示Qos trust设置
display qos trust int
6.    显示接口的PFC信息
display priority-flow-control interface 显示全部
display priority-flow-control interface [ interface-type [ interface-number ] ] 显示某个

Tos=============
--tos=  Set to RDMA-CM QPs. available only with -R flag. values 0-256 (default off)

ibdump -d mlx5_0 -i 1  -w        sniffer.acp     #抓包
ib_send_bw -d mlx5_0     --rdma_cm               #服务端
ib_send_bw 192.169.31.54 --rdma_cm  --tos=12 –R  #客户端1100

intel  show_gids,show_drop,ibdev2netdev脚本

==========================
Intel show_gids
==========================
#!/bin/bash
function show_gid()
{for device in ` ls /sys/class/infiniband/` #注意此处这是两个反引号,表示运行系统命令{echo "****************"echo "Device:"${device}for port in ` ls /sys/class/infiniband/${device}/ports/`{echo "IB port:"${port}for gid in `ls /sys/class/infiniband/${device}/ports/${port}/gids`{GID=`cat /sys/class/infiniband/${device}/ports/${port}/gids/${gid}` #在此处处理文件即可 if [[ $GID == *0000:0000:0000:0000:0000:0000:0000:0000* ]]then: #do nothing#echo "包含"else#echo "不包含"echo "GID"${gid}":"$GIDfi}}}
}show_gid
==========================
Intel show_drop
==========================
#!/bin/bash
function show_drop()
{for device in `ls /sys/class/infiniband/`{echo ""echo -e  "\e[1;32m${device}\e[0m" cd  /sys/class/infiniband/${device}/hw_countersfor f in *Discards{echo -n "$f: "cat "$f"}}
}show_drop*intel官方提供的脚本:
# cd /sys/class/infiniband/irdma-enp175s0f0/hw_counters
# for f in *Discards; do echo -n "$f: "; cat "$f"; done  ==========================
Inetl ibdev2netdev
==========================
#!/bin/bash
echo "--------------------------------------"
echo "script locate:/usr/bin/ibvdev2netdev"
echo "Author:liangchaoxi"
echo "***************************************"
ibv_devices|awk '{system("echo "$1"\"-->\"`ls /sys/class/infiniband/"$1"/device/net`")}' |& grep -Ev '/device/net|device|-------->'
echo "***************************************"
ip route
echo "--------------------------------------"

查看网卡驱动

Linux如何查看网卡驱动以及版本号:https://baijiahao.baidu.com/s?id=1731907430451363273&wfr=spider&for=pc

新华三 IB 网卡相关

01-正文-新华三集团-H3C

1 概述

2 配置准备

2.1 IB网卡驱动下载(IB1040i)

2.2 IB网卡驱动安装

2.3 网络配置

2.4 MFT工具下载

2.5 MFT工具安装

2.6 IB设备管理

3 IB网卡常用命令(IB1040i)

3.1 查看网卡端口状态

3.2 查看网卡对应端口名称及状态

3.3 查看集群中所有的IB网卡设备

3.4 查看网卡端口的详细信息

3.5 查看服务器下网卡端口的GUID号

3.6 查看当前SM的运行的guid号

3.7 启用mst服务功能

3.8 IB设备加入集群

3.9 查看当前集群内的所有设备

3.10 IB交换模块和IB网卡设备信息查询

3.11 IB交换模块和IB网卡固件升级

3.12 端口速率及状态查询

3.13 设置IB网卡的up/down

4 IB交换模块常用命令(BX1020B)

4.1 IB交换模块端口查询

4.2 IB交换模块和IB网卡设备信息查询

4.3 IB交换模块和IB网卡固件升级

4.4 查看集群下各IB交换模块对应的设备

4.5 查看在位IB交换模块

4.6 设置IB交换模块端口up/down

4.7 检查当前环境下光纤物理链路的健康情况

4.8 IB交换模块日志收集

5 常见问题处理

5.1 IB网卡常见问题

5.1.1 IB网卡端口不可见

5.1.2 IB网口不通或端口为初始化状态

5.1.3 IB网卡端口速率协商异常

5.1.4 IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

5.2 IB交换模块常见问题

1 概述

本文主要介绍H3C Uniserver B16000刀箱内IB交换模块(BX1020B)与IB网卡(IB1040i)的配置方法及常见问题处理。

由于IB交换模块没有管理串口,管理员需要IB网卡配合才能管理IB交换模块。因此对于IB交换模块的管理操作,需要先将IB交换模块和带有IB网卡的刀片服务器安装到刀箱中,然后在刀片服务器的Linux操作系统下进行(本文以服务器安装Redhat 7.5系统为例)。集群(包含IB网卡和IB交换模块在内的整个刀箱环境)中只需要有一台满足要求的刀片服务器,即可管理所有IB交换模块。

刀箱IB配置是基于IB集群化的概念,通过启用SM(子网管理器,后面章节有详细描述),来统一管理当前集群下的所有IB设备(本文指IB交换模块和IB网卡)。IB集群分为物理层和逻辑层,刀箱内IB交换模块与IB网卡均在位连接时,物理层为linkup状态,只有启用SM,逻辑层链路才能正常使用。

2 配置准备

本章节主要介绍了配置子网管理器的方法,子网管理器是将整个IB集群的设备进行统一管理,运行在刀箱内的一台安装了IB网卡的刀片服务器上,在配置子网管理器之前,      需要在当前的服务器上对IB网卡进行驱动升级,及MFT工具包进行安装,MFT是一套固件管理工具,用于生产标准化或定制化Mellanox固件镜像、查询固件信息、烧录固件镜像。为了保证子网管理器正常使用,需要确认IB交换模块和IB网卡正常物理连接。根据业务需求可给IB网卡端口设置IP地址。

2.1  IB网卡驱动下载(IB1040i)

请联系技术支持,根据版本配套表下载IB网卡的驱动安装包。

IB网卡的驱动安装包的文件名请以实际情况为准,本文中以“MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64.tgz”举例。

2.2  IB网卡驱动安装

(1)     使用ftp或者SSH工具将驱动包上传到节点服务器的/home目录下。

(2)     在当前/home路径下对IB网卡进行解压:

参考命令:tar –xvf MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64.tgz

(3)     进入MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64/目录下,执行命令:./mlnxofedinstall,进行IB网卡的驱动安装。

(4)     驱动安装成功后,重启服务器。

2.3  网络配置

安装完成IB网卡驱动并重启,需要为IB端口配置一个IP地址,配置方法和以太网端口的IP配置方法一样,步骤如下:

(1)     在IB网卡所在的刀片服务器的/etc/sysconfig/network-scripts/下修改配置文件ifcfg-ib0,配置IP地址和子网掩码。

(2)     配置完成后重启网络服务使IP生效,执行命令:systemctl restart network.service

(3)     配置子网管理器

IB网络使用子网管理器(Subnet Manager,下文简称SM)管理网络路由,SM可以运行在刀片服务器或者具有管理功能的IB交换模块上(本文介绍运行在服务器节点上)。SM启用时,会统一将集群中的设备根据GUID(globally unique identifier,全局唯一标识符)进行LID号(Local Identifier,端口标识符)分配,LID号是唯一的,无特殊情况下不进行回收。

MLNX_OFED(官方驱动名称)驱动中集成了子网管理器SM,安装MLNX_OFED驱动后, SM已默认安装。SM可以运行在一台或者多台服务器节点上,但同时只有一台处于Active状态,为了确保当前集群的正常运行。当主的SM处于down的状态,备的SM会接替主的SM。主备切换间隙暂不会影响业务,但当SM未启用时,集群内的所有的IB网卡端口的逻辑层会处于初始化状态,会影响业务运行。

(4)     启用子网管理器

在服务器节点上开启子网管理功能

·     方法一:执行命令:/etc/init.d/opensmd start

此方法会默认将当前服务器上第一个IB网卡Active的端口作为SM管理口,如果集群中需要备的SM,可以在集群中其他服务器中执行/etc/init.d/opensm start

·     方法二:执行opensm –B –g <GUID> -p <sm_priority>命令为IB网卡端口设置优先级,优先级最高且处于Active状态的端口将被选择为主SM,其余端口为备SM。其中<GUID>表示IB网卡的GUID号,可以通过ibstat命令查询;<sm_priority>表示SM的优先级,取值范围为0~14,数值越大优先级越高。

2.4  MFT工具下载

MFT是一套固件管理工具,用于生产标准化或定制化Mellanox固件镜像、查询固件信息、烧录固件镜像。请自行上网获取MFT工具。

MFT工具包的文件名请以实际情况为准,本文中以“mft-4.13.0-104-x86_64-rpm.tgz”举例。

2.5  MFT工具安装

(1)     通过FTP或者SSH工具将MFT工具包上传到刀片服务器的/home目录下

(2)     执行命令:tar -xvf mft-4.13.0-104-x86_64-rpm.tgz解压IB通用的MFT工具包。

(3)     进入/home/ mft-4.13.0-104-x86_64-rpm /,执行命令:./install.sh --oem,安装MFT工具

(4)     MFT工具安装成功后,执行命令:mst start,确认工具已安装成功,并且能运行。

2.6  IB设备管理

子网管理器设置成功后,就可以对当前集群下的所有的IB设备进行统一管理。

(1)     节点服务器启动mst服务,执行命令:mst start。如已执行请跳过。

(2)     自动将集群中的所有IB设备加入子网管理器中统一管理,执行命令:mst ib add

(3)     查看集群中添加的IB设备,命令mst status –v(截图中的Inband devices表示已添加的设备)

(4)     设备加入集群中后可以对当前的设备进行升级、查询,具体使用方法可以参考3.11  IB交换模块和IB网卡固件升级。

3 IB网卡常用命令(IB1040i)

3.1  查看网卡端口状态

本命令用于查看IB网卡的基本信息。

【命令】

ibstat

【举例】

【信息说明】

CA ‘mlx5_0’:网卡端口名称,用于指定端口打流时多带的参数。

Firmware version:当前网卡的固件版本。

State:逻辑层网卡连接状态。

Physical state:物理层网卡连接状态。

Rate:速率。

Base lid:SM分配的LID号。

SM lid:当前SM的LID号。

Port GUID:网卡每个端口的GUID号,可用来指定SM。

3.2  查看网卡对应端口名称及状态

本命令用于查看当前系统下网卡名称与系统下ib端口名称的对应关系及状态。

【命令】

ibdev2netdev

ibdev2netdev -v

【举例】

3.3  查看集群中所有的IB网卡设备

本命令用于将集群中所有的IB网卡设备进行罗列。

【命令】

ibhosts

【举例】

【信息说明】

0xe41d2d0030570ce6 :IB网卡的端口GUID号。

wlp-node8 HCA-1:服务器系统下IB网卡的名称。

3.4  查看网卡端口的详细信息

本命令用于查看网卡端口的详细信息,与ibstat功能类似,多了PSID(board_id)信息。

【命令】

ibv_devinfo

【举例】

【信息说明】

board_id:PSID厂家信息编码。

3.5  查看服务器下网卡端口的GUID号

本命令用于查看服务器系统下网卡的Node GUID号。

【命令】

ibv_devices

【举例】

3.6  查看当前SM的运行的guid号

本命令用于查询当前集群下SM的GUID号,表明当前SM设备已经被指定。

【命令】

sminfo

【举例】

3.7  启用mst服务功能

本命令用于集群内开始mst服务,该命令用于启动注册访问程序,列出可用mst设备。

【命令】

mst start

【举例】

3.8  IB设备加入集群

本命令用于将集群中所有的IB设备加入到当前的集群中,进行统一管理。

【命令】

mst ib add

【举例】

【信息说明】

Added 6 ib-band devices:当前集群中可以加入的设备数量(包含交换IB交换模块和IB网卡)。

3.9  查看当前集群内的所有设备

本命令用于查看集群中所有IB设备。

【命令】

mst status –v

【举例】

【信息说明】

DEVICE_TYPE:IB网卡设备的型号、设备全称、PCI号、相关联的CPU。

Inband devices:此处查看设备分配的lid号为16进制,需要转化成十进制。

3.10  IB交换模块和IB网卡设备信息查询

本命令用于对当前集群下的设备进行管理使用,查询网卡或者IB交换模块的基本信息。

【命令】

flint -d <IB device> query

【参数说明】

<IB device>:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

【举例】

·     IB交换模块固件版本查询举例:

·     IB网卡固件版本查询举例:

3.11  IB交换模块和IB网卡固件升级

本命令用于IB网卡和IB交换模块的固件升级。

【命令】

flint -d <IB device> -i < fw version> burn

【参数说明】

<IB device>:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

< fw version>:表示固件版本。

详细参数可以输入flint --help进行参考。

【举例】

·     IB交换模块固件版本升级,升级完成后IB交换模块需要断电重启生效。

·     IB网卡固件版本升级,升级完成后请重启服务器生效。

3.12  端口速率及状态查询

本命令用于查询IB交换模块内部及外部口端口状态以及IB网卡本身的端口状态。

【命令】

查看IB网卡的端口状态:

mlxlink -d <IB device>

查看IB交换模块上端口状态:

mlxlink -d <IB device> -port <port number>

【参数说明】

<IB device>:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

<port number>:表示端口号,取值1~41。

详细参数可以输入mlxlink --help进行参考。

【举例】

·     查询当前IB网卡的端口状态及端口速率。

·     查看IB交换模块33号端口状态及速率。

【信息说明】

Speed:表示当前网卡支持的最大带宽速率。

Enabled Link Speed:表示当前网卡支持的协商速率。

Support Cable Speed:表示与IB交换模块连接的线缆支持的协商速率(红色字体表示为内部连接无cable)。

3.13  设置IB网卡的up/down

本命令用于设置IB网卡的端口的up/down,仅适用于当前服务器下的IB网卡。

【命令】

mlxlink -d <IB device> -a <up/down>

【参数说明】

<IB device>:表示IB网卡名称,该名称可以通过mst status –v命令查询,如mt4119_pciconf0。

<up/down>:端口的up/down状态,取值为:UP或DN,DN表示down。

【举例】

·     设置IB网卡端口为down状态。

·     设置IB网卡端口为UP状态。

4 IB交换模块常用命令(BX1020B)

4.1  IB交换模块端口查询

本命令用于查看IB交换模块的所有端口的连接状态。此命令会将集群内所有的IB交换模块都进行列举。

【命令】

iblinkinfo

【举例】

【信息说明】

①     表示这台交换机的GUID号,唯一区分交换机的标识。

②     LID号,集群创建时SM分配的唯一便于管理的lid号。

③     表示1-20号口为IB交换模块与网卡连接的内部端口,其中11-12、17-18为预留口。

④     表示21-40为IB交换模块外部连接口。

⑤     表示41号口为虚拟机口,为集群跑压力的自由路由端口。

⑥     表示当前端口的连接速率:4X*25.78125=100Gpbs(EDR)。

⑦     表示网卡端口的lid号及所对应的服务器。

⑧     表示IB交换模块外部连接口的lid号、端口序列号、对端连接设备的名称。

4.2  IB交换模块和IB网卡设备信息查询

本命令用于对当前集群下的设备进行管理使用,查询网卡或者IB交换模块的基本信息,详细介绍请参见3.10  IB交换模块和IB网卡设备信息查询。

4.3  IB交换模块和IB网卡固件升级

本命令用于IB网卡和IB交换模块的固件升级,详细介绍请参见3.11  IB交换模块和IB网卡固件升级。

4.4  查看集群下各IB交换模块对应的设备

本命令用于查看集群内IB交换模块设备的情况。

【命令】

ibnetdiscover

【举例】

【信息说明】

①     表示交换机的GUID号,用于区别集群中的IB交换模块。

②     表示与当前交换机连接的设备信息及连接端口。

4.5  查看在位IB交换模块

本命令用于查看当前集群的IB交换模块,此命令会将集群中所有的设备一一列举。

【命令】

ibswitches

【举例】

【信息说明】

显示当前IB交换模块的总端口数量以及集群下lid号。

4.6  设置IB交换模块端口up/down

本命令用于将IB交换模块端口up/down/reset。

【命令】

ibportstate <LID> <Port> <port state>

【参数说明】

<LID>:表示端口所在设备的LID号。

<Port>:端口号。

<port state>:包括enable、disable等状态,enable表示端口UP,disable表示端口DOWN。

详细参数可以输入ibportstate --help进行参考。

【举例】

·     查看LID为1的设备的33号端口状态。

·     设置LID为1的设备的33号端口状态为Down。

·     设置LID为1的设备的33号端口状态为UP。

4.7  检查当前环境下光纤物理链路的健康情况

本命令用于检测当前集群下物理链路的健康情况,利用快速查看环境下链路状态。

执行此命令之后log信息都在/var/tmp/ibdiagnet2/目录下。

【命令】

ibdiagnet

【参数说明】

详细参数可以输入ibdiagnet --help进行参考。

【举列】

4.8  IB交换模块日志收集

本命令用于收集IB交换模块端口日志信息。

【命令】

mlxdump -d <IB device> snapshot --mode full -o <log name>

【参数说明】

<IB device>:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询。

<log name >:表示日志文件的名称,如Quantum_mlxdump1.log

详细参数可以输入flint --help进行参考。

【举例】

5 常见问题处理

5.1  IB网卡常见问题

5.1.1  IB网卡端口不可见

诊断步骤:

(1)     排查IB卡与服务器的兼容性

·     如果使用非标准系统,请联系具体OS研发解决。

·     如果IB卡版本不配套,请先升级。

(2)     排查PCIe硬件设备是否可以见(lspci |grep Mellanox

·     如果PCIe设备不可见,看相应CPU是否在位;IB网卡是否未安装到位;更换IB网卡的槽位

·     如果PCIe设备可见,但是网口不可见,可使用ifconfig –a /ifconfig ibN up,然后重新安装驱动,重启系统。

5.1.2  IB网口不通或端口为初始化状态

诊断步骤:

(1)     排查IB网卡是否up,且状态为link。

·     如果是,查看IP是否设置正确网口上,相关命令:ifconfig ibN upibstat

·     如果否,建议检查集群中的opensm功能是否开启,相关命令:/etc/init.d/opensm start , /etc/init.d/opensm status。

(2)     重新对IB网卡更换槽位,检查是否正常。

(3)     查看与当前网卡连接的IB交换模块是否在位可用。

5.1.3  IB网卡端口速率协商异常

诊断步骤:

(1)     排查当前IB网卡是否可以支持当前所需要协商的速率。

·     如果否,请更换支持的IB Mezz网卡。

·     如果是,排查端口是否被协商降速,具体命令参考:3.12  端口速率及状态查询

(2)     更换当前的网卡槽位,检查是否正常。

5.1.4  IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

该IB命令在驱动还未加载的情况下被调用,执行命令:/etc/init.d/openibd start

5.2  IB交换模块常见问题

表5-1 IB交换模块常见故障诊断方法

故障种类

故障现象

故障原因及处理方法

LEDs

面板端口指示灯为琥珀色常亮

这个状态标明端口仅物理层UP:

确认SM已经运行在当前网络中:/etc/init.d/opensm status;

将当前线缆进行更换,确认非线缆问题。

面板端口指示灯闪烁(琥珀色)

这个状态可能说明线缆有问题:

将当前的线缆进行更换,确认非线缆问题;

更换面板其他端口,确认非端口问题。

IB交换模块指示灯闪红色

这个状态说明交换机有告警信息:

确认风扇正常使用,未导致IB交换模块温度过高;

IB交换模块系统指示灯长灭

这个状态说明可能IB交换模块未正常上电:

确认OM电源正常使用,且可正常给IB交换模块上电;

确认IB交换模块固件版本正确,GUID设备号正确烧录。

【RDMA】RDMA信息状态查询|网卡安装|诊断工具|测试RDMA网卡是否正常工作InfiniBand IB常用命令|历史命令记录相关推荐

  1. 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...

    目录 1. 基础知识 一.诊断工具--翻译中 2. 驱动安装 3.配置IP 4. 性能测试 5. 其他问题 RDMA .InfiniBand.IB卡.IB驱动的关系 问题记录 原文:infiniban ...

  2. 【RDMA】InfiniBand IB常用命令|历史命令记录

    目录 0.使用命令记录 1.常规 IB 监视命令 2.常规 IB 性能测试命令 3.光纤网络诊断工具 4.查询并报告非零 IB 端口计数器 5.其常用指令 作者:bandaoyu,随时更新,源文地址: ...

  3. windows7内存诊断工具有用吗_性能诊断利器 JProfiler 快速入门和实践

    云栖君导读:性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益.Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关 ...

  4. 必须要学的 Go 进程诊断工具 gops

    在类 Unix 系统中,我们常常会使用 ps 命令来查看系统当前所运行的进程信息,该命令为我们提供了较大的帮助,能够快速的定位到某些进程的运行情况和状态. 而在 Go 语言中,也有类似的命令工具,那就 ...

  5. Xcode自带的超好用的诊断工具

    欢迎关注我们的公众号,我们每周都会有原创文章分享.我们主要定位在移动开发领域,分享移动开发技术,包括 iOS.Android.小程序.移动前端.React Native.weex 等. 知识小集 Gi ...

  6. linux 文件查找帮助命令 , 查看网络链接信息, 历史命令

    grep :查看文本文件内容,显示包含指定"字符串"的行.   格式:grep  [选项]  '匹配字符串'  文本文件 例: grep ' root'    /etc/passw ...

  7. linux 文件查找帮助命令 , 查看网络链接信息, 历史命令

    grep :查看文本文件内容,显示包含指定"字符串"的行.   格式:grep  [选项]  '匹配字符串'  文本文件 例: grep ' root'    /etc/passw ...

  8. 【RDMA】infiniband网卡安装|ib网卡命令|ibdump 用法说明

    目录 1. 基础知识 2. 驱动安装 3.配置IP 4. 性能测试 5. 其他问题 RDMA .InfiniBand.IB卡.IB驱动的关系 ibdump 用法说明 原文:https://www.cn ...

  9. TCP/IP协议栈之LwIP(四)---网络诊断与状态查询(ICMPv4 + ICMPv6)

    文章目录 一.ICMP协议简介 1.1 ICMPv4报文功能 1.2 ICMPv6报文功能 二.PC常用网络命令 三.ICMP协议实现 3.1 ICMPv4数据报描述 3.2 ICMPv4数据报操作函 ...

最新文章

  1. ASP.NET Core 上传多文件 超简单教程
  2. python常用函数表-python-列表常用函数
  3. 互联网不互联,挡住淘菜菜?
  4. 我的博客园css样式
  5. 台积电5nm来了!谁会是第一个吃螃蟹的人
  6. mysql openrowset_SQL的OPENROWSET开启和使用方法
  7. Flink SQL FileSystem Connector 分区提交与自定义小文件合并策略 ​
  8. latex模板章节序号标签加粗
  9. java读取txt文件---,java读取TXT文件的方法
  10. iOS 16适配屏幕旋转强制转屏切换大总结
  11. 黑php的称呼,这三个称呼你都说对了吗?
  12. 计算机专业就业饱和没,“计算机就业饱和”差不多成了一个笑话
  13. 【每日一练】64—CSS实现彩虹文字的动画效果
  14. 浅析电子合同之效率篇:电子合同如何提高效率
  15. python清掉内存的函数_关于python:如何彻底清除所有Matplotlib图的内存
  16. android 各个存储路径及获取方法总结
  17. java浅谈线程安全之锁
  18. 3 分钟生成一个单元测试报告,这个样式爱了
  19. 基于API HOOK的软件行为分析系统
  20. RK3229平台Android6.0系统添加广升OTA升级功能

热门文章

  1. 服务器空调摆放位置,服务器机房搭建 空调节能新方式
  2. C#窗体加载启动时的事件触发顺序
  3. 电脑系统包下载网大全
  4. 章鱼加速器2022秋季 Web3 创业营报名启动|Substrate 应用链项目全球招募中
  5. IRF520模块的MOS管使用
  6. PAT出现格式错误怎么办
  7. 容量法和库仑法的异同点_容量、库仑、点位滴定法的比较
  8. fedora、centos、rhel安装Adobe Flash Player 28
  9. SecureCRT 颜色设置
  10. 2005/4.16/多云转晴