1.前言

客户环境:
硬件:高性能CPU计算服务器
MCX75310AAS-HEAT
qm-9790-ns2f
分布式存储服务器4台
系统:ESXI 7.0.3
虚拟机为centos8.0
目标:
要求vm虚拟化集群内的物理节点内的Mellanox网卡设置为SR-IOV模式,设置完成后并为虚拟机添加虚拟网卡。通过IB网卡与分布式存储端相连接。

标题下载Mellanox驱动和工具包

本次集群内的Mellanox驱动版本为nmlx5_core version 4.22.73.1006-1OEM和MFT工具包版本为4.26.1.LTS。

下载Mellanox网卡驱动

目前VMware已被博通公司收购。VM相关下载资源已经迁移到博通网站主页 - 支持门户 - Broadcom 支持门户https://support.broadcom.com/web/ecx

登录完成后点击右上角 VMware Clould Foundation

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_ico

点击左侧菜单栏My Downlads

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_02

点在页面右上角的搜索栏中,输入“VMware vSphere

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_03

选择 VMware vSphere 的用户授权,本次客户环境为单击“VMware vSphere – Enterprise Plus

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_固件_04

在下拉菜单中,单击所需的 vSphere 版本,点击 7.0

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_05

在顶部菜单上,选择“Driver&Tools”。

在“搜索”对话框中,粘贴从 VCG 脚注复制的组件版本 4.22.73.1006-1OEM,以显示驱动程序下载。

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_06


esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_ico_07

选择第一列搜索结果选项,点击下载

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_esxi虚拟机添加万兆网卡_08

2.2.下载MFT工具包

Mellanox固件工具(MFT)

Mellanox固件工具(MFT)包是一组固件管理工具,用于:

生成标准的或定制的Mellanox固件镜像

查询固件信息

刻录固件镜像

下载地址:NVIDIA Firmware Tools (MFT)https://network.nvidia.com/products/adapter-software/firmware-tools/

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_09

2.3.MCX75310AAS-HEAT网卡固件下载

下载地址:Firmware for ConnectX®-7 InfiniBand | NVIDIAhttps://network.nvidia.com/support/firmware/connectx7/ 选择LTS版本(LTS为长期支持版本)

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_10

3.ESXI系统安装Mellanox网卡驱动

3.1.上传MFT、网卡驱动vib文件、网卡固件版本文件
进入ESXI web界面控制端,进入主机的维护模式
通过scp工具将下载完成的文件都上传到esxi主机的/tmp文件夹:scp XXX root@xxx:/tmp

3.2.安装网卡驱动

开启esxi主机的ssh功能

使用lspci | grep Mellanox 查看网卡的pci

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_11

查询IB驱动的版本 esxcli software vib list | grep nmlx 安装下载好的驱动文件
esxcli software vib install -d /tmp/Mellanox-nmlx5_4.22.73.1006-1OEM.703.0.0.18644231.zip或者使用

esxcli software vib install -v 
/tmp/MEL_bootbank_nmlx5-core_4.22.73.1006-1OEM.703.0.0.18644231.vib

esxcli software vib install -v 
/tmp/MEL_bootbank_nmlx5-rdma_4.22.73.1006-1OEM.703.0.0.18644231.vib

分别安装这俩个vib文件

使用esxcli software vib list | grep nmlx查看是否安装成功,版本为4.22.73.1006为最新版

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_ico_12

安装完成后重启esxi主机

通过esxcli network nic list命令可以查看esxi主机上的IB网卡

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_13

通过esxcli network nic get -n vmnic4查询ib网卡信息,如果查询不到说明驱动没有安装成功,需要重新安装驱动文件。

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_ico_14

3.3.安装MFT工具

通过esxcli命令

esxcli software vib install -v /tmp/nmst-4.17.0.106-1OEM.650.0.0.4598673.x86_64.vib

esxcli software vib install -v /tmp/mft-4.17.0.106-10EM-650.0.0.4598673.x86_64.vib

如果安装过程中遇到认证签名问题,在末尾添加–no-sig-check参数。
安装完后重启esxi主机。

3.3.1.开启mst driver

1.cd /opt/mellanox/bin
2../mst start
3../mst status

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_esxi虚拟机添加万兆网卡_15

