PFC Deadlock Detection & Recovery
PFC pause 是 RoCEv2 实现无损传输的关键,但在罕见的拓扑与路由条件下,它可能形成循环依赖:每台交换机都在等待环路中的下一台而被暂停,导致流量无限期停滞。OcNOS-DC 内置看门狗机制,可在毫秒级检测到该环路,并在训练任务挂起之前自动排空受影响的队列。
3 台交换机的暂停周期
三台交换机构成循环依赖。每一台都在其无损优先级队列上处于暂停状态,等待下一台交换机排空。若不加干预,这一循环将永久稳定地持续下去。OcNOS 看门狗在配置的超时后触发,排空交换机 A 上的 queue-3,循环随即瓦解。
PFC 如何造成死锁
PFC 是一种逐跳暂停机制:当 switch-A 的无损入向队列填满超过阈值时,它向上游发出暂停信号,上游随即停止发送。这在单一流量方向的树状拓扑中运行良好。但在具有多条路径的 leaf-spine 架构中,绕过链路故障的 ECMP 重路由在特定条件下可能形成环状路径,使每台交换机都因等待下一台而处于暂停状态。
一旦这种循环形成,它就会持续稳定:有足够的内存来保存被暂停的帧,路由协议认为一切正常,而 PFC 在每台交换机上不断重新置位。若不加干预,受影响的无损优先级将被无限期挂起。 RoCEv2 流量中断,xCCL (NCCL / RCCL / oneCCL) 集体通信超时,训练任务停滞。
OcNOS-DC 看门狗
每端口、每优先级定时器
针对每个入向端口和每个无损优先级运行一个计时器。如果该优先级在配置的时间间隔(通常为 100–400 ms)内持续被暂停,看门狗即触发。
自动队列排空
看门狗触发时,受影响的 ingress 队列被排空:短暂丢弃帧以打破循环。被丢弃的帧会触发 xCCL 集体通信重传,而替代方案则是无限期挂起。
恢复后自动还原
在所配置的恢复间隔之后,受影响优先级上的正常 PFC 操作即会恢复。无需运维人员介入;fabric 会在数秒内恢复无损状态。
gNMI 计数器
看门狗触发事件、排空时长和按优先级的 pause 计数器通过 gNMI 上报,用于闭环网络监控。SRE 可将死锁事件视为告警,而非无声的训练停滞。
运营商可配置的定时器
检测超时、排空时长和恢复间隔均可通过 CLI 按端口、按优先级配置。默认值适用于大多数网络;运维人员可在高风险集群上缩短这些计时器。
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 沿用默认值即可。