Per abilitare la modalità SR-IOV in KVM, eseguire i passaggi seguenti.

Prerequisiti

Questa operazione richiede una scheda NIC specifica. I seguenti chipset sono certificati da VMware per l'utilizzo con SD-WAN Gateway e SD-WAN Edge.

  • Intel 82599/82599ES
  • Intel X710/XL710
Nota: Prima di utilizzare le schede Intel X710/XL710 in modalità SR-IOV in KVM, verificare che le versioni supportate di firmware e driver specificate nella sezione Prerequisiti di distribuzione siano installate correttamente.
Nota: La modalità SR-IOV non è supportata se l'Edge virtuale KVM viene distribuito con una topologia ad alta disponibilità. Per le distribuzioni ad alta disponibilità, assicurarsi che SR-IOV non sia abilitato per la coppia di Edge KVM.

Per abilitare SR-IOV in KVM:

  1. Abilitare SR-IOV nel BIOS. Questa operazione dipende dal BIOS. Accedere alla console del BIOS e cercare SR-IOV Support/DMA. È possibile verificare il supporto nel prompt controllando che Intel abbia il flag di CPU corretto.
    cat /proc/cpuinfo | grep vmx
  2. Aggiungere le opzioni in Bboot (in /etc/default/grub).
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Eseguire i seguenti comandi: update-grub e update-initramfs -u.
    2. Riavvia (Reboot)
    3. Assicurarsi che IOMMU sia abilitato.
      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. In base al chipset NIC utilizzato, aggiungere un driver come indicato di seguito:
    • Per le schede Intel 82599/82599ES in modalità SR-IOV:
      1. Scaricare e installare il driver ixgbe dal sito Web Intel.
      2. Configurare il file di configurazione di ixgbe (tar e sudo consentono di eseguire l'installazione).
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. Se il file di configurazione di ixgbe non esiste, è necessario creare il file come indicato di seguito.
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. Eseguire il comando update-initramfs -u e riavviare il server.
      5. Utilizzare il comando modinfo per verificare se l'installazione è stata eseguita correttamente.
        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
    • Per le schede Intel X710/XL710 in modalità SR-IOV:
      1. Scaricare e installare il driver i40e dal sito Web Intel.
      2. Creare le funzioni virtuali.
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. Per rendere persistenti le funzioni virtuali dopo un riavvio, aggiungere il comando dal passaggio precedente al file "/etc/rc.d/rc.local".
      4. Disattivare il driver VF.
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. Eseguire il comando update-initramfs -u e riavviare il server.

Convalida di SR-IOV (facoltativa)

È possibile verificare rapidamente se nella macchina host è abilitato SR-IOV utilizzando il comando seguente:

lspci | grep -i Ethernet

Verificare di disporre delle funzioni virtuali:

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