什么是缓冲区到缓冲区信用管理?
不可不使用
适用场景
- FlexPod
- 光纤通道
问题解答
什么是缓冲区到缓冲区信用 (BB_Creds) 以及如何使用它们?
- 光纤通道使用 BB_Credit 机制进行基于硬件的流量控制。这意味着端口能够对帧流的传输速度进行调整、使其进入处理缓冲区。
- 缓冲区到缓冲区信用可用于管理流控制并确定可向收件人交换机设备发送多少帧而不会出现饱和。这种机制消除了交换硬件因高拥塞而丢弃帧的需要。
- 端口的信用数等于端口在收到帧确认之前可以传输的帧数。任何两个连接的光纤通道端口之间都将进行 BB_Credit 管理。
示例:
- 一个 n_port 和一个 f_port
- 两个 E_Port
- 点对点拓扑中有两个 n_ports
- 在仲裁环路中,不同模式
该标准提供了帧确认机制、在该机制中,接收端的每个可用缓冲区都将 R_RDY (接收器就绪)原始数据从接收端口发送到传输端口。
传输端口会保持一个可用接收器缓冲区计数,并且在计数大于零时将继续发送帧。
Bb_Gits 由第 2 类和第 3 类服务使用、并依靠接收器向发送接收器发送接收器( r_rdy )。节点对在 flogi/plogi 期间提供的信用数进行通信。传输器使用此值来跟踪接收缓冲区的消耗和速度传输(如有必要)。FC 交换机按照以下方式跟踪可用的 BB_Credits :
- 在发送任何数据帧之前、发射器会设置一个等于其接收器在 FLOGI 期间通信的 BB_Credit 值的计数器
- 对于由发射器发送的每个数据帧,计数器将减 1
- 接收到数据帧后、接收方将状态帧 (R_RDY) 发送给传输器,指示已接收到数据帧、并且缓冲区已准备好接收另一个数据帧
- 对于发射器收到的每个 R_RDY ,计数器将加 1
注: vc_rdy 是与虚拟通道( VC )技术一起使用的 Brocade 专有版本的 r_rdy 。在本文档中,术语“ r_rdy ”用于指 r_rdy 或 vc_rdy 。
在给定的链路速度和长度下需要多少个 BB_Credit ?
列出的计算不适用于 MetroCluster FC 后端配置。 |
- 在网络结构登录期间、链路两端的 n_ports 和 f_ports 都建立了其 bbb_Credit 。每个端口都表示可以提供的最大 Bb_Credits 、并且使用两者中较低的一个。
- 主机和目标上的主机总线适配器( HBA )具有固定数量的 BB_Creds 、无法修改。但是,光纤通道交换机会根据指定的速度和链路距离在内部计算每个端口的 Bb_Credit 。
- 计算给定距离所需的 BB_Credits 数量(假定最大帧大小)的公式为:
( x*y/2 ) +6= b 其中、
B = 所需的 BB_Credits 数
x = 距离(以公里为 * )(为了安全、 x 设置为 1.5 * 支持的实际物理距离)
y = 速度
6= 每个端口的 Fabric 服务所需的缓冲区数。此数字始终为 6 。
注意:如果链路上启用了 QoS ,则必须考虑 QoS 管理所需的 14 个更多积分。
如果已知给定交换机可用的最大 BB_Credits 数(如上表所示)、则可以更改与 BB_Credits 相关的最大理论距离的公式:
x =(B-6)/(Y/2) 其中:
x = 最大理论距离 *
b = 可用的 bbb 信用
y = 速度
例如,在 4Gbps 下运行 1 个 ISL 的 Brocade 200E 的最大理论距离如下所示:
x = ( 144 – 6 ) / ( 4/2 )
x =138/3
X =69 公里
还可以根据帧大小计算所需缓冲区的数量。如果帧大小为平均值(例如 1024 字节)、请分配两倍的 BB_Creds 或在长距离 LS 配置模式下分配两倍的距离。
使用以下公式计算交换机确定要分配的 BB 信用值数所需的 desired_distance 值:
- desired_distance = 整数到最接近的整数( real_estimated_distance * 2112 ) / 平均有效负载大小 ]
- 其中, average ; bload ; size = 1024 字节
- 此示例使用 200 公里作为实际估计距离。
- desired_distance = 整数比最近的整数( 200 * 2112 ) / 1024]= 412
- 在 Brocade 交换机上,使用
portcfglongdistance
命令配置 LS 模式时,为实际 200 公里输入所需的距离值 412 - 连接到 4 Gbps E_Port 的链路。这会导致 Fabric OS 分配正确数量的 BB 点数。
2. 确定用于远程连接的速度。此示例使用 8 Gbps 。
3. 查找 data_rate 值以了解连接速度。以 1.0625Gb/ 秒的波特率进行 8b/10b 编码的 1 Gb 光纤通道链路可以提供精确 1 Gbps 的数据流。光纤通道千兆位值如下所示。
- 1 Gbps 为 1.0625
- 2 Gbps 的速率为 2.125
- 4 Gbps 时为 4.25
- 8 Gbps 的 8.5
4. 使用以下公式计算要分配的 BB 信用数量:
- bbb_credit = 重复数据删除 [desired_distance * ( data_rate / 2.125 ) ]
- 使用步骤 1 和步骤 3 中的 desired_distance 和 data_rate 值, BB 信用值的计算方法如下:
- bbb_credit = 重复数据删除(( 412* 4.25 ) / 2.125 ) = 824
如果没有足够的 BB_Credits 可用会发生什么情况?
- 当缓冲区不足时、 FC 网络中的流量仍会流动。它们只会以较慢的线路速率运行。这种情况称为 BB_Credit 不足、只要 BB_Credit 不会丢失,仍允许流量流动。
- 事实上,如果一个 BB_Credit 池达到零,则在补充信用或重置链路之前、端口将无法再发送帧。
- 如果链接两端的 BB_Credits 不匹配、并且这可能导致交换机间链路不出现、则可能会发生结构分段。检查日志中两端的错误消息并确定 ISL 无法启动的原因。
注:如果给定实施的 FC 帧的大小百分比较高、大大小于最大大小、则可能需要更多的 BB_Gits 。
缓冲区信用恢复
此功能仅在 E 端口上受支持,并允许交换机自动恢复在一段时间内意外“丢失”的 BB_Credits 。BB_Credit Recovery 可防止因时间损失信用而导致链路性能下降。有关详细信息,请参见交换机供应商文档。
追加信息
不适用