CodingBox 說明文件

面向儲存的無損以太網:DCB、PFC、ECN

以太網在擁塞時會丟幀;而為光纖通道(Fibre Channel)或 RDMA 設計的儲存協議則假定永遠不會丟包。數據中心橋接(DCB)通過按優先級的流量控制和頻寬分配彌補了這一差距,RoCE 在此基礎上再加入擁塞信令。整個體系的無損程度取決於其中最差的那條鏈路:一個每百萬幀丟一幀的臨界光模組就足以釀成儲存故障。本頁說明這些機制,並將其轉化為物理層要求。

DCB 工具集

標準名稱作用
IEEE 802.1QbbPFC——基於優先級的流量控制按流量類別(0–7)發送暫停幀:擁塞的接收端可以只暫停某一類流量,而不用暫停整個端口
IEEE 802.1QazETS——增強型傳輸選擇為各類別保證頻寬份額(例如儲存佔 50%,局域網佔 50%)
IEEE 802.1QazDCBX——DCB 交換協議基於 LLDP,在交換機與 NIC 之間協商 PFC/ETS 設定
IEEE 802.1QauCN——擁塞通知很少部署
RFC 3168 + DCQCNECN 標記 + 速率控制佇列積壓時交換機對報文打標;RoCE NIC 據此降速,從而在觸發 PFC 之前化解擁塞

RoCE 如何保持無損

  1. 儲存/RDMA 流量通過 DSCP 或 802.1p 打上專用優先級標記(通常是 3 或 4)。
  2. 路徑上每個端口都只為該優先級啟用 PFC,緩衝區的餘量(headroom)根據鏈路速率和線纜長度(在途位元組數)來配置。
  3. ECN 閾值提前對報文打標;NIC 運行 DCQCN 來降低發送速率,使 PFC 只在萬不得已時才觸發。
  4. ETS 在局域網負載下仍為儲存類別保證其頻寬。
  5. DCBX 保持 NIC 與交換機設定一致;一旦不匹配,無損性就會在不知不覺中被破壞。

FC 和 InfiniBand 預設就在每條鏈路上通過信用(credit)機制實現同樣的效果;以太網則需要人工配置、驗證和監測(FC 協議基礎InfiniBand 傳輸)。

可能出現的問題

問題影響檢測
某一跳未啟用 PFC / 優先級配置錯誤負載下丟包;RDMA 重傳;時延突增本該非零的暫停幀計數為零;該類別出現丟包
PFC 風暴卡死的接收端無限期暫停上游;擁塞蔓延至整個網絡暫停幀氾濫;看門狗計數器
PFC 死鎖Clos 網絡中出現循環緩衝依賴;該類別所有流量停止需要死鎖檢測/看門狗機制來打破
餘量對長線纜/光模組來說不夠即使啟用 PFC 仍丟包暫停幀計數在增長的同時仍有丟包
ECN 閾值設定錯誤過早:吞吐量下降;過晚:PFC 氾濫ECN 標記計數器、NIC 上的 CNP 計數器
鏈路上的物理層錯誤(CRC、FEC 不可糾正)幀丟失,任何流量控制都無法挽回端口錯誤計數器、FEC 計數器——VDM 與 FEC 指標

不使用 DCB 的 iSCSI

iSCSI 運行於 TCP 之上,能夠承受丟包,但代價是時延和重傳。無論是否使用 DCB,以下都是最佳實踐:

  • 每個網絡使用專用 VLAN/子網,雙網絡冗餘,主機側啟用 MPIO;
  • 端到端啟用巨型幀(MTU 9000);
  • 發起端與目標端之間不超訂;25G/100G 上聯鏈路按儲存陣列的需求配置容量;
  • 每條 25G 以上鏈路都啟用 FEC;CRC 計數器保持為零;
  • 可選地為 iSCSI 類別啟用 PFC 以平滑微突發流量(許多儲存陣列廠商建議這樣做)。

物理層要求

要求原因做法
每條 25G 以上鏈路都啟用並匹配 FECRoCE 無法容忍未加保護的 25G/50G 通道的原始誤碼率FEC 與鏈路訓練
CRC 與不可糾正 FEC 計數為 0每丟失一幀都會阻塞一個佇列一旦計數增加立即警報
接收功率處於窗口內且留有餘量臨界光模組在溫度變化下會突發錯誤Rx 功率與鏈路預算
速率/雙工/自動協商一致DAC 需要兩端都啟用自動協商 + 鏈路訓練銅纜與 DAC
線纜長度符合餘量假設餘量是按在途位元組數計算的機櫃內優先用 DAC,列間用 SR/AOC,機房間用 DR/LR
身份資訊被 NIC 和交換機接受被拒絕的光模組會導致無鏈路或降速運行廠商鎖定

監測清單

  • 每端口:按優先級統計的暫停幀收發數、ECN 標記數、各類別丟包數、CRC、FEC 可糾正/ 不可糾正計數、鏈路抖動次數。
  • 每 NIC:CNP 收發數、重傳數、亂序數、超時數。
  • 每個光模組:接收/發射功率與溫度趨勢(監測)。
  • 將儲存尾部時延突增與上述指標進行關聯分析——出問題的往往是物理層,而不是儲存陣列本身。

在 CodingBox 中

無損網絡是由普通光模組構建的,只是對其要求更高。在實驗室進行的進廠檢驗——身份資訊、校驗和、將實時 DDM 與典型值對比、保存基線數據——正是將臨界模組擋在網絡之外的方法,因為在這樣的網絡中,一條壞鏈路就足以讓應用的時延 SLA 失守(Check transceiverDDM)。

PFC 和 ECN 在其他轉發機制中的位置,以及物理層錯誤如何在其中顯現: 轉發基礎


如果您發現本文有不準確之處或錯誤,請選取相應片段並按 Ctrl+Enter,即可