2、IB网络基础:InfiniBand架构、核心组件(HCA、交换机、子网管理器)、链路速率与带宽
2.1 InfiniBand的架构定位与设计哲学
InfiniBand(IB)并非普通的以太网替代品,而是一种为高带宽、低延迟、低CPU开销而生的通道式互连架构。与以太网“尽力而为”的转发模型不同,IB从设计之初就面向计算节点间的内存语义通信,其核心思想是卸载——将数据传输、可靠性保障、消息解析等工作从CPU卸载到网卡硬件(HCA)上,从而让CPU专注于计算本身。
IB网络采用子网(Subnet)作为基本管理域。一个子网内可以包含数千个端口,由子网管理器(SM)统一控制。不同于以太网中每台交换机独立运行STP/RSTP,IB子网内的所有交换机由SM集中计算转发路由表,并下发到各交换机。这种集中式控制平面使得IB能够实现无环路的多路径转发,充分利用胖树拓扑中的全部链路带宽。
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子网的“大脑”,负责:
- 发现:通过定向管理数据报扫描子网中的所有节点、交换机、链路。
- 配置:为每个端口分配本地ID(LID),建立分区表(P_Key)。
- 路由计算:基于拓扑结构计算所有源-目的对的最优路径,生成线性转发表(LFT)。
- 监控与重配置:当链路故障或拓扑变化时,SM重新计算路由并下发更新。
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 常见误区与复盘
实际聚合带宽受限于拓扑结构。如果采用简单的树形拓扑,核心层交换机端口速率会成为瓶颈。例如,4台EDR交换机(每台36端口)连接72台节点,若核心层只有1台交换机,则上行带宽只有36×100Gb/s,无法满足72台节点全速通信的需求。正确做法是采用胖树(Fat-Tree)拓扑,保证任意两层之间的带宽不收敛。
IB默认所有端口属于分区0x7FFF(默认分区),但生产环境必须配置P_Key分区隔离不同业务流量。若未正确配置,可能导致跨租户通信或广播风暴。配置P_Key后,只有拥有相同P_Key的端口才能通信。
某些管理员只运行一个SM实例,一旦SM所在节点宕机,整个子网的路由表将无法更新,新加入的节点无法通信。虽然已有数据转发不受影响,但拓扑变更(如添加节点、链路故障切换)将完全失效。生产环境至少配置2个SM(主备模式),并确保SM运行在独立管理节点或冗余服务器上。