【服务器管理】Ubuntu系统IB网卡输入ibstat返回State: Initializing或State: Down的解决办法
【服务器管理】IB网卡输入ibstat返回State: Initializing的解决办法硬件步骤软件步骤(这里以Ubuntu为例)IP配置最近将管理实验室的服务器,希望从服务器存储节点到计算节点之间采用IB(infiniband)通信。购置了IB交换机(型号:MSX6005F-1BFS)、IB网卡(MCX353A-FCBT)、以及IB铜线线缆。他们分别长这个样子(图片来源于网络)硬件步骤1、将I
【服务器管理】IB网卡输入ibstat返回State: Initializing的解决办法
最近将管理实验室的服务器,希望从服务器存储节点到计算节点之间采用IB(infiniband)通信。购置了IB交换机(型号:MSX6005F-1BFS)、IB网卡(MCX353A-FCBT)、以及IB铜线线缆。他们分别长这个样子
(图片来源于网络)
IB网卡驱动安装
硬件步骤
1、将IB网卡安装到服务器节点上,使用IB铜线线缆连接IB交换机与服务器节点上的IB网卡。连线完毕后,IB网卡是这个样子,其中两个灯都是不亮的,因为驱动还没有安装,服务也没有启动
软件步骤(这里以Ubuntu为例)
第一步:查看Ubuntu版本与内核版本
cat /etc/issue
这说明系统的版本为Ubuntu 18.04.4 LTS \n \l
uname -a
输出如下:
Linux gpu158 5.4.0-42-generic #46~18.04.1-Ubuntu SMP Fri Jul 10 07:21:24 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
这说明内核版本为5.4.0-42-generic
。
第二步:确定插在服务器节点上的IB网卡的信息以及是否插入成功
lspci |grep Mell
如果返回如下信息,说明IB网卡插入成功:
82:00.0 Network controller: Mellanox Technologies MT27500 Family [ConnectX-3]
如果没有返回,则说明网卡未成功插入,可能需要重新插入网卡。此外,返回的信息中,ConnectX-3
说明了IB网卡的信息。特别说明,ConnectX-3、ConnectX-4、ConnectX-5、ConnectX-6的驱动有所不同,例如,ConnectX-3可能不支持最新版本的驱动,因此需要知道该信息!
第三步:结合Linux版本、IB网卡版本,选择合适的IB网卡驱动,网站如下:
官网推荐的版本号与系统、网卡型号的关系如下:https://cn.mellanox.com/support/mlnx-ofed-matrix?mtag=linux_sw_drivers
https://cn.mellanox.com/products/infiniband-drivers/linux/mlnx_ofed
点击Archive Versions即可查看历史版本,选择合适的版本,例如4.7-1.0.0.1,如下图所示
点击最右边的链接【注意:该链接还不是下载链接,不能直接复制该链接使用wget命令下载】。
例如下载 MLNX_OFED_LINUX-4.7-1.0.0.1-ubuntu16.04-x86_64.tgz
页面如下:
下拉至最后,勾选I Have Read the Above End User License Agreement.
然后点击按钮I Accept。
弹出的为下载链接,如下所示:
http://content.mellanox.com/ofed/MLNX_OFED-4.7-1.0.0.1/MLNX_OFED_LINUX-4.7-1.0.0.1-ubuntu16.04-x86_64.tgz
第四步:下载刚刚选好的驱动:
wget http://content.mellanox.com/ofed/MLNX_OFED-4.7-1.0.0.1/MLNX_OFED_LINUX-4.7-1.0.0.1-ubuntu16.04-x86_64.tgz
然后解压刚刚下载的压缩包:
tar -zxvf MLNX_OFED_LINUX-4.7-1.0.0.1-ubuntu16.04-x86_64.tgz ./
第五步:安装IB驱动:
切换到安装文件夹
cd MLNX_OFED_LINUX-4.7-1.0.0.1-ubuntu16.04-x86_64
运行安装命令:
./mlnxofedinstall --force
安装成功后,会提示:
Installation passed successfully
To load the new driver, run:
/etc/init.d/openibd restart # 系统自动提示你,到了重启服务的步骤了
第六步:启动服务
运行以下命令:
/etc/init.d/openibd restart
/etc/init.d/opensmd restart
重启服务器:
reboot
State: Initializing解决办法
检查IB网卡状态:
ibstat
如果出现下图所示的红框状态:
State: Initializing
Physical state: LinkUp
则运行以下命令即可恢复正常
systemctl restart opensm
或者命令:
sudo systemctl start opensmd
sudo systemctl enable opensmd
再次运行IB网卡查看命令
ibstat
这说明驱动安装正常,网卡与IB交换机连接正常
State: Down解决办法
总体思路:把IB网卡默认的Ethernet模式切换为Infiniband
如果ibstat
返回的结果为:
CA 'mlx4_0'
CA type: MT4099
Number of ports: 1
Firmware version: 2.42.5000
Hardware version: 1
Node GUID: 0xxxxxx
System image GUID: 0xxxxxx
Port 1:
State: Down
Physical state: LinkUp
Rate: 56
Base lid: 11
LMC: 0
SM lid: 6
Capability mask: 0xxxxxx
Port GUID: 0xxxxxxxx
Link layer: Ethernet
启动mst工具:
systemctl start mst
systemctl status mst
返回下列信息说明启动成功:
● mst.service - LSB: mst
Loaded: loaded (/etc/init.d/mst; bad; vendor preset: enabled)
Active: active (exited) since 五 2021-01-08 17:33:15 CST; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 25814 ExecStart=/etc/init.d/mst start (code=exited, status=0/SUCCESS)
1月 08 17:33:13 amax143 systemd[1]: Starting LSB: mst...
1月 08 17:33:13 amax143 mst[25814]: Starting MST (Mellanox Software Tools) driver set
1月 08 17:33:13 amax143 mst[25814]: Loading MST PCI module - Success
1月 08 17:33:13 amax143 mst[25814]: Loading MST PCI configuration module - Success
1月 08 17:33:13 amax143 mst[25814]: Create devices
1月 08 17:33:15 amax143 systemd[1]: Started LSB: mst.
通过以下命令查看自己的MST设备,也就是IB网卡的位置:
mst status
MST modules:
------------
MST PCI module loaded
MST PCI configuration module loaded
MST devices:
------------
/dev/mst/mt4099_pciconf0 - PCI configuration cycles access.
domain:bus:dev.fn=0000:82:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
Chip revision is: 01
/dev/mst/mt4099_pci_cr0 - PCI direct access.
domain:bus:dev.fn=0000:82:00.0 bar=0xfb400000 size=0x100000
Chip revision is: 01
其中,/dev/mst/mt4099_pciconf0
表示IB网卡。
通过以下命令即可修改网卡的模式(把/dev/mst/mt4099_pciconf0
改为你通过mst status
查询得到的设备位置):
- 双口网卡
mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1=1 LINK_TYPE_P2=1
- 单口网卡
mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1=1
备注:1:Infiniband模式;2:Ethernet模式
然后重启设备使得修改生效:
sudo reboot
重启后运行ibstat
,返回以下结果,说明修改成功:
CA 'mlx4_0'
CA type: MT4099
Number of ports: 1
Firmware version: 2.42.5000
Hardware version: 1
Node GUID: 0xxxxxx
System image GUID: 0xxxxxx
Port 1:
State: Active
Physical state: LinkUp
Rate: 56
Base lid: 11
LMC: 0
SM lid: 6
Capability mask: 0xxxxx
Port GUID: 0xxxxxx
Link layer: InfiniBand
IP配置
不同版本的Ubuntu可能有所区别,以下为Ubuntu16.04或者18.04下的网络配置
首先,使用命令查看是否存在ib0网卡:
ifconfig ib0
返回的信息第一行为:
ib0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2044
这说明存在ib0网卡,可以进行下一步
Ubuntu16.04修改网络配置
sudo vim /etc/network/interfaces
例如:
在文件末尾指定ib0的address、netmask
auto ib0
iface ib0 inet static
address 172.1.1.17
netmask 255.255.255.0
执行以下命令更新网络配置:
service networking restart
部分系统可能需要重启才生效:
reboot
最后,运行以下命令查看IP设置结果:
ip a
Ubuntu18.04修改网络配置
进入目录/etc/netplan/
查看网络配置文件
cd /etc/netplan/
ls
例如我的网络配置文件为01-network-manager-all.yaml
,打开该配置文件
sudo vim /etc/netplan/****.yaml
修改如下,需要注意的是renderer需要设为networkd,否则可能导致网络访问出现问题:
network:
version: 2
renderer: networkd
ethernets:
enp129s0f0:
dhcp4: no
dhcp6: no
addresses: [xxx.xx.xx.xxx/24]
gateway4: xxx.xx.xx.xxx
nameservers:
addresses: [xxx.xx.xx.xx, xxx.xxx.xx.xx]
ib0:
dhcp4: no
dhcp6: no
addresses: [10.0.0.142/24]
然后应用该配置文件:
sudo netplan apply
也可以运行该命令查看执行情况:
sudo netplan --debug apply
部分系统可能需要重启才生效:
reboot
最后,运行以下命令查看IP设置结果:
ip a
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)