Para ativar o modo SR-IOV no KVM, execute os seguintes passos.

Pré-requisitos

Requer um cartão NIC específico. Os chipsets seguintes são certificados pelo VMware para funcionarem com o SD-WAN Gateway e o SD-WAN Edge.

  • Intel 82599/82599ES
  • Intel X710/XL710
Nota: Antes de utilizar os cartões Intel X710/XL710 no modo SR-IOV no KVM, certifique-se de que as versões do firmware e do controlador suportadas especificadas na secção Pré-requisitos de implementação são instaladas corretamente.
Nota: O modo SR-IOV não é suportado se o Edge Virtual KVM estiver implementado com uma topologia de alta disponibilidade. Para implementações de alta disponibilidade, certifique-se de que o SR-IOV não está ativado para o par de Edges KVM.

Para ativar o SR-IOV no KVM:

  1. Ative o SR-IOV no BIOS. Isto dependerá do BIOS. Inicie sessão na consola BIOS e procure o suporte SR-IOV/DMA. Pode verificar o suporte na solicitação verificando se a Intel tem a sinalização correta da CPU.
    cat /proc/cpuinfo | grep vmx
  2. Adicione as opções em Bboot (em /etc/default/grub).
    GRUB_CMDLINE_LINUX="intel_iommu=on"
    1. Execute os seguintes comandos: update-grub e update-initramfs -u.
    2. Reiniciar (Reboot)
    3. Certifique-se de que iommu está ativado.
      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. Com base no chipset NIC utilizado, adicione um controlador da seguinte forma:
    • Para os cartões Intel 82599/82599ES no modo SR-IOV:
      1. Transfira e instale o controlador ixgbe a partir do site da Intel.
      2. Configure ixgbe config (tar e sudo tratam da instalação).
        velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf
      3. Se o ficheiro ixgbe config não existir, terá de criar o ficheiro da seguinte forma.
        options ixgbe max_vfs=32,32
        options ixgbe allow_unsupported_sfp=1
        options ixgbe MDD=0,0
        blacklist ixgbevf
      4. Execute o comando update-initramfs -u e reinicie o servidor.
      5. Utilize o comando modinfo para verificar se a instalação foi bem-sucedida.
        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 os cartões Intel X710/XL710 no modo SR-IOV:
      1. Transfira e instale o controlador i40e a partir do site da Intel.
      2. Crie as funções virtuais (VFs).
        echo 4 > /sys/class/net/device name/device/sriov_numvfs
      3. Para tornar as VFs persistentes após uma reinicialização, adicione o comando do passo anterior ao ficheiro "/etc/rc.d/rc.local".
      4. Desative o controlador da VF.
        echo “blacklist i40evf” >> /etc/modprobe.d/blacklist.conf
      5. Execute o comando update-initramfs -u e reinicie o servidor.

Validação de SR-IOV (opcional)

Pode verificar rapidamente se computador anfitrião tem o SR-IOV ativado utilizando o seguinte comando:

lspci | grep -i Ethernet

Verifique se tem funções virtuais:

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