IB卡型号: MT27500
1.BIOS里开启SRIOV,CPU开启VT以及安装网卡对应的驱动等过程略
2.修改启动菜单参数
执行命令vi /etc/default/grub,按“i”进入编辑模式,在linuxefi行后添加启动参数“intel_iommu=on iommu=pt pci=assign-busses pci=realloc”。
添加完参数之后的启动参数如下:
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt pci=assign-busses pci=realloc"
修改完后重新生成启动菜单文件:grub2-mkconfig >/boot/efi/EFI/centos/grub.cfg
注意:启动方式为UEFI时, 生成grub.cfg的路径是 /boot/efi/EFI/centos/grub.cfg
在非UEFI启动里的启动菜单路径在 /boot/grub2/grub.cfg
检查上述修改是否生效:cat /boot/efi/EFI/centos/grub.cfg 查看是否有 intel_iommu 几个参数
4. 修改完以上参数后,重启一下服务器。
IB卡配置官方参照页面:
HowTo Configure SR-IOV for ConnectX-3 with KVM (InfiniBand) (mellanox.com)
5. 配置
5.1打开固件的SRIOV功能
# mst start 启动 mst
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
# mst status 查看所有ib卡状态
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:5e: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:5e:00.0 bar=0xc5e00000 size=0x100000
Chip revision is: 01
查看IB卡MT27500这张卡的配置,MT27500对应的是mt4099,
# mlxconfig -d /dev/mst/mt4099_pciconf0 q
Device #1:
----------
Device type: ConnectX3
Device: /dev/mst/mt4099_pciconf0
Configurations: Next Boot
SRIOV_EN False(0)
NUM_OF_VFS 0
LINK_TYPE_P1 VPI(3)
LINK_TYPE_P2 VPI(3)
LOG_BAR_SIZE 3
BOOT_PKEY_P1 0
BOOT_PKEY_P2 0
BOOT_OPTION_ROM_EN_P1 True(1)
BOOT_VLAN_EN_P1 False(0)
BOOT_RETRY_CNT_P1 0
LEGACY_BOOT_PROTOCOL_P1 PXE(1)
BOOT_VLAN_P1 1
BOOT_OPTION_ROM_EN_P2 True(1)
BOOT_VLAN_EN_P2 False(0)
BOOT_RETRY_CNT_P2 0
LEGACY_BOOT_PROTOCOL_P2 PXE(1)
BOOT_VLAN_P2 1
IP_VER_P1 IPv4(0)
IP_VER_P2 IPv4(0)
CQ_TIMESTAMP True(1)
# mlxconfig -d /dev/mst/mt4099_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=8 //注意 mt4099会根据不同型号IB卡有所不同
设置完后可以用上面的一条带 q 参数的指令查看。
8. 重启服务器
9. 打开MLNX_OFED驱动的SRIOV配置
#ibstat 查看ib设备状态,一般ConnectX-3 型号IB卡的驱动核心是 mlx4_0
创建或编辑 vi /etc/modprobe.d/mlx4_core.conf,写入以下内容:
options mlx4_core num_vfs=4 port_type_array=1 probe_vf=4(仅第1个port虚拟4张卡)
options mlx4_core num_vfs=4,4,0 port_type_array=1,1 probe_vf=4,4,0 log_num_mgm_entry_size=-1(2port,每个port虚拟出4张卡,注:笔者该方法并未成功)
# modinfo mlx4_core |grep -i vfs 该指令可查看mlx4_core的options配置方法
更多配置请参照 HowTo Configure SR-IOV VFs on Different ConnectX-3 Ports (mellanox.com)
重新加载ib卡驱动(重启IB卡)
# /etc/init.d/openibd restart
10. 查看是否有虚拟IB卡创建成功
# lspci|grep -i "virtual function"