【RDMA】InfiniBand IB常用命令|历史命令记录
目录
作者:bandaoyu,随时更新,源文地址: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_devinfo | 显示device信息(简略) | |
ibv_devinfo -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网卡是否安装和版本 |
RDMA命令
命令 操作 备注
ibv_devinfo 显示device信息(简略)
ibv_devinfo -v 显示device信息(详细)
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网卡是否安装和版本
0、使用命令记录
显示GID
show_gids
显示当前设备安装的OFED包的信息:驱动、工具等
ofed_info
1、检查网卡是否安装:
# lspci
83:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
检查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)
查看HCA端口
hca_self_test.ofed
sudo /etc/init.d/openibd restart sudo /etc/init.d/opensmd restart
卸载驱动
/usr/sbin/ofed_uninstall.sh
Infiniband的驱动安装与配置_oPrinceme的博客-CSDN博客
更换网卡工作模式
有些网卡,当你安装好驱动后,通过 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_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
更多命令:
=================================================================
查看映射关系
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
==========================
#!/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}":"$GID
fi
}
}
}
}
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_counters
for 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 "--------------------------------------"
新华三 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 up,ibstat。
· 如果否,建议检查集群中的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设备号正确烧录。 |