PFC Deadlock Detection & Recovery

PFC pause 是 RoCEv2 实现无损传输的关键,但在罕见的拓扑与路由条件下,它可能形成循环依赖:每台交换机都在等待环路中的下一台而被暂停,导致流量无限期停滞。OcNOS-DC 内置看门狗机制,可在毫秒级检测到该环路,并在训练任务挂起之前自动排空受影响的队列。

3 台交换机的暂停周期

三台交换机构成循环依赖。每一台都在其无损优先级队列上处于暂停状态,等待下一台交换机排空。若不加干预,这一循环将永久稳定地持续下去。OcNOS 看门狗在配置的超时后触发,排空交换机 A 上的 queue-3,循环随即瓦解。

PFC 死锁环路与看门狗恢复 三台交换机排列成三角形。暂停箭头从每台交换机顺时针指向下一台,表示每台交换机均暂停以等待下游交换机。交换机 A 处的看门狗图标显示 OcNOS 死锁定时器触发,以排空队列并打破循环。 PFC 暂停(CoS 3) PFC 暂停 PFC 暂停 WD 看门狗触发 清空队列 3 Switch-A暂停于 Q3等待 B Switch-B暂停于 Q3等待 C Switch-C暂停于 Q3等待 A PFC 死锁 · 看门狗超时 · 队列排空 · 自动恢复

PFC 如何造成死锁

PFC 是一种逐跳暂停机制:当 switch-A 的无损入向队列填满超过阈值时,它向上游发出暂停信号,上游随即停止发送。这在单一流量方向的树状拓扑中运行良好。但在具有多条路径的 leaf-spine 架构中,绕过链路故障的 ECMP 重路由在特定条件下可能形成环状路径,使每台交换机都因等待下一台而处于暂停状态。

一旦这种循环形成,它就会持续稳定:有足够的内存来保存被暂停的帧,路由协议认为一切正常,而 PFC 在每台交换机上不断重新置位。若不加干预,受影响的无损优先级将被无限期挂起。 RoCEv2 流量中断,xCCL (NCCL / RCCL / oneCCL) 集体通信超时,训练任务停滞。

OcNOS-DC 看门狗

Detection

每端口、每优先级定时器

针对每个入向端口和每个无损优先级运行一个计时器。如果该优先级在配置的时间间隔(通常为 100–400 ms)内持续被暂停,看门狗即触发。

Recovery

自动队列排空

看门狗触发时,受影响的 ingress 队列被排空:短暂丢弃帧以打破循环。被丢弃的帧会触发 xCCL 集体通信重传,而替代方案则是无限期挂起。

Restoration

恢复后自动还原

在所配置的恢复间隔之后,受影响优先级上的正常 PFC 操作即会恢复。无需运维人员介入;fabric 会在数秒内恢复无损状态。

遥测

gNMI 计数器

看门狗触发事件、排空时长和按优先级的 pause 计数器通过 gNMI 上报,用于闭环网络监控。SRE 可将死锁事件视为告警,而非无声的训练停滞。

Tunable

运营商可配置的定时器

检测超时、排空时长和恢复间隔均可通过 CLI 按端口、按优先级配置。默认值适用于大多数网络;运维人员可在高风险集群上缩短这些计时器。

Scope

DC-PLUS 许可层级

作为 OcNOS-DC PLUS SKU 的一部分,与其余无损 RoCEv2 协议栈一同提供。已在 Broadcom Tomahawk 4 和 Tomahawk 5 平台上验证。

何时会看到此告警触发

在拓扑和路由设计得当的 fabric 中,PFC 死锁极为罕见。大多数运营商运行多年也从未遇到一次。看门狗之所以重要,是因为 “罕见”并不意味着“从不”:路由收敛窗口期内的链路故障、单个端口上 PFC 优先级的错误配置,或是异常流量模式下的瞬时拥塞事件,都可能制造出引发问题的条件。若没有 watchdog,一旦它真的触发,AI 集群会停摆,运维团队将面临数小时的调试工作。有了 watchdog,您得到的只是一阵短暂的重传突发和一条记录在案的事件日志。

The bottom line

  • 无损安全网。 watchdog 正是区分"PFC 在生产级 AI fabric 上理论上存在风险"与"PFC 可大规模安全部署"的关键所在。
  • 亚秒级恢复。 检测 + 排空 + 恢复通常在一秒内完成。xCCL 重传一小段 RDMA 流量,任务继续执行。
  • 标准配置。 在 OcNOS-DC 的无损模板中,看门狗默认开启。您无需特意记得去启用它。
  • Observable. 每一次触发都会被记录、计数并通过 gNMI 流式传输。可与您现有的可观测性技术栈实现闭环监控。
  • 可按风险等级调优。 为关键训练集群调低定时器;通用 DC fabric 沿用默认值即可。

正在新 fabric 上验证无损行为?请从 watchdog 开始。

申请技术演示 →