mlx网卡与存储ROCE逻辑链路异常重置问题案例分析
发表于 2026/06/29
0
1 问题现象描述
硬件配置
- 型号:S920X00
- 配置:HP382网卡
问题现象
实验室环境交换机模拟丢报文,运行复现出主机链路闪断现象,同时主机侧有10秒左右的归零现象。

2 关键过程与根因分析
关键过程
Step 1:实验室复现
在存储侧进行打桩,针对向主机发送的Send Only Invalidate(IO结束的最后一个请求)请求,存储侧丢弃主机侧对send inv请求答复的ACK。

Step 2:问题分析
主机ACK报文丢失后,存储发起重传,主机接收到存储的重传报文后,不再发送ACK请求。导致Send Only Invalidate请求的重传报文达到最大请求次数4次(每次2秒左右),存储向主机发送链路重置请求,链路进行重置。

Step 3:协议分析
从协议规范来看,网卡侧是需要正常回复来自存储侧的重传ACK报文的。

1823网卡实现机制:按照海思网卡团队分析是需要支持正常回复ACK的,实验室验证确认。
Step 4:厂商沟通
与mlx原厂沟通,mlx网卡不一定完全按照协议实现,当前网卡固件在ib场景已经稳定使用多年,不会再去修复该场景。如果对链路稳定性有更高要求,建议上层软件层面优化解决。
根因分析
mlx网卡该场景实现机制未完全按照IB协议实现。存储侧丢弃ACK后,mlx网卡未能正确回复重传ACK,导致链路重置。
3 结论、解决方案及效果
结论
mlx网卡在ROCE场景下未完全按照IB协议实现,存储侧丢包时无法正确处理重传,导致链路异常重置。
解决方案
上层软件优化解决
效果
通过软件层面的优化可以规避该问题。
4 经验总结与预防措施
经验总结
- mlx网卡在某些场景下未完全按照IB协议实现
- 上层软件需要做好异常场景的处理
预防措施
- 对链路稳定性要求高的场景需要评估网卡选型
- 上层软件做好重传和链路异常的处理


