一、节点准备
# 修改vi /etc/default/grub # Intel 网卡 GRUB_CMDLINE_LINUX="intel_iommu=on iommu=on" # Mellanox 网卡 GRUB_CMDLINE_LINUX="amd_iommu=on iommu=on" # 更新并重启 update-grub # CentOS 用 grub2-mkconfig -o /boot/grub2/grub.cfg reboot
modprobe vfio-pci modprobe i40e # Intel XL710/X710 modprobe ice # Intel E810 modprobe mlx5_core # Mellanox #验证是否都加载成功 lsmod | grep -E 'vfio|mlx5|i40e|ice'
- 确认 Mellanox 工具,开始IB卡切换为ETH模式
apt install mstflint -y mst start mst status #确认你的 IB 网卡是哪一个 /dev/mst/mt4123_pciconf0 #以下命令做了四件事 #打开网卡固件级 SR-IOV #设置最多 16 个 VF(足够 K8s 用) #Port 1 从 IB → 切以太网 ETH #Port 2 从 IB → 切以太网 ETH mlxconfig -d /dev/mst/mt4123_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=16 LINK_TYPE_P1=ETH LINK_TYPE_P2=ETH #再开 PCIe 高级功能(必须开,否则 VF 不工作) mlxconfig -d /dev/mst/mt4123_pciconf0 set ARI_EN=1 PCIE_ARI_EN=1 ACS_EN=1 #保存配置 → 重启机器 reboot #重启后IB卡变成以太网卡 for dev in ens8f0np0 ens8f1np1; do echo -n "【$dev】最大VF数: " cat /sys/class/net/$dev/device/sriov_totalvfs 2>/dev/null done 【ens8f0np0】最大VF数: 16 【ens8f1np1】最大VF数: 16