一台服务器有多个IB网络,如何区分不同的IB网络

在 服务器有两个 InfiniBand 网络(两张 IB 网卡) 的情况下,默认 sminfo 只能显示一个 Subnet Manager(SM),因为每个 InfiniBand 子网(Subnet)只允许有一个主 SM(Master SM)。如果你想区分这两个网络,你可以采取以下方法:

方法 1:使用 ibstat 查看每个 IB 端口的状态

在服务器上运行:

ibstat

示例输出:

CA 'mlx5_0'
    Port 1:
        State: Active
        Physical state: LinkUp
        Rate: 100 Gb/sec
        Base lid: 1
        LID: 1
        SM lid: 2
        LMC: 0
    Port 2:
        State: Down
        Physical state: Polling
        Rate: 100 Gb/sec

CA 'mlx5_1'
    Port 1:
        State: Active
        Physical state: LinkUp
        Rate: 100 Gb/sec
        Base lid: 1
        LID: 3
        SM lid: 4
        LMC: 0

在这个示例中:

  • mlx5_0 代表第一个 IB 设备,端口 1 连接到 SM LID=2 的子网
  • mlx5_1 代表第二个 IB 设备,端口 1 连接到 SM LID=4 的子网
    如果 LID(Local ID)不同,则说明是两个不同的 IB 网络

方法 2:使用 sminfo -D <端口> 强制查询不同 IB 端口

默认 sminfo 只会显示一个 SM,你可以强制指定不同的 IB 端口:

sminfo -D 1
sminfo -D 2

其中:

  • -D 1 指定第一个 IB 端口(mlx5_0)
  • -D 2 指定第二个 IB 端口(mlx5_1)
    如果两个命令返回的 SM 信息不同,说明这两个 IB 端口属于不同的 IB 网络。

方法 3:使用 ibswitches -C <设备> 显示两个 IB 网络的交换机

如果你的服务器连接了 两个不同的 IB 交换机,你可以分别查询:

ibswitches -C mlx5_0
ibswitches -C mlx5_1

这个命令可以显示:

  • 交换机的 GUID
  • 交换机的 System Image GUID(可能作为序列号)
  • 交换机的管理节点(SM)
    如果两个 ibswitches 命令返回不同的交换机 GUID,那说明服务器连接了 两个不同的 IB 网络。

方法 4:使用 ibnetdiscover 确认网络拓扑

如果你想获取完整的 IB 网络拓扑,可以运行:

ibnetdiscover

它会输出:

  • 交换机 GUID
  • 服务器 GUID
  • 端口连接关系
    你可以手动检查服务器的两个 IB 端口分别连接到哪个交换机,从而确定两个网络的拓扑结构。

方法 5:使用 ibdiagnet 分析 IB 网络

如果你的 InfiniBand 诊断工具 ibdiagnet 可用,你可以运行:

ibdiagnet -r

它会收集完整的 IB 网络信息,包括:

  • 交换机信息
  • 端口状态
  • LID 映射
    你可以检查 ibdiagnet 的输出,看看是否有两个独立的 LID 域,如果有,说明是两个不同的 IB 网络。

总结

✅ 如果你的服务器有两个 IB 网络,你可以这样区分它们:

  • 用 ibstat 查看每个 IB 端口的 LID
  • 用 sminfo -D 1 和 sminfo -D 2 分别查询 SM
  • 用 ibswitches -C mlx5_0 和 ibswitches -C mlx5_1 查询交换机
  • 用 ibnetdiscover 获取完整的 IB 拓扑
  • 用 ibdiagnet -r 分析 IB 网络结构