mt4129_pciconf0是网卡的名称

通过mlxfwmanager命令查询网卡的固件信息

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_esxi虚拟机添加万兆网卡_16

3.4.刷新网卡固件版本

通过scp工具将固件
fw-ConnectX7-rel-28_39_3004-MCX75310AAS-HEA_Ax-UEFI-14.32.17-FlexBoot-3.7.300.signed.bin上传到esxi主机的/tmp目录
通过mft工具的flint -d -i -y b命令将固件刷新到网卡

1.cd /opt/mellanox/bin/

2../flint -d mt4123_pciconf0 -i 
/tmp/fw-ConnectX7-rel-28_39_3004-MCX75310AAS-HEA_Ax-UEFI-14.32.17-FlexBoot-3.7.300.signed.bin -y b

注:不强制更新固件版本

4.设置网卡的SR-IOV模式

在服务器BIOS开启SR-IOV和IOMMU功能
在ESXI系统上面使用MFT工具设置开启SR-IOV 设置虚拟网卡的数量 number of Virtual Functions (VFs).

cd/opt/mellanox/bin
/opt/mellanox/bin/mlxconfig -d mt4129_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=8

输入-y确认。完成后重启ESXI主机
进入ESXI系统中设置虚拟网卡的可用数量

esxcli system module parameters set -m nmlx5_core -p “max_vfs=8”

通过MFT工具设置虚拟网卡类型

./mlxconfig -d mt4129_pciconf0 set LINK_TYPE_P1=1 (参数设置1为IB模式,2为ETH模式)

启用以太网PCI子类覆盖

./mlxconfig -d mt4129_pciconf0 set ADVANCED_PCI_SETTINGS=1

./mlxconfig -d mt4129_pciconf0 set FORCE_ETH_PCI_SUBCLASS=1

max_vfs模块参数设置为首选的VFs数量

esxcfg-module nmlx5_core -s "max_vfs=8"

重启ESXI主机

重启后登录查看虚拟网卡是否正常

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_esxi虚拟机添加万兆网卡_17

查看虚拟网卡是否被使用。true为使用状态 flase未使用状态。

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_ico_18

4.1.虚拟机挂载虚拟网卡

Vs phere client里面看到SR-IOV虚拟网卡设备

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_19

点击虚拟机

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_固件_20

在虚拟机编辑添加虚拟网卡

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_esxi虚拟机添加万兆网卡_21

5.虚拟机安装网卡驱动和存储客户端挂载存储

进入虚拟机系统使用lspci | grep Mellanox查看是否能够识别到IB虚拟网卡

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_固件_22

安装IB网卡驱动,下载地址为:Linux InfiniBand 驱动程序 (nvidia.com)https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 根据服务器系统版本选择对应的驱动版本

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_23

tar -zxvf MLNX_OFED_LINUX-24.04-0.6.6.0-rhel8.0-x86_64.tgz

cd MLNX_OFED_LINUX-24.04-0.6.6.0-rhel8.0-x86_64/

./mlnxofedinstall --force

安装完成后重启虚拟机

使用ibstat命令查看是否能够识别到IB网卡

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_分布式_24

配置IPoIB

使用vi /etc/sysconfig/network-scripts/ifcfg-ib0 编辑

DEVICE=ib0
BOOTPROTO=static
TYPE=infiniband
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=12.12.12.xx
NETMASK=255.255.255.0

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_25

完成后输入:systemctl restart network 重启服务

esxi虚拟机添加万兆网卡 esxi 添加虚拟网卡_重启_26

使用ping命令测试与存储的连接

安装存储客户端(各品牌客户端安装包)

挂载存储

等待客户提价存储信息
参考资料:https://enterprise-support.nvidia.com/s/article/HowTo-Configure-SR-IOV-for-ConnectX-4-ConnectX-5-ConnectX-6-with-KVM-Ethernet#jive_content_id_I_Enable_SRIOV_on_the_Firmwarehttps://docs.nvidia.com/networking/display/mlnxenv24040660/single+root+io+virtualization+(sr-iov)https://yaolang-hpc.github.io/2021/10/08/%E5%9C%A8esxi%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E5%85%B1%E4%BA%ABIB%E7%BD%91%E5%8D%A1/