3. 多路径技术概述

3.1 多路径(MultiPath)的核心概念

在高速计算与存储网络中,多路径(MultiPath)是指在一对通信端点之间同时建立多条物理或逻辑通路,并让流量在这些通路上进行分发与冗余管理的技术。它的目标不是简单地“多插几根线”,而是通过路径的并行化来突破单条链路的带宽上限,同时为网络提供故障切换能力。

理解多路径需要先区分两个容易混淆的层次:

  • 物理层多路径:主机与交换机之间、交换机与交换机之间实际存在多条物理链路(例如 4 条 100Gb/s 的 InfiniBand 链路)。
  • 逻辑层多路径:上层协议(如 IPoIB、SRP、NVMe-oF)将多条物理链路抽象为一个逻辑网络接口或会话,由多路径算法决定每个数据包或每条数据流走哪条物理链路。

多路径技术需要解决三个核心问题:路径发现(端点之间有哪些可用路径)、路径选择(每条报文或流应该走哪条路径)、故障响应(某条路径失效后如何快速切换而不中断业务)。在 InfiniBand 中,这三个问题分别由子网管理器(Subnet Manager, SM)、路径选择算法和自适应路由(Adaptive Routing)机制来回答。

关键认知:多路径 ≠ 链路聚合(Link Aggregation)。链路聚合通常要求所有物理链路在同一对设备之间且速率相同,而多路径允许路径经过不同的交换机、具有不同的延迟和带宽特性,路径选择算法需要感知这些差异。

InfiniBand 多路径(MultiPath)核心概念 主机 A HCA 端口 1 HCA 端口 2 p1 p2 交换机 S1 端口 3, 7 交换机 S2 端口 4, 8 交换机 S3 端口 2, 6 交换机 S4 端口 1, 5 主机 B HCA 端口 1 HCA 端口 2 p1 p2 路径 1 (蓝色) 路径 3 (绿色) 路径 2 (紫色) 路径 4 (橙色) 多路径关键要素 路径发现:SM 通过 LFT 和 UPD 构建全网拓扑 路径选择:基于 SL/SC 映射、端口利用率、延迟感知 故障响应:快速重路由(FDB 更新 < 100ms) 负载均衡:按流(Flow)或按包(Packet)粒度分发

3.2 InfiniBand 中的多路径实现方式

InfiniBand 的多路径能力由子网管理器(SM)统一规划。SM 运行在子网中的某个节点上(可以是专用管理器、交换机或主机),它通过子网管理接口(SMI)发现所有交换机、链路和主机端口,然后为每个源-目的对计算路径表,并将转发规则下发到各交换机的线性转发表(LFT, Linear Forwarding Table)。

InfiniBand 多路径的实现可以归纳为以下三种机制:

3.2.1 基于 SL/SC 映射的多路径

InfiniBand 报文头中的 服务等级(SL, Service Level)字段(4 bit,共 16 个值)用于区分不同的流量类别。SM 可以为不同的 SL 分配不同的路径,交换机根据 SL 到 服务类别(SC, Service Class)的映射选择对应的输出端口。这样,即使两个端点之间只有一条物理连线,也可以通过 SL 在逻辑上构造多条路径。

3.2.2 基于多端口的 LMC 多路径

LMC(LID Mask Control)是 InfiniBand 中一种较老的多路径机制。它允许一个物理端口拥有多个 LID(本地标识符),每个 LID 对应一条不同的路径。LMC 的值决定了端口拥有的 LID 数量(2^LMC 个)。例如 LMC=2 时,每个端口有 4 个 LID,SM 会为每个 LID 计算独立的路径。这种方式在早期 InfiniBand 网络中较为常见,但由于 LID 资源有限且路径切换粒度较粗,现代网络中已较少使用。

3.2.3 自适应路由(AR, Adaptive Routing)

自适应路由是当前 InfiniBand 多路径调优的核心。与静态路径选择不同,AR 允许交换机根据实时端口负载、拥塞状态动态选择输出端口。HDR(200Gb/s)及更高速度的 InfiniBand 交换机普遍支持 AR。AR 的粒度可以是流级(同一流的所有包走同一路径,保证报文顺序)或包级(每个包独立选路,需要接收端重排序)。

实现机制 路径粒度 动态性 适用场景 调优手段
SL/SC 映射 流(按 SL 区分) 静态(由 SM 预计算) 区分流量优先级、隔离不同业务 调整 SL 到端口的映射表
LMC 多路径 LID 级 静态 早期网络、兼容性需求 设置 LMC 值(0~7)
自适应路由 流级或包级 动态(实时感知拥塞) HDR 以上高速网络、AI 训练集群 配置 AR 算法、阈值、重排序缓冲

3.3 与以太网多路径的对比

