centos7.4安装Infiniband网卡驱动以及“Module xxx belong to kernel which is not a part of MLNX……”错误解决

背景说明

实验室集群环境系统更新,导致之前的Infiniband网卡驱动不可用了,因此安装新的驱动

详细步骤

1.去官网下载指定版本

下载安装包
官网版本列表
我这里下载的是对应的7.4
支持Centos7.4的驱动

ps:查看自己系统版本的命令:

lsb_release -a

或者:

cat /etc/redhat-release

2.查看支持情况

解压刚下载的MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64.tgz

tar -zxvf MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64.tgz

进入MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64下执行 cat .supported_kernels 可以查看支持的内核版本:

cat .supported_kernels

通过命令uname -a查看系统当前版本:

uname -a

ps:如果不支持当前版本,可以升级内核或者添加针对当前内核版本的IB驱动(一般第一步下载对应正确的版本都会支持的)

3.安装驱动

进入MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64目录执行:

./mlnxofedinstall

ps:在这个过程中可能会出现缺少依赖的包,根据提示直接用yum安装即可。

4.启动服务

/etc/init.d/openibd start

或者

service openibd start

启动子网管理器opensmd并设为开机启动:

service opensmd start

设置开机启动:

chkconfig openibd on
chkconfig opensmd on

ps:启动的时候如果说要unload一些模块,根据提示unload即可

5.写在后面

至此安装完毕,可以通过命令ibstat查看ib卡状态

ibstat

如果status为Active即成功!

或者通过ifconfig查看网络情况,不出意外可以看到ib卡的流量信息。

ps:安装完成之后,在需要使用ib卡交换的地方改成本机ib卡的ip即可,例如修改其他机器NFS服务的挂载ip地址

mount -t nfs 12.12.12.29:/datas /data-nfs

我这里的ip是IB卡的的ip,/data-nfs是我自定义的目录。

——————————————————————————————————————————————————————————————————————————————- 我是分割线—————————————————- 2018.02.02更新

机器重启了一下,ib网卡启动失败,重启驱动报一堆类似的错误:

Module xxx belong to kernel which is not a part of MLNX[FAILED]kipping...

查看官方文档发现解释如下:

When MLNX_OFED modules are not compatible with a new kernel from a new OS or errata kernel, no links will be created under the weak-updates directory for the new kernel, causing the driver load to fail. Checking for the existence of needed module links under weak-updates directory can be done by reloading the MLNX_OFED modules. If one or more modules are missing, the driver reload will fail with an error message.

大概意思就是:
当MLNX_OFED模块勘误内核或者新内核不兼容时,新内核的weak-updates目录下将不会创建任何链接,导致驱动程序加载失败。 检查weak-updates目录下是否存在需要的模块链接可以通过重新加载MLNX_OFED模块来完成。 如果缺少一个或多个模块,则驱动程序重新加载将失败,并显示错误消息。
文档也说了其原因是:
RedHat的MLNX_OFED软件包附带支持KMP(弱模块)的RPM,这意味着当安装新的勘误内核时,将在新内核的weak-updates目录下创建兼容性链接。 这些链接允许使用现有的MLNX_OFED内核模块而不需要重新编译。 但是,有时新内核的ABI可能与MLNX_OFED模块不兼容,这将阻止加载它们。 在这种情况下,MLNX_OFED模块必须针对新内核重新构建。

解决办法:
在上述步骤的基础上使用如下命令安装驱动:

# cd <MLNX_OFED dir>
# ./mlnxofedinstall --skip-distro-check --add-kernel-support --kmp --force

安装过程如果缺少依赖,根据提示使用yum安装即可,安装完成后重启,问题解决。

你可能感兴趣的:(liunx)