Για να ενεργοποιήσετε τη λειτουργία SR-IOV στο KVM, εκτελέστε τα ακόλουθα βήματα.

Προϋποθέσεις

Αυτό απαιτεί μια συγκεκριμένη κάρτα NIC. Τα ακόλουθα chipset έχουν πιστοποιηθεί από την VMware ότι λειτουργούν με την Πύλη SD-WAN και το SD-WAN Edge.

  • Intel 82599/82599ES
  • Intel X710/XL710
Σημείωση: Πριν χρησιμοποιήσετε τις κάρτες Intel X710/XL710 σε λειτουργία SR-IOV σε KVM, βεβαιωθείτε ότι οι υποστηριζόμενες εκδόσεις υλικολογισμικού και προγράμματος οδήγησης που καθορίζονται στην ενότητα Προϋποθέσεις ανάπτυξης είναι σωστά εγκατεστημένες.
Σημείωση: Η λειτουργία SR-IOV δεν υποστηρίζεται, εάν το εικονικό Edge KVM αναπτυχθεί με τοπολογία υψηλής διαθεσιμότητας. Για αναπτύξεις υψηλής διαθεσιμότητας, βεβαιωθείτε ότι το SR-IOV δεν είναι ενεργοποιημένο για το συγκεκριμένο ζεύγος KVM Edge.

Για να ενεργοποιήσετε το SR-IOV στο KVM:

  1. Ενεργοποιήστε το SR-IOV στο BIOS. Αυτό θα εξαρτηθεί από το BIOS σας. Συνδεθείτε στην κονσόλα BIOS και αναζητήστε την υποστήριξη SR-IOV /DMA. Μπορείτε να επαληθεύσετε την υποστήριξη στην ερώτηση ελέγχοντας ότι η Intel έχει τη σωστή σημαία CPU.
    cat /proc/cpuinfo | grep vmx
  2. Προσθέστε τις επιλογές στο Bboot (στη διαδρομή /etc/default/grub).
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Εκτελέστε τις ακόλουθες εντολές: update-grub και update-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. Με βάση το chipset NIC που χρησιμοποιείται, προσθέστε ένα πρόγραμμα οδήγησης ως εξής:
    • Για τις κάρτες Intel 82599/82599ES σε λειτουργία SR-IOV:
      1. Κάντε λήψη και εγκατάσταση του προγράμματος οδήγησης ixgbe από την τοποθεσία web της Intel.
      2. Διαμορφώστε το ixgbe (εγκατάσταση tar και sudo make).
        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, <[email protected]>
         srcversion: BA7E024DFE57A92C4F1DC93
    • Για τις κάρτες Intel X710/XL710 σε λειτουργία SR-IOV:
      1. Κάντε λήψη και εγκατάσταση του προγράμματος οδήγησης i40e από την τοποθεσία web της Intel.
      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)