安装完Infiniband卡并接好线缆后ping包不通问题可能原因及解决办法

最近在openEuler-22.03-LTS上使用IB卡,不时发现IB卡安装好并且线缆也连接正常,ifconfig也能看到相应的网口,但就是ping包不通,在对端通过tcpdump抓包也抓不到的情况。
踩了几次坑后慢慢摸出一些门道来供大家参考,让大家少踩坑或者不踩坑,当然不踩坑可能就不会看到这个帖子了。

openEuler-22.03-LTS操作系统使能了IPOIB的功能,因此正常情况下安装完IB卡以及相应的驱动程序(openEuler社区验证通过的版本)后使用ifconfig命令可以查看到相应的eth口,此时我们可以像使用普通网口那样配置好IP地址,对端也做同样的操作。
幸运的话,从本机ping到对端或者从对端ping到本机就会ping通。

常在河边走,总是会湿鞋。
运气再好,也总有碰到ping不通的时候,那不通的时候怎么办?有哪些手段可以来定位和解决呢?
IB卡毕竟不是以太网卡,其物理层与以太网卡有很大不同。
IB卡有一些专门的命令,如ibstat、ibv_devinfo、ibv_devices等命令
当我们碰到上述问题的时候,这些命令就能派上用场了。
我们使用ibstat命令查看IB卡端口状态
如果Physical state不是Linkup,此时就需要检查线缆连接情况
如果Physical state是Linkup,则需要继续查看State是否为Active,如果非Active,那么必然就ping不通。
此时可以在本机和对端分别确认opensm或者opensmd.service是否正常启动,如果服务未启动则手工启动响应服务后再次使用ibstat查看状态。
查看及启动服务的命令
systemctl status opensmd.service
systemctl start opensmd.service
opensm也可以手工启动一下然后退出,从目前使用经验看启动opensm也会启动opensmd.service
只有State状态为Active后ping包才可能ping通

参考连接:

1 个赞