La compatibilidad de SR-IOV con vSphere depende de la interacción entre las funciones virtuales (VF) y la función física (PF) del puerto de NIC para lograr un mejor rendimiento, y de la interacción entre el controlador de la PF y el conmutador del host para el control de tráfico.

En un host donde se ejecuta el tráfico de máquina virtual sobre los adaptadores físicos SR-IOV, los adaptadores de la máquina virtual se comunican directamente con las funciones virtuales para transferir datos. No obstante, la capacidad para configurar redes depende de las directivas activas para el puerto donde se alojan las máquinas virtuales.

En un host ESXi sin SR-IOV, el conmutador virtual envía el tráfico de red externo a través de sus puertos en el host desde el adaptador físico del grupo de puertos relevante o hacia ese adaptador. El conmutador virtual también aplica las directivas de red a los paquetes administrados.

Figura 1. Rutas de datos y configuración para la compatibilidad de SR-IOV con vSphere

La ruta de datos y la ruta de control para admitir SR-IOV en vSphere incluyen varios componentes.

La ruta de datos conecta directamente la máquina virtual con la función virtual en la NIC. La ruta de control incluye el conmutador virtual y las directivas activas en la máquina virtual.

Ruta de datos en SR-IOV

Una vez que se asigna el adaptador de red de máquina virtual a una función virtual, el controlador de VF del sistema operativo invitado usa la tecnología de unidad de administración de memoria de E/S (IOMMU) para tener acceso a la función virtual que debe recibir o enviar los datos a través de la red. El VMkernel, es decir, el conmutador virtual específico, no procesa el flujo de datos, lo cual reduce la latencia general de las cargas de trabajo con SR-IOV.

Ruta de configuración en SR-IOV

Si el sistema operativo invitado intenta cambiar la configuración de un adaptador de la máquina virtual asignado a una VF, el cambio se aplica si así lo permite la directiva del puerto asociado con el adaptador de la máquina virtual.

El flujo de trabajo de configuración implica las siguientes operaciones:

  1. El sistema operativo invitado solicita un cambio de configuración en la VF.
  2. La VF reenvía la solicitud a la PF a través de un mecanismo de buzón de correo.
  3. El controlador de PF comprueba la solicitud de configuración con el conmutador virtual (conmutador estándar o conmutador proxy del host de un conmutador distribuido).
  4. El conmutador virtual comprueba la solicitud de configuración con la directiva del puerto al cual está asociado el adaptador de la máquina virtual con VF.
  5. El controlador de PF configura la VF si la nueva configuración cumple con la directiva de puerto del adaptador de la máquina virtual.

    Por ejemplo, si el controlador de VF intenta modificar la dirección MAC, la dirección se conserva si el cambio de dirección MAC está prohibido por la directiva de seguridad para el puerto o el grupo de puertos. El sistema operativo invitado puede indicar que el cambio se efectuó correctamente, pero el registro muestra un mensaje donde se indica que la operación no se pudo realizar. Por lo tanto, el sistema operativo invitado y el dispositivo virtual tienen direcciones MAC diferentes. La interfaz de red del sistema operativo invitado posiblemente no pueda obtener una dirección IP y comunicarse. En este caso, es necesario restablecer la interfaz en el sistema operativo invitado para obtener la dirección MAC actualizada del dispositivo virtual y recibir una dirección IP.