要在 KVM 上启用 SR-IOV 模式,请执行以下步骤。

必备条件

需要特定的网卡。以下芯片组已通过 VMware SD-WAN 认证,可以与 SD-WAN GatewaySD-WAN Edge 一起使用。

  • Intel 82599/82599ES
  • Intel X710/XL710
注: 在 KVM 上以 SR-IOV 模式使用 Intel X710/XL710 卡之前,请确保正确安装了 部署必备条件部分中指定的支持的固件和驱动程序版本。

要在 KVM 上启用 SR-IOV,请执行以下操作:

  1. 在 BIOS 中启用 SR-IOV。这将取决于您的 BIOS。登录到 BIOS 控制台并查找“SR-IOV Support/DMA”。您可以在提示符下检查 Intel 是否具有正确的 CPU 标记以验证支持情况。
    cat /proc/cpuinfo | grep vmx
  2. 在 Bboot 上添加选项(在 /etc/default/grub 中)。
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. 运行以下命令:update-grubupdate-initramfs -u
    2. 重新引导
    3. 确保已启用 iommu。
      velocloud@KVMperf3:~$ dmesg | grep -i IOMMU
       [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.13.0-107-generic root=/dev/mapper/qa--multiboot--002--vg-root ro intel_iommu=on splash quiet vt.handoff=7 
       [ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.13.0-107-generic root=/dev/mapper/qa--multiboot--002--vg-root ro intel_iommu=on splash quiet vt.handoff=7 
       [ 0.000000] Intel-IOMMU: enabled
       ….
       velocloud@KVMperf3:~$ 
  3. 根据使用的网卡芯片组,添加驱动程序,如下所示:
    • 对于处于 SR-IOV 模式的 Intel 82599/82599ES 卡:
      1. Intel 网站中下载并安装 ixgbe 驱动程序。
      2. 配置 ixgbe 配置文件(使用 tar 和 sudo 进行安装)。
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. 如果 ixgbe 配置文件不存在,您必须按以下方式创建该文件。
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. 运行 update-initramfs -u 命令,然后重新引导服务器。
      5. 使用 modinfo 命令验证安装是否成功。
        velocloud@KVMperf1:~$ modinfo ixgbe and ip link
         filename: /lib/modules/4.4.0-62-generic/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
         version: 5.0.4
         license: GPL
         description: Intel(R) 10GbE PCI Express Linux Network Driver
         author: Intel Corporation, <linux.nics@intel.com>
         srcversion: BA7E024DFE57A92C4F1DC93
    • 对于处于 SR-IOV 模式的 Intel X710/XL710 卡:
      1. Intel 网站中下载并安装 i40e 驱动程序。
      2. 创建虚拟功能 (VF)。
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. 要使 VF 在重新引导后成为永久功能,请将上一步中的命令添加到 "/etc/rc.d/rc.local" 文件中。
      4. 将 VF 驱动程序列入黑名单。
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. 运行 update-initramfs -u 命令,然后重新引导服务器。

验证 SR-IOV(可选)

您可以使用以下命令快速验证主机是否启用了 SR-IOV:

lspci | grep -i Ethernet

验证您是否具有虚拟功能:

01:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function(rev 01)