Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ejemplo: Habilitación de SR-IOV en instancias de vMX en KVM

El vMX en KVM admite tipos de interfaz de virtualización de E/S de raíz única (SR-IOV). La virtualización de E/S de una sola raíz (SR-IOV) permite que una función física aparezca como varios vNIC independientes. SR-IOV permite que un dispositivo, como un adaptador de red, tenga acceso independiente a sus recursos entre varias funciones de hardware. Si tiene una NIC física compatible con SR-IOV, puede adjuntar vNICs o funciones virtuales (VF) habilitados para SR-IOV a la instancia de vMX para mejorar el rendimiento.

Requisitos del sistema:

  • Junos OS versión 18.4 o posterior.

  • SR-IOV en el VMX para KVM requiere uno de los siguientes controladores NIC Intel:

    • Intel X520 o X540 con puertos de 10 G y controlador ixgbe

    • Intel X710 o XL710 con puertos 10G y controlador i40e

    A partir de Junos OS versión 19.1R1-S1 y junos OS versión 19.2R1, la compatibilidad con puertos 40G con NIC Intel XL710-QDA2 está disponible para instancias de VMX. Cuando se utilizan puertos 40G, el vMX detecta automáticamente la velocidad del puerto y asigna dos vCPU de E/S.

Para habilitar SR-IOV en instancias de VMX, debe completar las siguientes tareas:

  • Prepare una NIC para usar SR-IOV en modo sistema (/sys/).

  • Instalar controlador de Intel, debe compilar el controlador, desinstalar el controlador antiguo e instalar el nuevo controlador compilado

    Nota:

    El instalador de vMX también proporciona un controlador intel modificado. Puede usar los controladores nativos de Intel o el controlador modificado del vMX.

  • Preparar el archivo vmx.conf

  • Usar la CLI de Junos para configurar el controlador nativo

  • Requisito del BIOS para habilitar el SR-IOV: asegúrese de que Intel VT-d o AMD IOMMU estén habilitados en la configuración del BIOS del sistema.

Procedimiento para identificar direcciones PCI y nombre de kernel para la NIC

  1. Para encontrar la dirección PCI, utilice el siguiente comando:
  2. Para encontrar el nombre del kernel mediante PCI, utilice el siguiente comando:
  3. Para averiguar el controlador en uso para la NIC, utilice el siguiente comando:

Descargue e instale el software de controlador más reciente de Intel

Puede descargar el software de controlador más reciente de Intel y reemplazar el software de controlador existente proporcionado por Ubuntu.

En este ejemplo, descargue el software del controlador de adaptador de red Intel® para PCIe* Conexiones de red Intel® 10 Gigabit Ethernet en Linux y guárdlo en cualquier directorio de su elección y siga las instrucciones de README para continuar.

Para instalar el software del controlador desde Intel:

  1. Instale el software del controlador.
  2. Desinstale el controlador antiguo y cargue el controlador actualizado mediante el rmmodcomando /modprobe .
    Advertencia:

    El comando rmmod desinstala el controlador 10GE. Si esta es la única interfaz a la que está conectado, se perderá el acceso al host.

  3. Compruebe si el nuevo controlador está instalado correctamente.

Preparación de la NIC para usar SR-IOV en modo sistema

El host debe estar informado para cada NIC dedicada estableciendo el sriov_numvfs valor, cuántos VF usarán SR-IOV para la NIC dada. El vmx.sh script no tiene información de cuántos VF usarán la NIC compartida. Debido a esto, debe configurar la sriov_numvfs opción correspondiente.

Este valor se puede establecer como una opción de arranque persistente después de un reinicio y se puede cambiar sobre la marcha, lo que no sería persistente después de un reinicio.

El procedimiento que se da en este ejemplo es una solución temporal para configurar sriov_numvfs mediante /sys Cualquier configuración de /sys/class/net/interface-name/device/sriov_numvfs no es permanente, por lo tanto, la configuración no puede sobrevivir a un reinicio.

Para preparar la NIC para usar SR-IOV, complete los siguientes pasos:

Cree una función virtual (VF) con el siguiente comando:

El comando a continuación permite que 4 VNF usen NIC compartida ens8f1 para SR-IOV. Debe usar sudo o necesita iniciar sesión como usuario raíz.

Nota:

La sriov_numvfs opción solo acepta valores 0-n, donde n es el número máximo de VF compatibles con el SR-IOV.

Configuración de SR-IOV en tiempo de arranque

Los procedimientos siguientes proporcionan algunos métodos alternativos para configurar SR-IOV en los que la configuración persiste un reinicio del host.

