Loading
close

前置条件准备

time 更新时间:2023-06-29 18:48:46

为了使用SR-IOV功能,需要满足以下前提条件:

  1. 服务器BIOS中已开启SR-IOV功能。
  2. 启用Intel IOMMU功能,并以Pass-Through模式进行配置。
  3. 已安装NVIDIA MLNX_OFED驱动。
  4. 网卡固件启用SR-IOV功能。
  5. 在MLNX_OFED驱动上启用SR-IOV。

这些前提条件的满足将确保系统具备使用SR-IOV功能所需的硬件支持和驱动程序。请确保在使用SR-IOV功能之前,在执行后续的配置操作之前,先完成以下准备工作:

操作步骤

1.服务器BIOS中已开启SR-IOV功能

请确保服务器BIOS中已开启SR-IOV功能。每个服务器都有不同的虚拟化BIOS配置选项。BIOS configuration examples可参考:BIOS configuration examples

2.服务器BIOS中已开启SR-IOV功能

请确保将”intel_iommu=on“和”iommu=pt“添加到grub文件的配置中。

# cat /boot/grub2/grub.cfg

# GRUB Environment Block
saved_entry=0
kernelopts=root=/dev/mapper/os-root ro edd=off kvm.halt_poll_ns=400000 cgroup.memory=nokmem intel_iommu=on iommu=pt pci=realloc ixgbe.allow_unsupported_sfp=1 rootdelay=90 nomodeset intel_idle.max_cstate=0 processor.max_cstate=0 crashkernel=300M rd.lvm.lv=os/root biosdevname=0 net.ifnames=1
boot_success=0

要了解更多关于iommu grub参数的信息,请参阅:Understanding the iommu Linux grub File Configuration

3.安装NVIDIA MLNX_OFED驱动

3.1 下载驱动包

NVIDIA驱动官方下载:Linux InfiniBand Drivers
请根据您所选择的操作系统和版本,以及CPU架构,下载相应的tar包。例如,选择MLNX_OFED_LINUX-5.9-0.5.6.0-rhel8.4-x86_64.tgz进行下载。

./images/scs_gs_image_10.png

3.2 执行安装操作

# ./mlnxofedinstall

3.3 查看驱动版本信息

# ofed_info -s
MLNX_OFED_LINUX-5.9-0.5.6.0:

3.4 网卡状态

3.4.1 首次安装网卡时,如果未连接到交换机,网卡的状态将如下所示:

./images/scs_gs_image_11.png
(如上图,ib0状态Down(双口卡还有ib1),网卡的SM lid为0,Base lid为65535,Link layer为IB模式)

3.4.2 使用线缆将网卡连接到交换机,大概30秒,端口UP,如下所示:

./images/scs_gs_image_12.png
(如上图,网卡ib0物理状态LinkUp, 逻辑状态Active,子网管理器SM lid为 2,网卡Base lid为 3)

说明:

本案例交换机SB7800已经开启子网管理器功能,交换机端口速率为EDR 100Gb/s,网卡CX5也是 EDR 100Gb/s,由于线缆是FDR 56G,所以上图的Rate:56,并没有达到100

3.4.3 启动opensmd服务(视交换机型号选装)

如果交换机是SB7890或者是其它不带子网管理器功能的交换机(SB7890,SB7790,SX6025,IS5025),必须在服务器上开启子网管理器, 安装好网卡驱动后就可以使用下面命令:

# systemctl start opensmd
# systemctl enable opensmd

3.4.4 网卡运行环境监测

完成以上步骤,使用命令’mlnx_tune’检查,所有状态都正常,则网卡运行环境正常。

# mlnx_tune

4.网卡固件启用SR-IOV功能

4.1 下载Mellanox Management Tools (MFT)工具

下载链接:Mellanox Management Tools (MFT)

4.2 使用Mellanox Firmware Tools包在固件中启用和配置SR-IOV

# mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices

4.2.1 在需要的PCI插槽上找到Connect-IB设备

# mst status
MST modules:
------------
    MST PCI module loaded
    MST PCI configuration module loaded
