CodingBox 說明文件

FC 端口診斷:計數器、slow drain 與 SFP 檢查

SAN 交換機會統計端口上出現的每一種異常,這些計數器與物理原因一一對應——前提是你知道哪個計數器意味著「連接器髒污」,哪個意味著「主機沒有及時釋放緩衝區」。本頁列出兩大主流平台上的計數器、每個計數器指向的原因、慢速排空擁塞的表現形式,以及如何從交換機上讀取 SFP 本身。

計數器

計數器(Brocade porterrshowCisco MDS 對應項(show interface fc… counters含義指向
enc_out——幀外編碼錯誤invalid transmission words幀間出現壞符號光模組、線纜、連接器、速率不匹配——典型的物理層計數器
enc_in——幀內編碼錯誤invalid transmission words / CRC幀內符號損壞原因相同,但更嚴重
crc_errCRC errors幀未通過 CRC 校驗鏈路處於邊緣狀態:端面髒污、Rx 偏低、SFP 故障;ISL 上要檢查兩端
crc_g_eofCRC with good EOFCRC 錯誤但幀正確終止——錯誤產生於本端口的上游查看上一跳
too_shrt / too_long / bad_eofframe too short / too long / bad EOF幀格式異常通常是 enc_in 的後果,或設備故障
link_faillink failures鏈路中斷拔線、SFP 故障、供電問題、遠端復位
loss_sync / loss_sigsync loss / signal loss信號或字同步丟失Rx 偏低、LOS、抖動——鏈路抖動
frjt / fbsyF_RJT / F_BSY光纖架構拒絕/忙碌幀架構或分區(zoning)問題,與光模組無關
disc_c3——第 3 類丟棄timeout discards幀在交換機中超時後被丟棄慢速排空/擁塞
c3timeout tx/rx超時方向tx 超時:所連設備處理緩慢;rx:上游存在問題
pcs_err(16G+)64B/66B PCS 塊錯誤16/32GFC 的物理層
uncor_err(16G+,帶 FEC)FEC uncorrectedFEC 無法修復該塊鏈路處於極限狀態——VDM 與 FEC 指標
credit lossportstatsshow:tim_txcrd_z)credit loss / tx credit not available發送信用為零的持續時間擁塞或鏈路髒污導致 R_RDY 丟失

經驗法則:enc_out、crc_err、loss_sync、pcs_err 隨物理層問題增長;disc_c3、c3timeout、tim_txcrd_z 隨擁塞問題增長; frjt/fbsy 隨架構問題增長。清空計數器、等待一段時間,然後觀察速率而非總量。

慢速排空(Slow drain)

某個末端設備緩慢釋放信用(過載的主機、故障的 HBA、路徑上的速率不匹配)會使幀滯留在交換機緩衝區中;這些幀超時後被丟棄,擁塞會通過 ISL 向後蔓延到不相關的設備。這是最具破壞性的 SAN 問題,起初看起來像是隨機的性能問題。

跡象位置
F_Port 上 tim_txcrd_z 持續攀升該端口上的設備釋放信用緩慢
同一端口上 disc_c3 / c3timeout tx 上升發往該設備的幀正在超時
ISL 及其他 F_Port 上出現 disc_c3擁塞已經擴散
Bottleneck/MAPS「延遲」警報(Brocade)、show logging onboard flow-control request-timeout、擁塞丟棄/慢速排空檢測(Cisco)平台工具

緩解措施:修復或隔離慢速設備(端口隔離、隔離到低優先級虛擬通道)、縮短邊緣端口的擁塞丟棄超時時間、避免路徑上出現速率台階、保持 ISL 超訂比例合理(SAN 設計)。光模組幾乎從不是慢速排空的成因——但 R_RDY 丟失的邊緣鏈路可能表現相似,因此應先檢查 enc_out/crc。

從交換機檢查 SFP

任務Brocade FOSCisco MDS / NX-OS
SFP 身份與 DDMsfpshow <port>show interface fc1/1 transceiver details
端口狀態與速率portshow <port>switchshowshow interface fc1/1show interface brief
錯誤計數器porterrshowportstatsshow <port>show interface fc1/1 counters [detailed]
清空計數器portstatsclear / statsclearclear counters interface fc1/1
鏈路測試portloopbacktestD_Port 診斷(portcfgdportportdporttestshow interface fc1/1 transceiver details + 通過診斷工具環回
健康策略MAPS(CRC、ITW、信用丟失、SFP 功率/溫度的閾值)port-monitor 策略(RX/TX 功率、CRC、ITW、信用丟失)

sfpshow 和 transceiver details 會顯示廠商、料號、序號、速率以及帶閾值的 DDM 數值——與 CodingBox 在台架上讀取的位元組相同。兩個平台都會標記不受支援的光模組;端口卡在 Mod_InvNo_Module 或「unsupported transceiver」是策略拒絕,而非故障(廠商鎖定FC 光模組)。

故障 FC 端口的診斷順序

  1. porterrshow / 計數器:區分物理層問題(enc_out、crc、sync)、擁塞問題(disc_c3、信用)和架構問題(rjt/bsy)。
  2. SFP DDM:對照等級區間檢查兩端的 Rx 光功率(典型數值);觀察 Tx 偏置趨勢判斷老化情況。
  3. 清潔並檢查連接器;更換跳線;在同速率下重新檢查計數器。
  4. 速率:強制協商到更低的世代速率,看錯誤是否消失(邊緣狀態的 32G 鏈路在 16G 下可能是乾淨的)—— 速率與傳輸速度
  5. D_Port / 環回測試,以區分交換機、SFP 和線纜。
  6. 若為擁塞:通過 tim_txcrd_z 找到慢速設備,而不是根據報錯的端口來判斷。

在 CodingBox 中

從交換機上取下的可疑 FC SFP 可以在台架上讀取:身份資訊、FC 速率/介質代碼、校驗和以及實時 DDM,見 Check transceiverDDM。如果模組在台架上正常而在端口上報錯,那麼懷疑對象就轉向線纜、連接器或遠端。


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