以太网领域同样存在多路径技术,最典型的是 ECMP(等价多路径)和 链路聚合(LACP/802.3ad)。虽然目标相似,但 InfiniBand 与以太网在多路径的实现哲学上有显著差异。

3.3.1 路径等价性的定义

以太网 ECMP 要求所有路径“等价”——即具有相同的带宽和延迟,通常通过哈希算法将流分配到不同路径。而 InfiniBand 的 SM 在计算路径时,会考虑链路的速率、MTU、交换机端口状态等属性,可以生成非等价的路径,并通过 SL 或 AR 实现差异化的流量调度。

3.3.2 拥塞感知能力

传统以太网 ECMP 是静态哈希,一旦哈希规则确定,流与路径的映射关系固定不变,无法感知实时拥塞。虽然新一代以太网开始引入动态负载均衡(如 DSCP-based 或 Telemetry 辅助),但 InfiniBand 的自适应路由从设计之初就将拥塞反馈(通过 FECN/BECN 机制)纳入路径决策,能够更快地规避热点链路。

3.3.3 端到端流控与无损特性

InfiniBand 天然支持无损传输(基于信用(Credit)的流控),多路径切换时不会因丢包导致 TCP 重传风暴。而以太网多路径(特别是跨交换机场景)往往依赖 PFC(优先级流控)来模拟无损,配置复杂且容易出现 PFC 死锁。这使得 InfiniBand 在多路径故障切换时更加平滑。

调优启示:在 InfiniBand 环境中,不要照搬以太网 ECMP 的“哈希均匀”思维。IB 多路径更关注路径的质量差异和拥塞动态。例如,当一条路径上的交换机端口出现 CRC 错误或缓冲占用率升高时,AR 应主动将流量迁移到健康路径,而不是机械地维持哈希映射。

3.4 典型场景与常见误区

3.4.1 典型场景:AI 训练集群中的多路径

在基于 InfiniBand 的 GPU 集群中(例如 NVIDIA DGX SuperPOD),每个 GPU 节点通常配置 8 个 HCA 端口,分别连接到不同的叶子交换机。SM 会为每个 GPU 对(例如 GPU0 到 GPU100)计算出 8 条不相交的路径。当 NCCL(NVIDIA Collective Communications Library)执行 AllReduce 操作时,它会利用这些多路径将数据切分到 8 条路径上并行传输,从而将聚合带宽从单条 200Gb/s 提升到 1.6Tb/s。

此时,如果某条路径上的交换机固件版本不一致,导致 AR 算法行为不同,就可能出现某条路径拥塞而其他路径空闲的情况。调优时需要检查所有交换机的固件版本,并确保 AR 的配置参数(如 threshold、packet_spray 模式)一致。

3.4.2 常见误区

  • 误区一:认为多路径数量越多越好。实际上,路径过多会导致 SM 计算量增大、LFT 表项膨胀,且 AR 的决策复杂度上升。对于 2 层 Fat-Tree 拓扑,4~8 条并行路径通常已能充分发挥带宽。
  • 误区二:忽略路径的“同故障域”问题。如果两条路径经过同一块电源域或同一块背板,那么电源故障时两条路径会同时失效。真正的多路径需要跨故障域设计。
  • 误区三:将 AR 的包级喷射(Packet Spraying)视为默认选项。包级喷射虽然能最充分地利用带宽,但会导致接收端报文乱序,要求 HCA 支持重排序。在未验证 HCA 能力前,建议先使用流级 AR。
  • 误区四:只调路径不调端到端协议。多路径的收益需要上层协议配合。例如 IPoIB 使用的多个 CM 连接、SRP 多会话等,如果上层只建立一个连接,多路径能力无法被利用。

3.4.3 复盘:一次多路径“失效”的排查

某存储集群使用双端口 HCA 连接两台交换机,预期通过多路径获得 2 倍带宽。但实测性能只有单路径水平。排查过程如下:

  1. 使用 ibstatus 确认两个端口均为 Active 状态,链路速率均为 100Gb/s。
  2. 使用 ibroute 检查 SM 下发的 LFT,发现两个端口的 LID 指向了同一条物理路径(经过同一台交换机)。
  3. 检查 SM 日志,发现 SM 认为两条路径“不等价”——因为其中一台交换机的端口 MTU 被误设为 2048,而另一条路径的 MTU 为 4096。
  4. 修正 MTU 配置后,SM 重新计算路径,两条路径均被启用,聚合带宽恢复正常。

重要提醒:在 InfiniBand 中,SM 的路径计算会严格遵循 IBTA 规范中的“最短路径优先”和“等价路径”原则。任何导致路径属性不一致的配置(MTU、速率、VL 数)都会使 SM 将路径标记为“非等价”,从而只使用其中一条。多路径调优的第一步,是确保所有候选路径的物理参数完全一致。