本文主要是介绍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安装即可,安装完成后重启,问题解决。
这篇关于centos7.4安装Infiniband网卡驱动以及“Module xxx belong to kernel which is not a part of MLNX……”错误解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!