Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemplo: habilitar o SR-IOV em instâncias vMX no KVM

O vMX no KVM oferece suporte a tipos de interface de virtualização de E/S de raiz única (SR-IOV). A virtualização de E/S de raiz única (SR-IOV) permite que uma função física apareçam como vNICs múltiplos e separados. O SR-IOV permite que um dispositivo, como um adaptador de rede, tenha acesso separado aos seus recursos entre várias funções de hardware. Se você tiver uma NIC física que ofereça suporte ao SR-IOV, você pode anexar vNICs habilitados para SR-IOV ou funções virtuais (VFs) à instância vMX para melhorar o desempenho.

Requisitos do sistema:

  • Junos OS Versão 18.4 ou posterior.

  • O SR-IOV no VMX para KVM requer um dos seguintes drivers intel NIC:

    • Intel X520 ou X540 usando portas 10G e driver ixgbe

    • Intel X710 ou XL710 usando portas 10G e driver i40e

    A partir do Junos OS Release 19.1R1-S1 e do Junos OS Release 19.2R1, o suporte para portas 40G com NICs Intel XL710-QDA2 está disponível para instâncias VMX. Ao usar portas 40G, o vMX automatiza a velocidade da porta e atribui duas vCPUs de E/S.

Para habilitar o SR-IOV em instâncias VMX, você deve concluir as seguintes tarefas:

  • Prepare uma NIC para usar o modo SR-IOV no sistema (/sys/)

  • Instale o driver da Intel, você deve compilar o driver, desinstalar o driver antigo e instalar um novo driver compilado

    Nota:

    O instalador vMX também oferece um controlador de inteligência modificado. Você pode usar os drivers nativos da Intel ou usar o driver modificado vMX.

  • Prepare o arquivo vmx.conf

  • Use o Junos CLI para configurar o driver nativo

  • Requisito de BIOS para habilitar o SR-IOV- Garanta que o Intel VT-d ou o AMD IOMMU sejam habilitados nas configurações de BIOS do sistema.

Procedimento para identificar endereços PCI e nome do kernel para a NIC

  1. Para encontrar o endereço PCI, use o seguinte comando:
  2. Para encontrar o nome do kernel usando PCI, use o seguinte comando:
  3. Para descobrir o driver em uso para a NIC, use o seguinte comando:

Baixe e instale o software de driver mais recente da Intel

Você pode baixar o software de driver mais recente da Intel e substituir o software de driver existente fornecido pelo Ubuntu.

Neste exemplo, baixe o software do Adaptador de rede Intel® para PCIe* Conexões de rede Ethernet Intel® 10 Gigabit sob Linux e reserve-o em qualquer diretório de sua escolha e siga as instruções do README para seguir a seguir.

Para instalar software de driver a partir da Intel:

  1. Instale o software do driver.
  2. Desinstale o driver antigo e carregue o driver atualizado usando o rmmod/modprobe comando.
    Aviso:

    O comando rmmod desinstala o driver 10GE. Se esta for a única interface à qual você está conectado, o acesso ao host será perdido.

  3. Verifique se o novo driver está instalado corretamente.

Prepare a NIC para usar o SR-IOV no modo sistema

O host precisa ser informado para cada NIC dedicado definindo o sriov_numvfs valor, quantos VFs usarão SR-IOV para a determinada NIC. O script vmx.sh não tem informações de quantos VFs usarão a NIC compartilhada. Por causa disso, você deve configurar o sriov_numvfs de acordo.

Esse valor pode ser definido como uma opção de inicialização para ser persistente após uma reinicialização e pode ser alterado em tempo real, o que não seria persistente após uma reinicialização.

O procedimento dado neste exemplo é uma solução temporária para configurar sriov_numvfs usando /sys Qualquer configuração para /sys/class/net/interface-name/dispositivo/sriov_numvfs não é permanente, portanto a configuração não sobrevive a uma reinicialização.

Para preparar a NIC para usar o SR-IOV, preencha as seguintes etapas:

Crie uma função virtual (VF) usando o seguinte comando:

O comando abaixo permite que 4 VNFs usem NIC compartilhado ens8f1 para SR-IOV. Você deve usar o sudo ou precisar de login como usuário raiz.

Nota:

A opção sriov_numvfs só aceita valores de 0-n, onde n é o número máximo de VFs que são suportados pelo SR-IOV.

Configuração do SR-IOV no boot-time

Os procedimentos a seguir fornecem alguns métodos alternativos para configurar o SR-IOV, onde a configuração persiste em uma reinicialização do host.

