vSphere 6.5 y versiones posteriores admiten la comunicación de acceso directo a memoria remota (Remote Direct Memory Access, RDMA) entre máquinas virtuales que tengan adaptadores de red de RDMA paravirtualizada (Paravirtualized RDMA, PVRDMA).

Descripción general de RDMA

RDMA permite el acceso directo a memoria desde la memoria de un equipo a la memoria de otro equipo sin involucrar al sistema operativo ni la CPU. La transferencia de memoria se descarga en los adaptadores de canal de host (HCA) compatibles con RDMA. Un adaptador de red de PVRDMA proporciona acceso de memoria directo remoto en un entorno virtual.

Usar RDMA en vSphere

En vSphere, una máquina virtual puede usar un adaptador de red de PVRDMA para comunicarse con otras máquinas virtuales que tengan dispositivos de PVRDMA. Dichas máquinas virtuales deben estar conectadas a la misma instancia de vSphere Distributed Switch.

El dispositivo de PVRDMA selecciona automáticamente el método de comunicación entre las máquinas virtuales. Para las máquinas virtuales que se ejecutan en el mismo host ESXi con o sin un dispositivo de RDMA físico, la transferencia de datos es una acción de memcpy entre las dos máquinas virtuales. El hardware de RDMA físico no se usa en este caso.

Para las máquinas virtuales que residen en diferentes hosts ESXi y que tienen conexión de RDMA física, los dispositivos de RDMA físicos deben tener vínculos superiores en el conmutador distribuido. En este caso, la comunicación entre las máquinas virtuales mediante PVRDMA usa los dispositivos de RDMA físicos subyacentes.

Para dos máquinas virtuales que se ejecutan en diferentes hosts ESXi, cuando al menos uno de los hosts no tiene un dispositivo de RDMA físico, la comunicación recae en un canal basado en TCP y el rendimiento se reduce.

Asignar un adaptador PVRDMA a una máquina virtual

Para permitir que una máquina virtual intercambie datos por medio de RDMA, debe asociarla con un adaptador de red PVRDMA.

Puede agregar hasta diez adaptadores de red PVRDMA a una máquina virtual cuando se utiliza vSphere 7.0.2 y versiones posteriores.

Requisitos previos

  • Compruebe que el host donde se ejecuta la máquina virtual esté configurado para RDMA. Consulte Configurar un host ESXi para PVRDMA.
  • Compruebe que el host esté conectado a una instancia de vSphere Distributed Switch.
  • Compruebe que la máquina virtual utilice la versión 13 y versiones posteriores del hardware virtual.
  • Compruebe que el sistema operativo invitado sea una distribución Linux de 64 bits.

Procedimiento

  1. Ubique la máquina virtual en vSphere Client.
    1. Seleccione un centro de datos, una carpeta, un clúster, un grupo de recursos o un host y haga clic en la pestaña Máquinas virtuales.
    2. Haga clic en Máquinas virtuales y en una máquina virtual en la lista.
  2. Apague la máquina virtual.
  3. En el menú Acciones, seleccione Editar configuración.
  4. Seleccione la pestaña Hardware virtual en el cuadro de diálogo que muestra la configuración.
  5. En el menú desplegable Agregar nuevo dispositivo, seleccione Adaptador de red.
    La sección Nueva red se agregará a la lista en la pestaña Hardware virtual.
  6. Expanda la sección Nueva red y conecte la máquina virtual al grupo de puertos distribuidos.
  7. En el menú desplegable Tipo de adaptador, seleccione PVRDMA.
  8. Expanda la sección Memoria, seleccione Reservar toda la memoria de invitado (todo bloqueado) y, a continuación, haga clic en Aceptar .
  9. Encienda la máquina virtual.

Configurar una máquina virtual para que utilice endpoints nativos de PVRDMA

Los endpoints nativos de PVRDMA están disponibles como una configuración avanzada de máquina virtual.

Los endpoints nativos de PVRDMA se admiten en la versión de hardware de máquina virtual 18 y versiones posteriores, a partir de vSphere 7.0 Update 1 y versiones posteriores. Para utilizar endpoints nativos de PVRDMA, debe habilitar los espacios de nombres de PVRDMA. Para obtener información sobre cómo habilitar los espacios de nombres de PVRDMA en el hardware específico de su entorno, consulte la documentación del proveedor.

Puede utilizar vSphere Client para configurar endpoints nativos o editar el archivo VMX de la máquina virtual. Si edita el archivo VMX directamente, agregue el parámetro vrdmax.nativeEndpointSupport = "TRUE", donde x es el índice del adaptador PVRDMA. El siguiente procedimiento utiliza vSphere Client para configurar endpoints nativos.

Requisitos previos

Compruebe que el entorno sea compatible con PVRDMA. Consulte Compatibilidad con PVRDMA.

Procedimiento

  1. Desplácese hasta la máquina virtual en vSphere Client.
    1. Para buscar una máquina virtual, seleccione un centro de datos, una carpeta, un clúster, un grupo de recursos o un host.
    2. Haga clic en la pestaña Máquinas virtuales.
  2. Haga clic con el botón derecho en la máquina virtual y seleccione Editar configuración.
  3. Haga clic en Opciones de máquina virtual.
  4. Expanda Opciones avanzadas.
  5. En Parámetros de configuración, haga clic en el botón Editar configuración.
  6. En el cuadro de diálogo que aparece, haga clic en Agregar fila para introducir un nuevo parámetro y su valor.
  7. Introduzca el parámetro vrdmax.nativeEndpointSupport, donde x es el índice del adaptador PVRDMA, y establezca el valor en TRUE.
    El índice x es el número del adaptador PVRDMA menos 1. Por ejemplo, si el adaptador PVRDMA con el que desea habilitar endpoints nativos tiene la etiqueta "adaptador de red 2", el índice será 1.

