3. InfiniBand网络架构:拓扑结构与核心组件
3.1 为什么传统以太网拓扑不适合高性能计算
在进入InfiniBand拓扑细节之前,有必要先理解一个关键问题:为什么不能直接沿用以太网中常见的树形或三层汇聚拓扑?根本原因在于阻塞比(Blocking Ratio)与等分带宽(Bisection Bandwidth)的差异。传统以太网为了成本考虑,通常在上行链路采用收敛比(Oversubscription)3:1甚至5:1,这意味着多个接入交换机共享更少的上行带宽,当多个节点同时通信时,网络核心成为瓶颈。
而InfiniBand面向的是GPU集群、分布式存储和HPC应用,这类负载的特点是全对全通信(All-to-All)模式——例如MPI集体通信中的Allreduce操作,每个节点都需要与其他所有节点交换数据。如果网络中存在收敛点,性能将急剧下降。因此,InfiniBand网络设计的第一原则是:尽可能提供无阻塞或低阻塞的转发路径,让任意两个端口之间都能以线速通信。
3.2 Fat-Tree拓扑:最广泛使用的无阻塞结构
Fat-Tree(胖树)是当前InfiniBand部署中最常见的拓扑,尤其适用于中小规模集群(数百至数千节点)。它的核心思想是:越靠近网络核心,链路数量越多、带宽越宽,从而消除上行带宽收敛。
一个典型的两层级Fat-Tree(也称为Leaf-Spine)结构如下:
- Leaf层(叶子交换机):向下连接计算节点(HCA端口),向上连接Spine交换机。每个Leaf交换机通常有N个下行端口和N个上行端口(对等配置)。
- Spine层(脊交换机):只负责转发,不直接连接计算节点。Spine交换机之间不互连,所有跨Leaf的流量必须经过Spine。
- 链路带宽:所有链路均为相同速率(如EDR 100Gb/s或HDR 200Gb/s),通过增加并行链路数实现带宽扩展。
对于更大规模集群,可采用三层Fat-Tree(Core-Aggregation-Edge),但原理相同:每一层上行链路总数等于或大于下行链路总数,保证任意Leaf端口到另一Leaf端口的路径带宽等于端口速率。
3.3 Dragonfly拓扑:面向超大规模集群的层级设计
当集群规模超过数千节点时,Fat-Tree需要大量交换机和高层线缆,成本急剧上升。Dragonfly(蜻蜓)拓扑通过减少网络直径来降低成本和延迟,其设计哲学是:利用高基数路由器(High-radix Switch)在局部提供高带宽,组间用少量长距离链路互连。
Dragonfly拓扑分为三个层级:
- 组(Group):一组交换机内部全互连(或近似全互连),组内任意两个交换机之间距离为1跳。每个组相当于一个“超级交换机”,对外提供大量端口。
- 全局连接:每个组通过少量全局端口(Global Ports)与其他组相连,形成全互连或近全互连的组间网络。
- 计算节点:连接在组内交换机上,访问其他组节点时最多经过3跳(源节点→组内交换机→目标组交换机→目标节点)。
Dragonfly的关键优势在于网络直径小(最大跳数仅为3),延迟远低于Fat-Tree(后者在大规模时可能需要5~7跳)。但代价是路由算法复杂,需要自适应路由(Adaptive Routing)来避免局部拥塞,且对交换机端口数要求较高。
| 对比维度 | Fat-Tree | Dragonfly |
|---|---|---|
| 典型规模 | 数百~数千节点 | 数千~数万节点 |
| 最大跳数 | 2层:3跳;3层:5跳 | 3跳(固定) |
| 线缆成本 | 较高(大量长距离上行线缆) | 较低(组内短距为主) |
| 路由复杂度 | 简单(确定性路由) | 复杂(需自适应路由) |
| 容错能力 | 多路径冗余,容错好 | 依赖路由算法重规划 |
| 适用场景 | 通用HPC、GPU集群 | 超大规模HPC(如Frontier) |
3.4 核心组件:HCA、交换机与线缆
3.4.1 HCA(Host Channel Adapter)
HCA是计算节点接入InfiniBand网络的接口卡,相当于以太网中的NIC(网卡),但功能更强大。HCA不仅负责数据的发送与接收,还实现了完整的RDMA(远程直接内存访问)引擎,允许应用程序绕过CPU和操作系统内核,直接从用户态内存读写远端节点内存。
选择HCA时需要关注以下参数:
- 端口速率与数量:常见规格有单端口HDR100(100Gb/s)、单端口HDR200(200Gb/s)、双端口HDR200等。GPU集群通常选择双端口HCA以支持GPU Direct RDMA。
- PCIe接口:HDR200 HCA需要PCIe 4.0 x16接口才能提供足够的带宽(理论约64GB/s双向)。若服务器仅支持PCIe 3.0,则实际吞吐会受限。
- 协议卸载能力:支持RDMA、RoCE(可选)、MPI卸载等特性。
3.4.2 InfiniBand交换机
InfiniBand交换机与以太网交换机有本质区别:它们通常是无阻塞设计,即所有端口同时以线速转发。交换机内部采用Crossbar或Clos架构,并集成了子网管理器(Subnet Manager, SM)的代理功能。
关键规格包括:
- 端口数与速率:常见有36端口EDR(100Gb/s)、40端口HDR(200Gb/s)、64端口NDR(400Gb/s)等。
- 管理方式:支持带内管理(通过InfiniBand网络本身)和带外管理(以太网管理口)。
- 路由与拥塞控制:支持自适应路由(AR)、拥塞控制(CC)等高级特性,对Dragonfly拓扑尤为重要。
3.4.3 线缆类型
InfiniBand线缆分为铜缆(DAC/AEC)和光缆(AOC/可插拔光模块)两大类:
| 类型 | 最大长度 | 功耗 | 成本 | 适用场景 |
|---|---|---|---|---|
| 无源铜缆(DAC) | ≤3米 | 极低(无源) | 最低 | 机柜内Leaf到服务器 |
| 有源铜缆(AEC) | ≤7米 | 较低 | 中等 | 相邻机柜间 |
| 有源光缆(AOC) | ≤100米 | 中等 | 较高 | 跨机柜、跨列 |
| 可插拔光模块+光纤 | ≤10公里 | 较高 | 最高 | 跨机房、跨建筑 |
3.5 实际部署案例:GPU集群拓扑设计
以一个典型的4节点GPU服务器集群为例(每台服务器8块GPU,共32块GPU),推荐采用以下拓扑:
拓扑结构:两层Fat-Tree(Leaf-Spine)
交换机:2台 40端口 HDR 200Gb/s Spine交换机
4台 40端口 HDR 200Gb/s Leaf交换机
HCA:每台服务器2块双端口HDR200 HCA(共8个端口)
线缆:Leaf到服务器:DAC铜缆(≤3米)
Leaf到Spine:AOC光缆(≤30米)
连接关系:
- 每台Leaf交换机连接2台服务器(每台服务器2个HCA端口分别连接到不同Leaf)
- 每台Leaf交换机上行20条链路到Spine(每台Spine连接10条)
- 总计算端口:4 Leaf × 20下行 = 80端口(实际使用64端口,冗余16端口)
该设计实现了无阻塞:任意服务器到另一台服务器的通信路径带宽等于HCA端口速率(200Gb/s)。同时,每台服务器连接2个不同的Leaf交换机,实现了路径冗余——即使某个Leaf交换机故障,服务器仍可通过另一条路径通信。
3.6 常见误区与复盘
有些团队一开始就设计三层Fat-Tree或Dragonfly,即使集群只有几十个节点。实际上,两层Fat-Tree在数百节点内完全够用,且更易维护。拓扑复杂度应与集群规模匹配。
InfiniBand网络必须依赖SM来发现拓扑、计算路由并下发转发表。如果只运行一个SM实例,SM故障将导致整个网络瘫痪。生产环境至少部署2个SM(主备模式),且SM应运行在独立的服务器上,而非计算节点内。
在机柜部署时,DAC线缆的弯曲半径和长度限制容易被忽视。例如,从服务器顶部端口到Leaf交换机底部端口,实际路径可能超过3米。建议在规划时预留20%的线缆长度余量,并提前测量实际走线路径。