Estão disponíveis opções a seguir para definir o valor durante o processo de inicialização do host:

  • Usando rc.local

  • Configuração de opções de modprobe

  • Configuração do kernel-paramater usando o kernel

Abaixo, exemplo mostra um método para configurar o valor usando o sriov_numvfs comando kernel de kernel

Você deve definir "intel_iommu=on" e ixgbe.max_vfs= value

Para obter mais informações sobre páginas enormes, consulte Prepare o host do Ubuntu para instalar o vMX.

Edite o arquivo "/etc/default/grub":

Após a edição, atualize o seguinte:

Escreva um novo boot-loader para tornar as mudanças ativas na próxima reinicialização.

Reinicialize o host para ativar as configurações.

Verifique sriov_numvfs configurações

Propósito

Para verificar a sriov_numvfs configuração usando a CLI. Neste exemplo, a NIC necessária para usar com SR-IOV é ens8f1 no endereço PCI 85:00.0. Observe a "Função Virtual" na saída.

Ação

O /sys/class/net/ens8f1/device/sriov_numvfs também contém o valor desejado de sriov_numvfs.

Para testes, a sriov_numvfs pode ser alterada rapidamente escrevendo diretamente em /sys/class/net/interface-name/device/sriov_numvfs.

Mudando o número de sriov_numvfs

Recomendamos a criação de sriov_numvfs com antecedência (exemplo: usando o comando de grub no boot-time), porque a alteração do número do VF não é permitida após a implantação da 1ª instância vMX que usa a NIC com SR-IOV. Se você precisa alterar o número do VF, então você deve parar o vMX em execução. Recomendamos definir a opção sriov_numvfs a um valor mais alto para evitar alterar o número de sriov_numvfs depois.

Para alterar um valor já configurado de VFs, você deve primeiro alterá-lo como 0 e depois alterá-lo para um valor inteiro necessário.

Se não houver VFs atribuídos, o número de VFs pode ser alterado para qualquer valor válido (0 - n, onde n é o número máximo de VFs suportados pelo SR-IOV)

Você deve executar as seguintes etapas para modificar o número de VFs:

  1. Pare de executar VNFs usando o NIC SR-IOV compartilhado.

  2. Desativar o adaptador de rede SR-IOV definindo o número de Functors Virtuais (VFs) para 0.

  3. Altere o número necessário de VF (você está usando seis neste exemplo)

    Nota:

    Se você vir a mensagem de erro a seguir, primeiro defina o valor para zero, conforme descrito na etapa 2 antes de realizar a etapa 3

  4. Verifique sua configuração usando o seguinte comando:

Antes de reiniciar o vMX, adote o arquivo vmx.conf para uso do SR-IOV.

Atualização dos parâmetros do arquivo de configuração VMX (vmx.conf)

Os parâmetros necessários para configurar o vMX são definidos no arquivo de configuração da startup. O arquivo de configuração está no formato YAML. O arquivo padrão é config/vmx.conf. Você pode salvar seu arquivo de configuração para um nome diferente para diferentes instâncias.

Para configurar interfaces para tipos de dispositivo SR-IOV, você deve especificar a interface, a NIC e o endereço MAC. A Tabela 1 fornece os detalhes dos parâmetros de configuração que estamos usando para alterar o arquivo vmx.conf.

Tabela 1: Parâmetros de arquivo de configuração VMX

Componentes

Parâmetros de VM

Descrição

vPFE

device-type

Use sriov todas as interfaces usando o SR-IOV ou use mixed para permitir a mistura de interfaces baseadas em SR-IOV e não SR-IOV.

use_native_drivers

Definido para true permitir o uso do driver Intel ixgbe do host (que foi baixado e cumprido em etapas acima)

Interfaces

type

Se o tipo for definido para sriov, então port-speed-mbps , e nic deve ser definido.

port-speed-mbps

Configurá-lo para 10000 10GE NIC.

nic

O nome do kernel para a interface usar.

virtual-function

Definir para a 0 primeira instância vMX usando este NIC. Garanta a configuração para 1 o 2º vMX usando esta NIC compartilhada (e assim por diante)

mac-address

Garanta que cada instância VF usando a NIC compartilhada esteja usando um endereço MAC único ou diferente.

Um arquivo vmx.conf amostra:

Inicie a instalação do vmx

Mudanças necessárias para o uso do driver Intel ixgbe

Quando você tenta mover uma implantação existente do driver IXGBE modificado para o driver IXGBE não modificado, entre em modo de edição no Junos CLI e use o seguinte comando ao usar drivers "nativos".

Para obter mais informações, consulte o Driver IXGBE modificado e não modificado.