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 网卡)卸载协议开销。选择依据是距离、预算和对延迟的敏感度。