Las siguientes opciones están disponibles para establecer el valor durante el proceso de arranque del host:

  • Uso de rc.local

  • Configuración de opciones de modprobe

  • Establecer kernel-paramater mediante grub

A continuación, se muestra un método para configurar el valor mediante el sriov_numvfs comando grub kernel

Debe establecer "intel_iommu=on" y ixgbe.max_vfs= value

Para obtener más información sobre enormes páginas, consulte Preparación del host de Ubuntu para instalar vMX.

Edite el archivo "/etc/default/grub":

Después de la edición, actualice lo siguiente:

Escriba el cargador de arranque nuevo para activar los cambios durante el próximo reinicio.

Reinicie el host para activar la configuración.

Verificar la configuración sriov_numvfs

Propósito

Para comprobar la sriov_numvfs configuración mediante la CLI. En este ejemplo, la NIC necesaria para usar con SR-IOV es ens8f1 en la dirección PCI 85:00.0. Tenga en cuenta la "función virtual" en la salida.

Acción

El /sys/class/net/ens8f1/device/sriov_numvfs también contiene el valor deseado de sriov_numvfs.

En el caso de las pruebas, el sriov_numvfs se puede cambiar rápidamente escribiendo directamente en /sys/class/net/interface-name/device/sriov_numvfs.

Cambiar la cantidad de sriov_numvfs

Recomendamos crear sriov_numvfs de antemano (por ejemplo, mediante el uso del comando grub en tiempo de arranque), ya que no se permite cambiar el número de VF después de implementar la primera instancia de vMX que usa NIC dada con SR-IOV. Si debe cambiar el número del VF, debe detener el vMX en ejecución. Recomendamos establecer la opción de sriov_numvfs en un valor más alto para evitar cambiar el número de sriov_numvfs después.

Para cambiar un valor ya configurado de VF, primero debe cambiar su valor como 0 y, luego, cambiarlo al valor entero necesario.

Si no se asignan VF, el número de VF se puede cambiar a cualquier valor válido (0 - n, donde n es la cantidad máxima de VF compatibles con el SR-IOV)

Debe realizar los siguientes pasos para modificar el número de VF:

  1. Deje de ejecutar VNF mediante la NIC SR-IOV compartida.

  2. Desactive el adaptador de red SR-IOV estableciendo el número de functores virtuales (VF) en 0.

  3. Cambie el número necesario de VF (está usando seis en este ejemplo)

    Nota:

    Si ve el siguiente mensaje de error, primero establezca el valor en cero como se describe en el paso 2 antes de realizar el paso 3

  4. Verifique su configuración mediante el siguiente comando:

Antes de reiniciar el vMX, adopte el archivo vmx.conf para el uso de SR-IOV.

Actualización de los parámetros del archivo de configuración VMX (vmx.conf)

Los parámetros necesarios para configurar vMX se definen en el archivo de configuración de inicio. El archivo de configuración está en formato YAML. El archivo predeterminado es config/vmx.conf. Puede guardar el archivo de configuración en un nombre diferente para diferentes instancias.

Para configurar interfaces para tipos de dispositivo SR-IOV, debe especificar la interfaz, la NIC y la dirección MAC. La tabla 1 proporciona los detalles de los parámetros de configuración que estamos usando para cambiar el archivo vmx.conf.

Tabla 1: Parámetros del archivo de configuración VMX

Componentes

Parámetros de VM

Descripción

vPFE

device-type

Usar sriov para todas las interfaces que utilizan SR-IOV o usar mixed para permitir la mezcla de interfaces SR-IOV y no basadas en SR-IOV.

use_native_drivers

Establecer para true permitir el uso del controlador Intel ixgbe del host (que se descargó y cumplió en los pasos anteriores)

Interfaces

type

Si el tipo está establecido en sriov, entonces port-speed-mbps y nic debe establecerse.

port-speed-mbps

Establecerlo para 10000 NIC de 10GE.

nic

El nombre del kernel que se utilizará en la interfaz.

virtual-function

Establecer en 0 para la primera instancia de vMX mediante esta NIC. Asegúrese de establecer para 1 2nd vMX con esta NIC compartida (y así sucesivamente)

mac-address

Asegúrese de que cada instancia de VF que usa la NIC compartida usa una dirección MAC única o diferente.

Un archivo vmx.conf de ejemplo:

Inicie vmx-install

Cambios necesarios para usar el controlador intel ixgbe

Cuando intente mover una implementación existente del controlador IXGBE modificado al controlador IXGBE no modificado, ingrese al modo de edición en Junos CLI y utilice el siguiente comando cuando utilice controladores "nativos".

Para obtener más información, consulte Controlador IXGBE modificado y no modificado.