存储网络中的光模块
存储是对光模块最不宽容的环境:存储阵列、HBA 和 SAN 交换机都会校验模块身份,链路必须无损,一个临界光模块表现出来的不是端口宕掉,而是应用时延升高。本页说明光模块在存储网络各处的使用方式,以及需要注意的要点。
光模块所处的位置
| 位置 | 常见光模块 | 说明 |
|---|---|---|
| 存储阵列前端口 | 16/32GFC SFP+/SFP28;25/100G 以太网 SFP28/QSFP28 | 阵列厂商发布合格件清单,且通常出厂时已预装光模块 |
| 主机 HBA | 16/32GFC SFP+/SFP28 | HBA 出厂时已配光模块;第三方模块通常能用,但会让技术支持复杂化 |
| SAN 交换机端口与 ISL | 机房内用 SW,远距离用 LW/ELW | 校验最严格——见下文 |
| IP 存储 NIC(iSCSI、NVMe/TCP、RoCE) | 25/100G 以太网光模块或 DAC | 遵循标准以太网规则 |
| 复制链路 | LW/ELW,或通过 DWDM 承载的 FC/以太网 | 距离与时延预算 |
无处不在的厂商校验
存储平台在三个层面校验模块身份:
- SAN 交换机——许多交换机会将不合格光模块的端口状态标记为 module invalid,并让端口保持下线(FC 光模块)。
- 存储阵列——控制器可能记录 unsupported-SFP 告警,或拒绝启动端口。
- HBA——通常比较宽容,但厂商技术支持在排查故障前可能要求使用合格光模块。
运营方最终普遍采用的实践策略是:阵列和交换机端口使用合格光模块,在允许的地方使用第三方模块,并用编程工具让替换模块呈现出严格端口所期望的身份信息(参见 厂商锁定)。
无损意味着"变慢",而不是"宕机"
FC 和 RoCE 不会丢帧。因此,性能劣化的光模块会在其后端的 LUN 上表现为CRC 错误、信用停滞(慢排空,slow-drain)和时延上升——这会是一张存储性能工单,而不是网络故障报告。诊断路径与任何链路故障相同(电平 → 清洁 → 更换 → OTDR),但必须从应用层症状出发,逐步回溯到端口。
距离与复制
- 同步复制受时延限制——实际中最远约 100 km——这就是城域容灾站点使用 LW/ELW 光模块或通过 DWDM 承载 FC 的原因。
- 长距离 ISL 除了需要满足光功率预算,还需要额外的缓冲信用;参见 SAN 网络与距离。
监测
对每个 ISL 和阵列端口的 DDM 进行趋势跟踪:接收功率漂移和发射偏置电流增长,是激光器即将在某个周五夜里失效的早期预警。安装时应为每个光模块记录基线数据。
在 CodingBox 中
每个光模块在进入存储网络之前都应在实验室中读取一遍:确认 FC 或以太网速率代码、波长类型和厂商身份,记录 DDM 作为基线;对于校验严格的端口,则在 EEPROM editor 中将模块编码为合格身份,同时在 code database 中保留原始信息。
无损以太网对每条链路的要求——PFC、ECN、FEC、零 CRC: 存储无损以太网;承载于其上的传输协议:NVMe over Fabrics。