You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置NVMe-oF时nvme discover失败,RDMA连接建立失败(-104)

解决NVMe-oF RDMA连接失败(-104/Connection reset by peer)问题

环境信息

  • 网卡:Mellanox CX-6
  • CPU:FT-5000c(aarch64架构)
  • 内核版本:5.10.0-60.18.0.50.oe2203.aarch64
  • MLNX_OFED版本:24.07-0.6.1.0

问题现象

执行nvme discover时提示:

nvme discover Failed. Failed to write to /dev/nvme-fabrics: Connection reset by peer

客户端dmesg日志显示:

[ 5013.723032] nvme nvme2: rdma connection establishment failed (-104)

目标端无对应dmesg错误输出,已尝试设置nvme num_p2p_queues > 0但未解决问题。

排查与解决步骤

1. 验证RDMA基础链路连通性

先排除RDMA底层链路问题:

  • 目标端启动ibping服务端:ibping -s
  • 客户端执行连通测试:ibping -c 4 <目标端RDMA网卡IP>
  • 如果测试失败,优先解决RDMA链路问题:检查子网配置、网卡状态、固件与OFED版本匹配度,确保RDMA服务正常运行。

2. 确认NVMe-oF目标端配置有效性

检查目标端nvmet服务核心配置:

  • 查看已创建的命名空间:nvmet list ns,确保命名空间已正确关联到控制器
  • 检查控制器绑定状态:nvmet list ctrl,确认控制器已绑定到指定RDMA端口,IP和默认端口4420配置无误
  • 验证端口占用:ss -tulpn | grep 4420,确保4420端口未被其他服务占用

3. 调整内核参数适配aarch64架构

针对FT-5000c的aarch64架构,尝试调整以下内核参数:

  • 临时禁用RDMA端口状态检查:echo 0 > /sys/module/rdma_cm/parameters/ignore_portstate_change
  • 延长NVMe IO超时时间:echo 60000 > /sys/module/nvme_core/parameters/io_timeout
  • 确认关键模块加载:lsmod | grep -E "mlx5_rdma|nvme_rdma",确保mlx5_rdma和nvme_rdma模块已正常加载

4. 排查防火墙与网络策略

临时关闭客户端和目标端防火墙测试:systemctl stop firewalld,重新执行nvme discover。如果测试正常,需添加NVMe-oF相关规则:

  • 放行4420端口的TCP/UDP流量
  • 允许RDMA相关服务的网络通行

5. 检查固件与驱动兼容性

  • 确认Mellanox CX-6网卡固件版本与MLNX_OFED 24.07版本兼容
  • 重新安装MLNX_OFED驱动,确保安装过程适配当前aarch64内核版本,无报错信息

进阶排查

若以上步骤无效,开启调试日志进一步定位:

  • 客户端执行 verbose 模式的发现命令:nvme discover -v,获取更详细的错误输出
  • 目标端开启nvmet调试日志:echo 1 > /sys/kernel/debug/tracing/events/nvmet/enable,执行客户端操作后查看/sys/kernel/debug/tracing/trace日志

内容的提问来源于stack exchange,提问作者yueryoufeng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:14:53