一、节点准备BIOS / 固件开启内核参数# 修改vi /etc/default/grub # Intel 网卡 GRUB_CMDLINE_LINUXintel_iommuon iommuon # Mellanox 网卡 GRUB_CMDLINE_LINUXamd_iommuon iommuon # 更新并重启 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_EN1 NUM_OF_VFS16 LINK_TYPE_P1ETH LINK_TYPE_P2ETH #再开 PCIe 高级功能必须开否则 VF 不工作 mlxconfig -d /dev/mst/mt4123_pciconf0 set ARI_EN1 PCIE_ARI_EN1 ACS_EN1 #保存配置 → 重启机器 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