PFC 死鎖檢測與恢復

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

每埠、每優先級定時器

A timer runs per ingress port and per lossless priority. If the priority is paused continuously for the configured interval (typically 100-400 ms), the watchdog fires.

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,則只會出現短暫的重傳突發與一筆已記錄的事件。若要從一開始就規劃出使死結保持罕見的拓撲與交換器層級,請使用 AI Fabric 規模估算工具.

結論

  • 無損安全網。 watchdog 正是區分"PFC 在生產級 AI fabric 上理論上存在風險"與"PFC 可大規模安全部署"的關鍵所在。
  • 亞秒級恢復。 檢測 + 排空 + 恢復通常在一秒內完成。xCCL 重傳一小段 RDMA 流量,任務繼續執行。
  • 標準配置。 在 OcNOS-DC 的無損模板中,看門狗預設開啟。您無需特意記得去啟用它。
  • Observable. 每一次觸發都會被記錄、計數並通過 gNMI 流式傳輸。可與您現有的可觀測性技術棧實現閉環監控。
  • 可按風險等級調優。 為關鍵訓練叢集調低定時器;通用 DC fabric 沿用預設值即可。

正在新 fabric 上驗證無損行為?請從 watchdog 開始。

申請技術演示 →
常見問題

常見問題

PFC死結的成因是什麼?
PFC 是一種逐跳暫停機制。在多路徑 fabric 上,繞過鏈路故障的 ECMP 重新路由在特定條件下可能形成環形路徑,其中每台交換器都在暫停等待下一台。該循環處於穩定狀態,lossless 優先權會一直掛起,直到有事件將其打破。
OcNOS的PFC監控程式如何恢復fabric?
若某個lossless優先權在所設定的時間間隔(通常為100至400 ms)內持續處於暫停狀態,便會觸發依連接埠、依優先權的計時器。watchdog會排空受影響的佇列以打破該循環,隨後在恢復間隔結束後自動恢復正常PFC,無需維運人員介入。
watchdog 是否會丟棄流量?
會,但很短暫。排空佇列會丟棄一小段訊框視窗,從而觸發 xCCL 集合運算重傳。替代方案是無限期停頓,因此這項取捨是以不到一秒的重傳突發換取避免訓練作業停滯。
PFC 死結看門狗是否預設啟用?
是的。在OcNOS-DC的lossless範本中,監控程式預設開啟,其偵測、排空與恢復計時器均可透過CLI調整。它是Broadcom Tomahawk 4與5平台上OcNOS-DC PLUS SKU的一部分。