解决UCX使用SP670网卡报错
问题现象描述
在cephadm shell启动的容器中,执行ucx_info -d扫描设备时,出现如下报错。
问题原因
报错是因为UCX默认Rx队列深度为4096,而SP670最大深度支持为4095,因此需要调整UCX Rx队列的默认深度值。
解决方法
- 为了解决该问题,需要在章节5.1基础上,再修改一行代码。参考下方的代码完成修改。
1 2 3
cd /root/rpmbuild/SOURCES/ tar -zxvf ucx-1.14.1.tar.gz vim ucx-1.14.1/src/uct/ib/base/ib_iface.c
修改RX_QUEUE_LEN默认值,从4096修改为4095。
对该文件进行打包。
1 2
rm -rf ucx-1.14.1.tar.gz tar zcvf ucx-1.14.1.tar.gz ucx-1.14.1
- 编译并构建RPM包。在RPM编译路径下,编译并构建ucx.spec文件,生成RPM包。
1 2
cd /root/rpmbuild/SPECS rpmbuild -bb ucx.spec
编译完成后在“/root/rpmbuild/RPMS/aarch64”目录会生成如下图所示的8个RPM包。
- 使用本地镜像启动一个临时容器。
podman run --name server1 --hostname ceph_server1 --privileged --net=host --ipc=host -dti [IP]:5000/ceph/ceph_release:v17.2.7 /usr/sbin/init
- 将步骤2生成的rpm包从编译容器中拷贝到新启动的容器中。
podman cp openeuler2203sp3_build:/root/rpmbuild/RPMS/aarch64 ./ podman cp aarch64 server1:/home
- 进入新启动的容器中重新安装ucx。
podman exec -it server1 bash cd /home rpm -ivh aarch64/ucx-* --force
- 退出容器,将容器制作成新的ceph部署容器。
exit podman commit server1 podman tag [IMAGE ID] [IP]:5000/ceph/ceph_release:v17.2.7 podman push [IP]:5000/ceph/ceph_release:v17.2.7 [IP]:5000/ceph/ceph_release:v17.2.7
[IMAGE ID]为commit生成的镜像ID,[IP]为本地IP地址,请根据实际情况替换本地IP地址。
父主题: 常见问题