Skip to content

IB 三面分离落地:PKey 分区、SL/VL 与 IPoIB ​

方案里"网络三面分离"只有一句话,落地却是另一回事:PKey 怎么规划、SL/VL 怎么映射、IPoIB 挂哪个网、OpenSM 主备怎么切——每一层都有验证命令和坑。本文是 384 卡 L40S IB 集群交付中三面分离的实施记录。

1. 三面分离:切的是故障域,不是多拉几根线 ​

面设备承载故障影响
IB 计算网(参数面)4×200G HDR × 48 节点 → Leaf/SpineNCCL、集合通信训练性能
IB 存储网1×200G HDR × 48 节点 → 2×QM8790IPoIB + RDMA 存储流量数据吞吐
以太管理/业务网2×25G Bond × 48 节点SSH、监控、文件共享运维可达性

判断:三张物理面隔离,意味着"存储网打满不会拖垮训练"、"管理网抖动不会让 IB 重传"。用物理隔离换故障域,是中小集群最划算的可靠性投资。

2. PKey:子网内的"VLAN" ​

IB 的 PKey(Partition Key)把单一子网切成逻辑分区,流量隔离靠它,不靠交换机配置。本方案的规划:

PKey用途成员
0x100计算分区48 节点计算口 + Leaf/Spine
0x200存储分区48 节点存储口 + 存储交换机
  • PKey 是成员制:端口必须加入对应分区才能互通,加错分区 = 网络不通(且症状很像"线缆/驱动问题");
  • 默认分区 0x7fff:所有端口默认都在 full member,跨分区流量是默认允许的——"默认开"才是最大的安全隐患,上线前要显式收紧默认分区;
  • 配置在 OpenSM/交换机侧统一下发,节点侧通过 mlnx_qos/ibconfig 核对。

验收命令:

bash
# 查看端口所属分区(应在 0x7fff + 业务分区)
ibdev2netdev
cat /sys/class/infiniband/*/ports/*/pkeys
# 跨分区不通的经典排查:sm_poll / ibstat 都正常,但 ping 不通 → 查 PKey

3. SL/VL:拥塞隔离,而不是 QOS 花瓶 ​

  • SL(Service Level):端到端服务等级,报文打上 SL 标签;
  • VL(Virtual Lane):物理链路上的虚拟通道,每条 VL 独立缓存与调度。

本方案把计算流量与存储流量映射到不同 SL,交换机按 SL 分配 VL。意义:存储突发不会把计算流量的缓冲占光——这是 IB"天然无损"之外,靠显式规划获得的第二层隔离。

工程判断:绝大多数中小集群根本不需要 8 个 SL。规划 2-3 个(计算高优先级 / 存储 / 管理默认)就够,把 SL 当 QOS 展览会去配 8 个,收益为负——每个 SL 都要调缓冲、都要验证。

4. IPoIB:存储网挂 IP 的正确姿势 ​

存储网要用 TCP/IP 应用(NFS/iSCSI),就得让 IB 口"说 IP",即 IPoIB:

  • connected 模式 + MTU 65520:IPoIB 默认 datagram 模式 MTU 2044,性能差一截。存储网必须切 connected 模式并开大 MTU;
  • 踩坑点:两端 MTU 不一致 → 分片/丢包;rdma_rxe 之类软件栈残留 → 走了软 RDMA 还以为是硬件。
bash
# 切 connected 模式(openEuler 下)
echo connected > /sys/class/net/ib0/ipoib_mode
ip link set ib0 mtu 65520
# 验证大包:65520 MTU 下 ping -s 65000 对端,零丢包才算过
ping -s 65000 -M do <存储网关>

5. OpenSM 主备:别让子网"脑裂" ​

IB 子网必须有且仅有一个主 SM。主备规划:

  • 主 SM 跑在管理网可达、电源可靠的节点(本方案放管理面独立主机);
  • 备 SM 心跳监控主 SM,主 SM 故障自动接管,全网 LID/PKey/SL 重算——所以主备切换不是无感的,切换期间流量会短暂中断;
  • 禁止:多台机器同时跑 opensm 且都以为自己是主——IB 的 SM 选举机制(Master/Slave)能兜底,但配置不当会抖动。

验证:

bash
ibstat | grep -A2 "State"        # 端口 State: Active
smpquery sminfo                   # 当前主 SM 是谁
opensm -C /etc/opensm.conf -F     # 备 SM 常驻,_sm_ 日志看接管

6. 交付清单 ​

  1. PKey:0x100/0x200 下发并核对端口成员,收紧默认分区 0x7fff;
  2. SL/VL:计算/存储/管理三档映射,交换机侧核对缓冲分配;
  3. IPoIB:全部存储口 connected + MTU 65520,大包 ping 零丢包;
  4. OpenSM:主备两台,smpquery 确认当前主 SM,failover 演练一次;
  5. 全链路验收:计算面跑 NCCL、存储面跑大文件 IO、管理面 SSH——三面同时压测,确认互不干扰。

本文基于 384 卡 L40S IB 集群交付实测整理;具体版本号与命令以现场实测为准。

AI-HPC 智算超算专家 · Contact: openaihpc@gmail.com