AI服务器InfiniBand配置:从链路检查到带宽测试的实操流程

在 AI 服务器上配置 InfiniBand,核心目标只有两个:让节点之间的 HCA 网卡链路正常 Up,并让上层应用(NCCL、MPI)能走这条高速通道。
顺序上,先确认硬件和驱动是否就绪,再检查链路状态,接着启动子网管理器,最后用带宽测试工具验证实际吞吐。
跳过前两步直接调 IPoIB 或 NCCL 参数,很容易在错误的方向上浪费时间。

先确认 HCA 卡被系统识别

InfiniBand 网卡在 Linux 下通常显示为 ib0 或 ibp* 接口,但接口存在不代表驱动正常。
先查 PCI 设备:

lspci | grep -i mellanox

如果没有任何输出,说明卡没插好、PCIe 插槽被禁用或服务器 BIOS 里未开启。
继续用 ibstat 看 HCA 列表:

ibstat

正常输出里应能看到类似 CA 'mlx5_0' 的条目,并带有 State: Active 和 Rate: 100(或 200/400,取决于卡型号)。
如果命令不存在,先安装 rdma-core 和 infiniband-diags:

# CentOS/RHEL 系
 yum install -y rdma-core infiniband-diags
# Ubuntu/Debian 系
 apt install -y rdma-core infiniband-diags

装完后重新执行 ibstat。
若 State 显示 Down 或 Polling,先检查光模块和线缆是否插紧,再确认交换机端口是否启用。

检查链路状态与端口速率

ibstat 输出里重点看三个字段:State 应为 Active,Physical state 应为 LinkUp,Rate 应达到网卡标称速率。
如果 State 是 Init 或 Down,常见原因是子网管理器(SM)没有运行,或者两端速率协商不一致。

用 iblinkinfo 可以查看整条链路的对端信息:

iblinkinfo

输出会列出每个端口的 LID、对端端口和速率。
如果对端显示 0x0,说明交换机侧没有识别到该端口,优先排查线缆和交换机配置。

启动子网管理器 opensm

InfiniBand 网络需要子网管理器来分配 LID 和路由。
小规模集群通常选一个节点运行 opensm 即可。
安装并启动:

# CentOS/RHEL
yum install -y opensm
systemctl enable --now opensm
# Ubuntu/Debian
apt install -y opensm
systemctl enable --now opensm

启动后用以下命令确认:

systemctl status opensm
ibstat | grep -E 'State|LID'

LID 不再是 0x0,且 State 为 Active,说明 SM 已生效。
如果集群有多台交换机,需要确认 SM 只在一个子网内运行,避免多个 SM 冲突。

配置 IPoIB 以便基础连通性测试

IPoIB 是把 InfiniBand 模拟成普通 IP 网络,方便用 ping 和 ssh 做初步验证。
它不用于最终的高性能传输,但适合排错。
以 ib0 为例,在 Netplan 或 nmcli 中配置:

# 使用 nmcli 临时配置示例
nmcli con add type infiniband con-name ib0 ifname ib0
nmcli con mod ib0 ipv4.addresses 192.168.100.1/24
nmcli con mod ib0 ipv4.method manual
nmcli con up ib0

另一台节点配 192.168.100.2/24,然后互相 ping。
能通说明链路和 IP 层正常。
注意 IPoIB 有 datagram 和 connected 两种模式,默认 datagram 模式 MTU 较小,大包传输性能有限,不要用 IPoIB 的 iperf 结果判断 InfiniBand 真实带宽。

用 ib_write_bw 验证实际带宽

真正的 InfiniBand 性能要用 ib_write_bw 测试。
在服务端节点执行:

ib_write_bw -d mlx5_0 -a

在客户端节点执行:

ib_write_bw -d mlx5_0 -a 192.168.100.1

其中 -d 指定 HCA 设备名,-a 表示测试所有消息大小。
输出里关注 BW average 一栏,100Gbps 网卡实际可达 90Gbps 以上属于正常范围。
如果带宽明显偏低,检查两端是否都用了同一张卡、MTU 是否一致。

常见问题与避坑

ibstat 显示 State: Down:先确认线缆和光模块,再检查交换机端口是否被 shutdown。
如果是直连两台服务器,仍需至少一端运行 opensm,否则链路无法进入 Active。

ib_write_bw 报错 “Couldn't connect to 192.168.100.1:18515”:通常是 IPoIB 地址没配通或防火墙拦截。
先用 ping 确认,再检查 ib0 是否处于 UP 状态。

NCCL 仍然走以太网:
在启动训练脚本前设置环境变量 NCCL_IB_DISABLE=0 和 NCCL_SOCKET_IFNAME=ib0,
并用 NCCL_DEBUG=INFO 查看日志确认是否选中了 IB 设备。

多台机器都装了 opensm:同一子网内多个 SM 会互相干扰,表现为 LID 频繁变化。
只保留一个节点运行 opensm,其余节点禁用该服务。

完成上述步骤后,建议把 ibstat、iblinkinfo 和 ib_write_bw 的结果记录下来,作为后续扩容或故障对比的基线。
如果链路状态和带宽都正常,但训练任务仍慢,问题通常不在 InfiniBand 本身,应转向检查 NCCL 配置和 GPU 利用率。

分享到:
上一篇
AI服务器RDMA配置:从网卡识别到带宽验证的实操步骤
下一篇
AI服务器RoCE配置:交换机与网卡端到端调通步骤
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意