Para habilitar el modo SR-IOV en KVM, realice los siguientes pasos.

Requisitos previos

Esto requiere una tarjeta NIC específica. Los siguientes conjuntos de chips están certificados por VMware para trabajar con SD-WAN Gateway y SD-WAN Edge.

  • Intel 82599/82599ES
  • Intel X710/XL710
Nota: Antes de usar las tarjetas X710/XL710 de Intel en el modo SR-IOV en KVM, asegúrese de que estén instaladas correctamente las versiones de firmware y de controladores compatibles especificadas en la sección Requisitos previos de implementación.
Nota: El modo SR-IOV no se admite si se implementa Virtual Edge de KVM con una topología de alta disponibilidad. Para las implementaciones de alta disponibilidad; asegúrese de que SR-IOV no esté habilitado para ese par de Edge de KVM.

Para habilitar SR-IOV en KVM:

  1. Habilite SR-IOV en el BIOS. Esto dependerá del BIOS. Inicie sesión en la consola del BIOS y busque compatibilidad con SR-IOV y DMA. Puede verificar la compatibilidad de la solicitud si comprueba que Intel tiene la marca de CPU correcta.
    cat /proc/cpuinfo | grep vmx
  2. Agregue las opciones en Bboot (en /etc/default/grub).
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Ejecute los siguientes comandos: update-grub y update-initramfs -u.
    2. Reiniciar (Reboot)
    3. Asegúrese de que la IOMMU esté habilitada.
      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. Según el conjunto de chips de NIC utilizado, agregue un controlador de la siguiente manera:
    • Para las tarjetas Intel 82599/82599ES en el modo SR-IOV:
      1. Descargue e instale el controlador ixgbe en el sitio web de Intel.
      2. Configure ixgbe config (tar y sudo make install).
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. Si el archivo ixgbe config no existe, deberá crearlo de la siguiente manera.
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. Ejecute el comando update-initramfs -u y reinicie el servidor.
      5. Utilice el comando modinfo para comprobar si la instalación se realizó correctamente.
        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, <[email protected]>
         srcversion: BA7E024DFE57A92C4F1DC93
    • Para las tarjetas Intel X710/XL710 en el modo SR-IOV:
      1. Descargue e instale el controlador i40e en el sitio web de Intel.
      2. Cree las funciones virtuales (Virtual Functions, VF).
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. Para que las VF sean persistentes después de un reinicio, agregue el comando del paso anterior al archivo "/etc/rc.d/rc.local".
      4. Desactive el controlador de VF.
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. Ejecute el comando update-initramfs -u y reinicie el servidor.

Validación de SR-IOV (opcional)

Puede comprobar rápidamente si su máquina host tiene SR-IOV habilitado mediante el siguiente comando:

lspci | grep -i Ethernet

Compruebe si tiene funciones virtuales:

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