BB 信用計算器
根據速度和距離計算 ISL 鏈路的光纖通道 BB 積分
如何使用BB 信用計算器
- 1輸入鏈路線速(Gbps,如 16、32、64)。
- 2輸入兩臺交換機間的往返時間(毫秒)。
- 3讀取推薦的 BB_Credit 緩衝到緩衝數值。
光纖通道 BB_Credit 規劃
BB_Credit ≈ 往返時間(ms) × 線速(Gbps) / 10BB_Credit 是光纖通道埠釋出的緩衝到緩衝信用數,使鏈路不必等待 ACK 也能保持滿載。
信用過少會拖累長距離鏈路;該公式讓在途資料在一個往返內填滿管道。
Buffer-to-Buffer Credit(BB_Credit)是**光纖通道(Fibre Channel)**獨有的流控機制。與乙太網路「丟包後重傳」不同,FC 要求無丟包,所以接收方會預先通告自己還能接收多少幀(即 credit 數量),傳送方每發一幀消耗一個 credit,收到 R_RDY 原語後歸還。**credit 耗盡時傳送方必須停止傳送**,因此 credit 不足會直接限制長距離鏈路的吞吐量。
所需 credit 數量的計算公式:**Credit ≥ (速率 × RTT) ÷ 幀大小**,其中 RTT 由光纖長度決定(光在光纖中約 5 μs/km,往返即 10 μs/km)。以 8G FC(8.5 Gbps)、10 km、2 KB 幀為例:8.5×10⁹ × 10⁻⁴ ÷ 2148 ≈ 44。若交換機埠的 BB_Credit 預設只有 8–16,10 km 外的吞吐量就會掉到標稱的 20%–40%。**這是 FC SAN 遠距離部署最常見的效能問題**,解決辦法是購買「長距離許可」提高 credit 上限,或用 FCIP 閘道器。
| 鏈路 | 速率 | 距離 | 所需 Credit(2 KB/幀) |
|---|---|---|---|
| 1G FC | 1.0625 Gbaud | 10 km | 約 6 |
| 2G FC | 2.125 Gbaud | 10 km | 約 12 |
| 4G FC | 4.25 Gbaud | 10 km | 約 22 |
| 8G FC | 8.5 Gbaud | 10 km | 約 44 |
| 16G FC | 14.025 Gbaud | 10 km | 約 72 |
| 32G FC | 28.05 Gbaud | 10 km | 約 144 |
常見鏈路的 Buffer Credit 需求估算
常見問題
信用太少會怎樣?
傳送方等待 ACK 而停滯,長距離下鏈路利用率不足。
越多越好嗎?
過多會浪費交換機緩衝記憶體;應按實際 RTT 而非最大值來定。
TCP 也適用嗎?
TCP 用類似的視窗/BDP 概念;FC 的 BB_Credit 即儲存網路對應物。
乙太網路為什麼不需要 Buffer Credit?
因為乙太網路容忍丟包:傳送方不需要等待許可,收不到 ACK 就重傳(TCP)或直接丟棄(UDP)。而 FC 面向儲存,丟幀會導致上層 SCSI 超時、IO 錯誤甚至資料不一致,所以必須在鏈路層就保證無丟包。現代資料中心乙太網路用 **PFC(Priority Flow Control,IEEE 802.1Qbb)**實現了類似的逐優先順序暫停機制,是 RoCEv2(RDMA over Converged Ethernet)的基礎——本質上也是一套 credit 機制,只是針對乙太網路改造過。
遠距離 FC 有哪些替代方案?
三種主流方案:① **FCIP**:把 FC 幀封裝進 TCP/IP 隧道傳輸,走現有 IP 網路,成本低但延遲高(受 TCP 影響);② **FC over DWDM**:用波分裝置直接透傳光訊號,延遲最低、效能最好,成本最高;③ **IP SAN(iSCSI / NVMe-oF)**:直接改用 IP 儲存協議,省去 FC 基礎設施,但需要專用網絡卡(iSCSI HBA、RDMA 網絡卡)解除安裝協議開銷。選擇依據是距離、預算和對延遲的敏感度。
