面向存储的无损以太网:DCB、PFC、ECN · 存储系统 · 技术 · 文档 · CodingBox
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 transceiver、 DDM)。

PFC 和 ECN 在其他转发机制中的位置,以及物理层错误如何在其中显现: 转发基础。


如果您发现本资料中有不准确之处或错误,请选中相应片段并按 Ctrl+Enter,即可。