2、IB网络基础:InfiniBand架构、核心组件(HCA、交换机、子网管理器)、链路速率与带宽

2.1 InfiniBand的架构定位与设计哲学

InfiniBand(IB)并非普通的以太网替代品,而是一种为高带宽、低延迟、低CPU开销而生的通道式互连架构。与以太网“尽力而为”的转发模型不同,IB从设计之初就面向计算节点间的内存语义通信,其核心思想是卸载——将数据传输、可靠性保障、消息解析等工作从CPU卸载到网卡硬件(HCA)上,从而让CPU专注于计算本身。

IB网络采用子网(Subnet)作为基本管理域。一个子网内可以包含数千个端口,由子网管理器(SM)统一控制。不同于以太网中每台交换机独立运行STP/RSTP,IB子网内的所有交换机由SM集中计算转发路由表,并下发到各交换机。这种集中式控制平面使得IB能够实现无环路的多路径转发,充分利用胖树拓扑中的全部链路带宽。

核心要点:IB的架构本质是“瘦控制平面 + 硬件数据平面”。控制平面由SM集中管理,数据平面由HCA和交换机硬件完成,两者通过管理数据报(MAD)通信。这种设计让IB网络在规模扩大时依然能保持确定性的转发行为。
IB子网核心组件与数据/管理路径 子网管理器 (SM) 集中计算路由表 IB交换机(胖树拓扑) 交换机 S1 36端口 EDR 交换机 S2 36端口 EDR 交换机 S3 36端口 EDR 计算节点(HCA) 节点 A HCA 100Gb/s 节点 B HCA 100Gb/s 节点 C HCA 100Gb/s 管理路径 (MAD) 数据路径 (RDMA) 交换机 SM管理

2.2 核心组件详解

2.2.1 HCA(主机通道适配器)

HCA是连接计算节点到IB网络的接口卡,相当于以太网中的NIC,但功能强大得多。HCA直接承载RDMA(远程直接内存访问)引擎,支持以下关键特性:

  • 内核旁路(Kernel Bypass):用户态应用直接与HCA交互,绕过操作系统网络协议栈,降低延迟至微秒级以下。
  • 零拷贝传输:数据直接从应用缓冲区到网卡硬件,无需在内存中多次复制。
  • 硬件可靠传输:IB的可靠连接(RC)服务由HCA硬件完成确认、重传、排序,不占用CPU。
  • 多队列支持:每个HCA可创建数千个队列对(QP),支撑大规模并发连接。

2.2.2 IB交换机

IB交换机与以太网交换机的最大区别在于:IB交换机不运行任何路由协议,其转发表完全由SM计算并下发。交换机内部采用无阻塞交叉开关(Crossbar)架构,所有端口可以同时以线速转发。IB交换机通常支持自适应路由,在多个等价路径间动态分配流量,避免单条链路拥塞。

2.2.3 子网管理器(SM)

SM是整个IB子网的“大脑”,负责:

  1. 发现:通过定向管理数据报扫描子网中的所有节点、交换机、链路。
  2. 配置:为每个端口分配本地ID(LID),建立分区表(P_Key)。
  3. 路由计算:基于拓扑结构计算所有源-目的对的最优路径,生成线性转发表(LFT)。
  4. 监控与重配置:当链路故障或拓扑变化时,SM重新计算路由并下发更新。
实践提示:生产环境中通常配置主备SM(Master/Standby)。主SM故障时,备用SM在数秒内接管,保证网络可用性。SM可以运行在独立服务器上,也可以运行在某台计算节点上(如Mellanox的opensm)。

2.3 链路速率与带宽演进

IB链路的速率由单通道速率(SerDes速率)和通道宽度(1X/4X/12X)共同决定。每一代IB技术都定义了对应的单通道速率,而实际链路通常采用4X宽度(4个通道并行),这也是绝大多数HCA和交换机端口的默认配置。

IB代际 单通道速率 4X链路速率 12X链路速率 典型应用
SDR (DDR) 2.5 Gb/s 10 Gb/s 30 Gb/s 早期HPC集群
QDR 10 Gb/s 40 Gb/s 120 Gb/s 中小型HPC
FDR 14.0625 Gb/s 56 Gb/s 168 Gb/s 上一代HPC
EDR 25 Gb/s 100 Gb/s 300 Gb/s 当前主流HPC
HDR 50 Gb/s 200 Gb/s 600 Gb/s 新一代HPC/AI集群
NDR 100 Gb/s 400 Gb/s 1200 Gb/s 前沿AI/超大规模

需要注意的是,表中速率是物理层编码后的有效数据速率。例如EDR 4X的100Gb/s是扣除编码开销后的实际可用带宽。IB采用64b/66b编码(HDR及以后)或8b/10b编码(早期),编码效率直接影响有效带宽。

2.4 案例:构建一个最小IB子网

假设我们需要搭建一个包含4台计算节点和1台36端口EDR交换机的IB子网,使用opensm作为SM。步骤如下:

# 1. 在所有节点安装IB驱动和工具
apt-get install infiniband-diags opensm

# 2. 启动HCA驱动
modprobe mlx5_core
ibv_devinfo  # 查看HCA状态

# 3. 在管理节点启动SM(主SM)
opensm -c /etc/opensm.conf   # 生成默认配置
opensm -f /var/log/opensm.log -g 0x98039b03009f23d6

# 4. 验证子网状态
ibstat      # 查看端口状态
ibswitches  # 列出所有交换机
ibroute -n  # 查看路由表

启动完成后,4台节点之间可以通过ib_write_bw等工具测试带宽:

# 在服务器端
ib_write_bw -d mlx5_0 -x 3 -s 1048576

# 在客户端
ib_write_bw -d mlx5_0 -x 3 -s 1048576 192.168.1.1

预期结果:EDR 4X链路应达到约97-99 Gb/s的有效带宽(扣除协议开销后),延迟约0.5-1微秒。

2.5 常见误区与复盘

误区1:认为IB速率等于端口速率×端口数
实际聚合带宽受限于拓扑结构。如果采用简单的树形拓扑,核心层交换机端口速率会成为瓶颈。例如,4台EDR交换机(每台36端口)连接72台节点,若核心层只有1台交换机,则上行带宽只有36×100Gb/s,无法满足72台节点全速通信的需求。正确做法是采用胖树(Fat-Tree)拓扑,保证任意两层之间的带宽不收敛。
误区2:忽略P_Key分区配置
IB默认所有端口属于分区0x7FFF(默认分区),但生产环境必须配置P_Key分区隔离不同业务流量。若未正确配置,可能导致跨租户通信或广播风暴。配置P_Key后,只有拥有相同P_Key的端口才能通信。
误区3:SM单点故障
某些管理员只运行一个SM实例,一旦SM所在节点宕机,整个子网的路由表将无法更新,新加入的节点无法通信。虽然已有数据转发不受影响,但拓扑变更(如添加节点、链路故障切换)将完全失效。生产环境至少配置2个SM(主备模式),并确保SM运行在独立管理节点或冗余服务器上。
复盘总结:IB网络的核心价值在于确定性低延迟和CPU卸载。理解HCA、交换机、SM三者的分工,掌握链路速率与编码的关系,是设计高性能GPU互连集群的基础。在后续章节中,我们将深入探讨如何利用IB的自适应路由和拥塞控制机制,为大规模AI训练提供稳定、高带宽的通信底座。