BlueField-2 NVMe-oF Target卸载环境XRQ超时报错求助
针对BlueField-2 NVMe-oF Target卸载环境XRQ超时及fio读写失败的排查方案
核心问题定位
报错received IB Backend ctrl event: XRQ NVMF backend ctrl timeout error (22)指向BF2的RDMA XRQ(eXtended Receive Queue)与NVMe后端控制器通信超时,结合主机端Operation not supported报错,核心诱因大概率是卸载配置与内核/OFED版本不兼容、NVMe设备未正确绑定到BF2卸载驱动或RDMA参数配置异常。
分步排查与修复
1. 修复内核与OFED版本兼容性
你当前使用的CentOS 7.2009+内核6.0.10属于非官方分支,而MLNX_OFED_LINUX-23.10是针对RHEL7.9官方内核优化的预编译包,两者存在兼容性冲突:
- 先切换回CentOS 7官方内核(3.10.x系列):
yum install kernel-3.10.0-1160.el7.x86_64 grub2-set-default 0 && reboot - 重新安装匹配官方内核的MLNX OFED驱动,避免使用跨内核版本的预编译包。
- 若坚持使用6.0.10内核,需编译适配该内核的OFED驱动:
./mlnxofedinstall --kernel-sources /usr/src/kernels/6.0.10-1.el7.x86_64 --skip-repo
2. 确认NVMe设备绑定到卸载驱动
BF2的NVMe-oF卸载要求NVMe设备绑定到mlx5_core驱动,而非原生nvme驱动:
- 检查当前绑定状态:
lspci -k | grep -A 3 NVMe - 若显示
Kernel driver in use: nvme,执行解绑并重新绑定:
(替换echo "0000:xx:xx.x" > /sys/bus/pci/drivers/nvme/unbind echo "0000:xx:xx.x" > /sys/bus/pci/drivers/mlx5_core/bindxx:xx.x为你的NVMe设备PCI地址)
3. 调整RDMA XRQ超时参数
修改BF2的RDMA队列超时配置,适配网络环境:
- 编辑
/etc/modprobe.d/mlx5.conf添加:options mlx5_core xrq_timeout=3000 - 重新加载驱动:
modprobe -r mlx5_core && modprobe mlx5_core
4. 校验NVMe-oF Target配置
确认Target配置启用硬件卸载,并指定正确的RDMA参数:
- 检查target配置文件(通常在
/etc/nvme/target目录),确保包含卸载相关配置:subsys create nqn.2014-08.org.nvmexpress:uuid:xxxxxx add namespace 1 /dev/nvme0n1 create transport rdma -u 8192 -s 1024 -m 8 create controller -t rdma -a 192.168.1.10 -s 4096 - 重启nvmet服务:
systemctl restart nvmet
5. 修正主机端连接参数
主机端连接时需匹配Target的RDMA参数,避免队列大小不兼容:
- 重新连接Target:
nvme connect -t rdma -n nqn.2014-08.org.nvmexpress:uuid:xxxxxx -a 192.168.1.10 -s 4420 - 查看主机端控制器状态:
确保状态显示nvme list-controllerslive而非error
额外验证步骤
- 测试BF2与主机间的RDMA链路:
# BF2端启动服务端 qperf -s # 主机端测试带宽 qperf 192.168.1.10 rdma_write_bw rdma_read_bw - 检查BF2固件状态:
mlxfwmanager --query
内容的提问来源于stack exchange,提问作者Jasonxubiubiu
相关产品推荐
相关产品推荐

