Pour activer le mode SR-IOV sur KVM, procédez comme suit.

Conditions préalables

Cela nécessite une carte réseau spécifique. Les chipsets suivants sont certifiés par VMware pour être compatibles avec SD-WAN Gateway et SD-WAN Edge.

  • Intel 82599/82599ES
  • Intel X710/XL710
Note : Avant d'utiliser les cartes Intel X710/XL710 en mode SR-IOV sur KVM, vérifiez que les versions de microprogrammes et de pilotes prises en charge spécifiées dans la section Conditions préalables au déploiement sont installées correctement.
Note : Le mode SR-IOV n'est pas pris en charge si le dispositif Edge virtuel KVM est déployé avec une topologie haute disponibilité. Pour les déploiements à haute disponibilité, assurez-vous que SR-IOV n'est pas activé pour cette paire de dispositifs Edge KVM.

Pour activer SR-IOV sur KVM :

  1. Activez SR-IOV dans le BIOS. Cette opération dépend de votre BIOS. Connectez-vous à la console du BIOS et recherchez la prise en charge/l'accès direct à la mémoire (DMA, Direct Memory Access) SR-IOV. Vous pouvez vérifier la prise en charge à l'invite en vérifiant qu'Intel dispose de l'indicateur de CPU approprié.
    cat /proc/cpuinfo | grep vmx
  2. Ajoutez les options sur Bboot (dans /etc/default/grub).
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Exécutez les commandes suivantes : update-grub et update-initramfs -u.
    2. Redémarrage (Reboot)
    3. Vérifiez que l'unité de gestion de mémoire des entrées/sorties (IOMMU, Input/Output Memory Management Unit) est activée.
      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. En fonction du chipset de la carte réseau utilisé, ajoutez un pilote comme suit :
    • Pour les cartes Intel 82599/82599ES en mode SR-IOV :
      1. Téléchargez et installez le pilote ixgbe sur le site Web Intel.
      2. Définissez le fichier de configuration ixgbe (tar et sudo make install).
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. Si le fichier de configuration ixgbe n'existe pas. Vous devez créer le fichier comme suit.
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. Exécutez la commande update-initramfs -u et redémarrez le serveur.
      5. Utilisez la commande modinfo pour vérifier si l'installation a réussi.
        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
    • Pour les cartes Intel X710/XL710 en mode SR-IOV :
      1. Téléchargez et installez le pilote i40e sur le site Web Intel.
      2. Créez les fonctions virtuelles (VF).
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. Pour rendre les fonctions virtuelles persistantes après un redémarrage, ajoutez la commande de l'étape précédente au fichier "/etc/rc.d/rc.local".
      4. Désactivez le pilote VF.
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. Exécutez la commande update-initramfs -u et redémarrez le serveur.

Validation de SR-IOV (facultatif)

Vous pouvez vérifier rapidement si SR-IOV est activé sur votre machine hôte à l'aide de la commande suivante :

lspci | grep -i Ethernet

Vérifiez que vous disposez de fonctions virtuelles :

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