MST devices:
------------
/dev/mst/mt4115_pciconf0         - PCI configuration cycles access.
...

4.2.2 查询设备状态

# mlxconfig -d /dev/mst/mt4115_pciconf0 q

4.2.3 开启SR-IOV,设置可以切分的vf数量上限

# mlxconfig -d /dev/mst/mt4115_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=8
...
Apply new Configuration? ? (y/n) [n] : y
Applying... Done!
-I- Please reboot machine to load new configurations.

4.2.4 设置网卡的工作模式。

Infiniband卡支持两种工作模式:IB模式和Ethernet模式

# mlxconfig -d /dev/mst/mt4115_pciconf0 q

Configurations:                              Next Boot
         ...         
         LINK_TYPE_P1                        IB(1)    #当前工作模式 IB      
         ...

修改网卡的工作模式:

Ethernet模式: mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2
IB模式: mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=1

重启机器生效

# reboot

此时,通过lspci无法看到vf。只有当SR-IOV在MLNX_OFED驱动上启用时,您才能看到它们。

4.2.5 查看节点物理网卡是否支持SR-IOV

查看所有的pci设备
# lspci -nnn |grep -i mellanox
61:00.0 Infiniband controller [0207]: Mellanox Technologies MT27700 Family [ConnectX-4] [15b3:1013]

查看设备详情
# lspci -vvs <pci-address>
61:00.0 Infiniband controller: Mellanox Technologies MT27700 Family [ConnectX-4]
	...
	Capabilities: [180 v1] Single Root I/O Virtualization (SR-IOV)
		IOVCap:	Migration-, Interrupt Message Number: 000
		IOVCtl:	Enable- Migration- Interrupt- MSE- ARIHierarchy+
		IOVSta:	Migration-
		Initial VFs: 3, Total VFs: 3, Number of VFs: 0, Function Dependency Link: 00
		VF offset: 1, stride: 1, Device ID: 1014
		Supported Page Size: 000007ff, System Page Size: 00000001
		Region 0: Memory at 000005464e000000 (64-bit, prefetchable)
		VF Migration: offset: 00000000, BIR: 0
	Capabilities: [1c0 v1] Secondary PCI Express
		LnkCtl3: LnkEquIntrruptEn- PerformEqu-
		LaneErrStat: 0
	Kernel driver in use: mlx5_core
	Kernel modules: mlx5_core

显示如下代码段,说明固件已启动SR-IOV功能
/doc/SecureContainerService/6.2.1/zh-cn/images/scs_gs_image_13.png

5.在MLNX_OFED驱动上启用SR-IOV

5.1 定位设备(通常为 ‘mlx5_0’)

# ibstat
CA 'mlx5_0'
	CA type: MT4115
	Number of ports: 1
	Firmware version: 12.28.2006
	Hardware version: 0
	Node GUID: 0xe41d2d03006768fa
	System image GUID: 0xe41d2d03006768fa
	Port 1:
		State: Down
		Physical state: Disabled
		Rate: 10
		Base lid: 65535
		LMC: 0
		SM lid: 0
		Capability mask: 0x2650e848
		Port GUID: 0xe41d2d03006768fa
		Link layer: InfiniBand

5.2 获取此设备上的当前vf数

# cat /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs
0

如果命令失败,这可能意味着驱动程序没有加载。

5.3 设置所需的vf数量

# echo 2 > /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs

更改mlx5_num_vfs不是持久的,并且不能在服务器重新启动后继续存在。

5.4 检查PCI总线

# lspci -nnn |grep -i mellanox
61:00.0 Infiniband controller [0207]: Mellanox Technologies MT27700 Family [ConnectX-4] [15b3:1013]
61:00.1 Infiniband controller [0207]: Mellanox Technologies MT27700 Family [ConnectX-4 Virtual Function] [15b3:1014]
61:00.2 Infiniband controller [0207]: Mellanox Technologies MT27700 Family [ConnectX-4 Virtual Function] [15b3:1014]

5.5 恢复vf数量为0

# echo 0 > /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs
此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品