Configurar una máquina virtual para que utilice el modo asincrónico de PVRDMA

Aprenda a configurar una máquina virtual para que utilice el modo asincrónico de PVRDMA. Está disponible como una configuración avanzada de máquina virtual.

El modo asincrónico de PVRDMA está disponible en máquinas virtuales que se ejecutan en vSphere 8.0 y versiones posteriores. El modo asincrónico podría mejorar el rendimiento y la latencia de las cargas de trabajo de RDMA que se ejecutan en la máquina virtual. Cuando se habilita el modo asincrónico, se puede observar un mayor uso de la CPU en el host. Cuando se utiliza el modo asincrónico, se recomienda que la máquina virtual esté configurada para una sensibilidad de latencia alta.

Requisitos previos

Compruebe que el entorno sea compatible con PVRDMA. Consulte Compatibilidad con PVRDMA.

Procedimiento

  1. Ubique la máquina virtual en vSphere Client.
    1. Seleccione un centro de datos, una carpeta, un clúster, un grupo de recursos o un host y haga clic en la pestaña Máquinas virtuales.
    2. Haga clic en Máquinas virtuales y en una máquina virtual en la lista.
  2. Haga clic con el botón derecho en la máquina virtual y seleccione Editar configuración.
  3. Haga clic en Opciones de máquina virtual.
  4. Expanda Opciones avanzadas.
  5. En Parámetros de configuración, haga clic en el botón Editar configuración.
  6. En el cuadro de diálogo que aparece, haga clic en Agregar fila para introducir un nuevo parámetro y su valor.
  7. Introduzca el parámetro vrdma.asyncMode y establezca el valor en TRUE.

Requisitos de red para RDMA over Converged Ethernet

RDMA over Converged Ethernet garantiza una comunicación RDMA de baja latencia, peso liviano y alta capacidad de proceso por medio de una red Ethernet. RoCE requiere una red que esté configurada para tráfico sin pérdida de información solo en la Capa 2 o en las Capas 2 y 3.

RDMA over Converged Ethernet (RoCE) es un protocolo de red que utiliza RDMA con el fin de ofrecer una transferencia de datos más rápida para aplicaciones de uso intensivo de la red. RoCE permite una transferencia de memoria directa entre hosts sin involucrar a las CPU de los hosts.

Hay dos versiones del protocolo RoCE. RoCE v1 funciona en la capa de red de vínculo (Capa 2). RoCE v2 funciona en la capa de red de Internet (Capa 3). Tanto RoCE v1 como RoCE v2 requieren una configuración de red sin pérdida. RoCE v1 requiere una red de Capa 2 sin pérdida, mientras que RoCE v2 requiere que las Capas 2 y 3 estén configuradas para un funcionamiento sin pérdida.

Red de Capa 2 sin pérdida

Para garantizar un entorno de Capa 2 sin pérdida, debe poder controlar los flujos de tráfico. Para lograr el control del flujo, debe habilitarse la pausa global en toda la red, o bien debe utilizarse el protocolo Priority Flow Control (PFC) definido por el grupo Data Center Bridging (DCB). PFC es un protocolo de Capa 2 que usa la clase de campo de servicios de la etiqueta 802.1Q VLAN para establecer prioridades de tráfico individuales. Coloca en pausa la transferencia de paquetes hacia un receptor de acuerdo con la clase individual de prioridades de servicio. De esta manera, un solo vínculo transporta tráfico RoCE sin pérdida y otro tipo de tráfico con pérdida, de mejor esfuerzo. Con las congestiones en el flujo de tráfico, el tráfico con pérdida importante puede verse afectado. Para aislar diferentes flujos entre sí, utilice RoCE en una VLAN habilitada para tráfico prioritario.

Red de Capa 3 sin pérdida

RoCE v2 requiere que la transferencia de datos sin pérdida se conserve en dispositivos de enrutamiento de Capa 3. Para habilitar la transferencia de prioridades sin pérdida de PFC de Capa 2 en enrutadores de Capa 3, configure el enrutador para que asigne la configuración de prioridad recibida de un paquete a la configuración de calidad de servicio de Differentiated Serviced Code Point (DSCP) correspondiente que funciona en la Capa 3. Los paquetes de RDMA transferidos se marcan con DSCP de Capa 3, Priority Code Points (PCP) de Capa 2, o ambos. Para extraer información de prioridad de los enrutadores de paquetes, utilice DSCP o PCP. En caso de que se utilice PCP, el paquete debe contener una etiqueta de VLAN, y el enrutador debe copiar los bits de PCP de la etiqueta y reenviarlos a la próxima red. Si el paquete se marca con DSCP, el enrutador debe conservar los bits de DSCP sin modificaciones.

Al igual que RoCE v1, RoCE v2 debe ejecutarse en una VLAN habilitada para prioridad de PFC.

Nota: No se deben formar equipos de NIC de RoCE si se pretende utilizar RDMA en esas NIC.

Para obtener información de configuración específica del proveedor, consulte la documentación oficial del proveedor del dispositivo o conmutador respectivos.