10.8. Gestión de dispositivos SR-IOV
Un dispositivo virtual emulado suele utilizar más CPU y memoria que un dispositivo de red de hardware. Esto puede limitar el rendimiento de una máquina virtual (VM). Sin embargo, si alguno de los dispositivos de su host de virtualización es compatible con la virtualización de E/S de raíz única (SR-IOV), puede utilizar esta función para mejorar el rendimiento del dispositivo, y posiblemente también el rendimiento general de sus máquinas virtuales.
10.8.1. ¿Qué es el SR-IOV?
La virtualización de E/S de raíz única (SR-IOV) es una especificación que permite que un único dispositivo PCI Express (PCIe) presente varios dispositivos PCI independientes, denominados virtual functions (VFs), al sistema anfitrión. Cada uno de estos dispositivos:
- Es capaz de proporcionar el mismo o similar servicio que el dispositivo PCIe original.
- Aparece en una dirección diferente en el bus PCI del host.
- Se puede asignar a una VM diferente mediante la asignación de VFIO.
Por ejemplo, un único dispositivo de red con capacidad SR-IOV puede presentar VFs a múltiples VMs. Mientras que todas las VFs utilizan la misma tarjeta física, la misma conexión de red y el mismo cable de red, cada una de las VMs controla directamente su propio dispositivo de red de hardware y no utiliza recursos adicionales del host.
Cómo funciona el SR-IOV
La funcionalidad SR-IOV es posible gracias a la introducción de las siguientes funciones PCIe:
- Physical functions (PFs) - Una función PCIe que proporciona la funcionalidad de su dispositivo (por ejemplo, la red) al host, pero también puede crear y gestionar un conjunto de FPs. Cada dispositivo con capacidad SR-IOV tiene uno o más FPs.
- Virtual functions (VFs) - Funciones PCIe ligeras que se comportan como dispositivos independientes. Cada VF se deriva de un PF. El número máximo de VFs que puede tener un dispositivo depende del hardware del mismo. Cada VF sólo puede ser asignado a una sola VM a la vez, pero una VM puede tener múltiples VFs asignados.
Las VMs reconocen los VFs como dispositivos virtuales. Por ejemplo, un VF creado por un dispositivo de red SR-IOV aparece como una tarjeta de red para una VM a la que se asigna, de la misma manera que una tarjeta de red física aparece para el sistema anfitrión.
Figura 10.1. Arquitectura SR-IOV
Beneficios
Las principales ventajas de utilizar VFs SR-IOV en lugar de dispositivos emulados son:
- Mejora del rendimiento
- Uso reducido de los recursos de la CPU y la memoria del host
Por ejemplo, una VF conectada a una VM como vNIC rinde casi al mismo nivel que una NIC física, y mucho mejor que las NIC paravirtualizadas o emuladas. En particular, cuando se utilizan múltiples VFs simultáneamente en un solo host, los beneficios de rendimiento pueden ser significativos.
Desventajas
- Para modificar la configuración de un FP, primero debe cambiar el número de VFs expuestos por el FP a cero. Por lo tanto, también debe eliminar los dispositivos proporcionados por estos VFs de la VM a la que están asignados.
- Una VM con dispositivos asignados a VFIOs, incluyendo VFs SR-IOV, no puede ser migrada a otro host. En algunos casos, se puede sortear esta limitación emparejando el dispositivo asignado con un dispositivo emulado. Por ejemplo, puede vincular un VF de red asignado a una vNIC emulada y eliminar el VF antes de la migración.
- Además, los dispositivos asignados por VFIO requieren el pinning de la memoria de la VM, lo que aumenta el consumo de memoria de la VM y evita el uso del ballooning de memoria en la VM.
Recursos adicionales
- Para ver una lista de los tipos de dispositivos que admiten SR-IOV, consulte Sección 10.8.3, “Dispositivos compatibles con la asignación de SR-IOV”.