Führen Sie die folgenden Schritte aus, um den SR-IOV-Modus auf KVM zu aktivieren.

Voraussetzungen

Eine bestimmte Netzwerkkarte ist erforderlich. Die folgenden Chipsätze werden von VMware für die Verwendung mit dem SD-WAN Gateway und SD-WAN Edge zertifiziert.

  • Intel 82599/82599ES
  • Intel X710/XL710
Hinweis: Stellen Sie vor der Verwendung der Intel X710/XL710-Karten im SR-IOV-Modus auf KVM sicher, dass die unterstützten Firmware- und Treiber-Versionen, die im Abschnitt Bereitstellungsvoraussetzungen angegeben werden, ordnungsgemäß installiert sind.
Hinweis: Der SR-IOV-Modus wird nicht unterstützt, wenn der virtuelle KVM-Edge mit einer Hochverfügbarkeitstopologie bereitgestellt wird. Stellen Sie für Hochverfügbarkeitsbereitstellungen sicher, dass SR-IOV für dieses KVM-Edge-Paar nicht aktiviert ist.

So aktivieren Sie SR-IOV auf KVM:

  1. Aktivieren Sie SR-IOV im BIOS. Dies hängt von Ihrem BIOS ab. Melden Sie sich bei der BIOS-Konsole an und suchen Sie nach SR-IOV-Unterstützung/DMA. Sie können die Unterstützung an der Eingabeaufforderung überprüfen, indem Sie sicherstellen, dass Intel das korrekte CPU-Flag verwendet.
    cat /proc/cpuinfo | grep vmx
  2. Fügen Sie die Optionen in Bboot (in /etc/default/grub) hinzu.
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Führen Sie folgende Befehle aus: update-grub und update-initramfs -u.
    2. Neustarten
    3. Stellen Sie sicher, dass IOMMU aktiviert ist.
      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. Fügen Sie einen Treiber basierend auf dem verwendeten NIC-Chipsatz folgendermaßen hinzu:
    • Für Karten vom Typ Intel 82599/82599ES im SR-IOV-Modus:
      1. Laden Sie den ixgbe-Treiber von der Intel-Website herunter und installieren Sie ihn.
      2. Konfigurieren Sie die ixgbe-Datei (tar- und sudo-Installation).
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. Wenn die ixgbe-Konfigurationsdatei nicht vorhanden ist, müssen Sie die Datei wie folgt erstellen.
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. Führen Sie den Befehl update-initramfs -u aus und starten Sie den Server neu.
      5. Verwenden Sie den Befehl modinfo, um sicherzustellen, dass die Installation erfolgreich verlaufen ist.
        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
    • Für Karten vom Typ Intel X710/XL710 im SR-IOV-Modus:
      1. Laden Sie den i40e-Treiber von der Intel-Website herunter und installieren Sie ihn.
      2. Erstellen Sie die virtuellen Funktionen (VFs).
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. Um die VFs nach dem Neustart dauerhaft zu übernehmen, fügen Sie den Befehl aus dem vorherigen Schritt zur Datei "/etc/rc.d/rc.local" hinzu.
      4. Deaktivieren Sie den VF-Treiber.
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. Führen Sie den Befehl update-initramfs -u aus und starten Sie den Server neu.

Validieren von SR-IOV (optional)

Sie können schnell feststellen, ob SR-IOV auf der Hostmaschine aktiviert ist, indem Sie folgenden Befehl ausführen:

lspci | grep -i Ethernet

Überprüfen Sie, ob virtuelle Funktionen verfügbar sind:

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