<think>好的,我现在需要帮用户解决如何使用InfiniBand(IB)网卡在两台服务器之间进行流量测试的问题。首先,我得回忆一下InfiniBand的基本知识,以及常用的测试工具和方法。 用户的问题主要集中在打流测试的方法和工具上,所以我要确保覆盖这两个方面。首先,InfiniBand网络需要确保硬件和驱动正确安装,比如检查网卡是否被识别,驱动是否加载。然后是子网管理器(SM)的配置,因为IB网络需要SM来管理网络拓扑和连接,可能需要使用opensm来启动服务。 接下来,测试工具方面,我记得常用的有qperf和ib_send_bw。qperf可以测试带宽和延迟,而ib_send_bw是专门测试带宽的工具。另外,iperf3可能也支持IB,但需要确认是否安装了相应的版本和库支持。 步骤方面,可能需要分准备阶段、安装工具、配置网络、执行测试这几个部分。要详细说明每个步骤的命令和参数,比如如何设置服务器端和客户端,如何指定端口和消息大小。同时,注意事项比如防火墙、固件版本、多线程测试等也需要提到。 用户可能有更深层的需求,比如性能调优或者故障排查,但当前问题主要是基础测试方法,所以先集中在基本流程上。还要注意是否需要配置IPoIB(IP over InfiniBand),因为有些工具可能依赖IP地址,而有些则直接使用RDMA接口。 可能的问题点包括:如何确认IB卡是否正确工作,如何检查链路状态,如果测试结果不理想该如何调整。这些可能需要用户进一步查阅文档或检查硬件状态,但回答中可以给出基本的检查命令,比如ibstat、ibv_devices等。 最后,生成相关问题时,要考虑用户可能接下来会问的内容,比如性能优化方法、不同工具的比较、如何分析测试结果中的瓶颈,或者IB网络的高级配置等。确保问题具有连贯性,帮助用户深入理解。</think>### InfiniBand网卡流量测试方法 使用InfiniBand(IB)网卡进行流量测试需要以下四个关键步骤: 1. **硬件与驱动准备** - 确认两台服务器通过IB线缆直连或通过IB交换机连接 - 使用`ibstat`命令检查IB网卡状态 - 验证驱动加载情况:`lsmod | grep mlx`(以Mellanox为例)[^1] 2. **子网管理器配置** ```bash # 启动子网管理器(任意节点) systemctl start opensm # 验证网络状态 ibnetdiscover ``` 3. **测试工具安装** ```bash # RHEL/CentOS系统 yum install infiniband-diags perftest libibverbs-utils # Ubuntu系统 apt install infiniband-diags perftest rdma-core ``` 4. **流量测试方法** **方法一:使用qperf测试** ```bash # 服务端 qperf # 客户端(假设服务端IP为192.168.1.10) qperf 192.168.1.10 tcp_bw tcp_lat udp_bw udp_lat # 指定消息大小(示例测试4KB消息) qperf 192.168.1.10 -oo msg_size:4K tcp_bw ``` **方法二:使用ib_send_bw测试RDMA性能** ```bash # 服务端 ib_send_bw -d mlx5_0 -x 3 # 客户端 ib_send_bw -d mlx5_0 -x 3 192.168.1.10 ``` **方法三:iperf3测试(需配置IPoIB)** ```bash # 服务端 iperf3 -s # 客户端 iperf3 -c 192.168.1.10 -t 30 -P 8 ``` ### 关键参数说明 | 参数 | 说明 | 典型值 | |------|------|-------| | -d | 设备名称 | mlx5_0 | | -x | 传输类型 | 3(表示可靠连接) | | -m | MTU大小 | 4096 | | -P | 并行连接数 | 8 | ### 注意事项 1. 测试前禁用防火墙:`systemctl stop firewalld` 2. 建议更新固件至最新版本 3. 多线程测试需配合`-P`参数使用 4. 使用`iblinkinfo`检查物理连接状态 5. 通过`ethtool -S <接口名>`查看流量统计 ### 性能评估标准 - 40Gb IB网络理论最大带宽为**4830MB/s** - 延迟应低于**1μs**(RDMA模式) - 实际带宽达到理论值90%即视为正常
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guganly

喜欢就请我喝杯咖啡吧!☕️

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值