安装步骤简介:
查询系统版本和架构
下载对应系统版本架构的网卡驱动
上传网卡驱动安装文件到服务器
检查系统是否识别到网卡设备
挂载或者解压驱动包,安装网卡驱动
配置网卡静态ip地址
使用驱动自带性能测试工具测试网卡性能
详细安装过程
1. 查询系统版本和架构
本文以Ubuntu 20.04 LTS 为例,演示安装 NVIDIA/Mellanox 网卡驱动过程。
查询系统信息:
root@ubuntu01:~# cat /etc/issue
Ubuntu 20.04.6 LTS \\n \\l
查询架构:
root@ubuntu01:~# uname -mx86_64
2. 下载对应系统版本架构的网卡驱动
到官方驱动下载页面,选择对应系统版本架构,下载驱动安装包,根据上一步骤查询到的信息,我们选择Ubuntu 20.04 x86_64 。
对于Version 版本,想要体验最新版本,就选择第一个,对稳定性和可靠性有要求的,建议选择 LTS 版本。
驱动包文件提供了3种类型的下载,通常选择ISO或者tgz,不建议使用源码包。
3. 上传驱动安装包文件到服务器
3.1 从Windows系统上传驱动包到服务器
如果你使用Windows 系统,浏览器默认下载驱动包到系统“下载”目录,推荐使用Windows的scp命令直接上传文件到服务器。
使用快捷键 Windows + R ,输入 powershell,打开powershell 终端。
打开powershell终端后,默认在用户目录,切换到“下载”目录,上传驱动包文件到服务器.
3.2 使用U盘上传安装包到服务器
驱动安装包下载到U盘,把U盘插到服务器,挂载U盘,复制驱动包到服务器目录
# 使用 lsblk 查询当前块设备
vincent@ubuntu01:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 63.3M 1 loop /snap/core20/1828loop1 7:1 0 91.9M 1 loop /snap/lxd/24061loop2 7:2 0 49.9M 1 loop /snap/snapd/18357loop3 7:3 0 53.3M 1 loop /snap/snapd/19457loop4 7:4 0 63.5M 1 loop /snap/core20/1974sda 8:0 0 223.6G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot└─sda3 8:3 0 221.6G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 100G 0 lvm /
# 插入U盘后,再查询,出现新的 sdb,就是U盘
vincent@ubuntu01:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 63.3M 1 loop /snap/core20/1828loop1 7:1 0 91.9M 1 loop /snap/lxd/24061loop2 7:2 0 49.9M 1 loop /snap/snapd/18357loop3 7:3 0 53.3M 1 loop /snap/snapd/19457loop4 7:4 0 63.5M 1 loop /snap/core20/1974sda 8:0 0 223.6G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot└─sda3 8:3 0 221.6G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 100G 0 lvm /sdb 8:16 1 7.5G 0 disk └─sdb1 8:17 1 7.5G 0 part
# 挂载U盘,并复制U盘里的驱动包 到服务器
vincent@ubuntu01:~$ sudo mount /dev/sdb1 /mnt[sudo] password for vincent: vincent@ubuntu01:~$
# 复制U盘里的驱动包到服务器
vincent@ubuntu01:~$ cd /mnt
vincent@ubuntu01:/mnt$ sudo cp MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.iso /opt
vincent@ubuntu01:/mnt$ ls /opt
MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.iso
vincent@ubuntu01:/mnt$ cd
# 解除U盘挂载
vincent@ubuntu01:~$ sudo umount /mnt
4. 检查网卡设备
在正式安装驱动之前,建议先检查服务器是否硬件已经识别到网卡设备
vincent@ubuntu01:~$ sudo -iroot@ubuntu01:~# lspci |grep Mellanox45:00.0 Infiniband controller: Mellanox Technologies MT27800 Family [ConnectX-5]root@ubuntu01:~#
有类似以上 输出代表主机已识别到一张 Mellanox [ConnectX-5] 网卡
5. 安装驱动
如果下载的驱动包文件格式 为ISO,那么挂载,如果是tgz包就直接解压,进入解压后的目录开始安装。
ISO 方式:
root@ubuntu01:~# apt updateroot@ubuntu01:~# mount /opt/MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.iso /mntmount: /mnt: WARNING: device write-protected, mounted read-only.root@ubuntu01:~# cd /mntroot@ubuntu01:/mnt# lsroot@ubuntu01:/mnt# ./mlnxofedinstall --all......Do you want to continue?[y/N]:y
看到以上提示,输入y 开始安装,或者使用 --force 直接安装,不会再提示输入 y
root@ubuntu01:/mnt# ./mlnxofedinstall --all --force
tgz 方式:
root@ubuntu01:~# apt updateroot@ubuntu01:~# cd /optroot@ubuntu01:/opt# tar xf MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.tgzroot@ubuntu01:/opt# cd MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64root@ubuntu01:/opt/MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64# lsroot@ubuntu01:/opt/MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64# ./mlnxofedinstall --all --force
整个安装过程大概持续10分钟左右,请耐心等待。
安装完成后,提示重启驱动:
root@ubuntu01:~# /etc/init.d/openibd restartUnloading HCA driver: [ OK ]Loading HCA driver and Access Layer: [ OK ]root@ubuntu01:~#
6. 配置网卡静态ip地址
root@ubuntu01:~# ibdev2netdev mlx5_0 port 1 ==> ibp4s0 (Up)root@ubuntu01:~# cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity'network:
version: 2
renderer: networkd
ethernets:
ibp4s0:
dhcp4: false
addresses:
- 10.10.10.111/24
使配置生效:
root@ubuntu01:~# netplan apply
7. 使用驱动自带性能测试工具测试网卡性能
通常使用到的测试命令:
带宽测试:
ib_write_bw
ib_send_bw
ib_read_bw
延时测试:
ib_write_lat
ib_send_lat
ib_read_lat
注意:测试前需要关闭防火墙,或者放行测试工具的默认端口号 18515
使用方法,至少使用2台服务器,一台开启服务端,另外一台开启客户端去访问服务端。
服务端
在ubuntu01开启服务端:假设服务端ib网卡IP地址为 10.10.10.111/24
root@ubuntu01:~# ib_write_bw --report_gbits
客户端
在ubuntu02开启客户端去访问服务端:
root@ubuntu02:~# ib_write_bw --report_gbits 10.10.10.111 -D 30
说明:
--report_gbits # 以Gb/s 为单位显示测试结果-D 30 # 测试时长 30 秒
以下是一个 ib_write_bw 测试截图
8. 常见问题和诊断:
8.1 IB交换机端口状态LED灯处于橙色状态,或者网卡处于初始化状态 State:Initializing
root@ubuntu02:~# ibstat
CA 'mlx5_0'
CA type: MT4123
Number of ports: 1
Firmware version: 20.37.1014
Hardware version: 0
Node GUID: 0xb88303ffff9ec6dc
System image GUID: 0xb88303ffff9ec6dc
Port 1:
State: Initializing
Physical state: LinkUp
Rate: 100
Base lid: 65535
LMC: 0
SM lid: 0
Capability mask: 0xa651e84a
Port GUID: 0xb88303ffff9ec6dc
Link layer: InfiniBand
网卡处于初始化,说明IB子网中,子网管理器(SM)没有开启,开启SM常见的2种方式:在交换机或者服务器(选择其一即可)
在带管理的IB交换机(SB7800,QM8700,QM9700)开启SM:
ibswitch [standalone: master] > enable
ibswitch [standalone: master] # configure terminal
ibswitch [standalone: master] (config) # ib smnode ibswitch enable
ibswitch [standalone: master] (config) # show ib sm
enable
ibswitch [standalone: master] (config) # write memory
在服务器开启子网管理器,建议在2台服务器开启SM:
root@ubuntu02:~# /etc/init.d/opensmd start
Starting opensmd (via systemctl): opensmd.service.
root@ubuntu02:~# ibstat
CA 'mlx5_0'
CA type: MT4123
Number of ports: 1
Firmware version: 20.37.1014
Hardware version: 0
Node GUID: 0xb88303ffff9ec6dc
System image GUID: 0xb88303ffff9ec6dc
Port 1:
State: Active
Physical state: LinkUp
Rate: 200
Base lid: 1
LMC: 0
SM lid: 1
Capability mask: 0xa651e84a
Port GUID: 0xb88303ffff9ec6dc
Link layer: InfiniBand




