RDMA: tecnología clave para redes aritméticas

La red aritmética es para resolver el problema del suministro de potencia aritmética, y varias tecnologías clave de potencia aritmética, incluido el acceso directo a datos remotos (RDMA), están estrechamente relacionadas con los indicadores de rendimiento de la red.

RDMA es la abreviatura de Remote Direct Memory Access, que se crea para resolver el retraso del procesamiento de datos en el lado del servidor en la transmisión de la red.

RDMA transfiere datos directamente al área de almacenamiento de una computadora a través de la red, moviendo datos rápidamente de un sistema a la memoria del sistema remoto sin ningún impacto en el sistema operativo, por lo que no es necesario utilizar muchas funciones de procesamiento informático. Elimina la sobrecarga de la replicación de la memoria externa y el cambio de contexto, liberando así el ancho de banda de la memoria y los ciclos de la CPU para mejorar el rendimiento del sistema de aplicaciones.

DMA en el sentido tradicional

El acceso directo a memoria (DMA) es un modo de operación en el que el hardware realiza completamente el intercambio de E/S. En este modo, el controlador DMA asume el control total del bus desde la CPU y el intercambio de datos se realiza directamente entre la memoria y los dispositivos IO sin pasar por la CPU. El controlador DMA envía señales de dirección y control a la memoria, modifica la dirección, cuenta el número de palabras transferidas e informa el final de la operación de transferencia a la CPU en una interrupción.

El propósito de utilizar el método DMA es reducir la sobrecarga de la CPU durante las grandes transferencias de datos mediante el uso de un controlador DMA dedicado (DMAC) para generar direcciones de acceso y controlar el proceso de acceso. Las ventajas son que las operaciones son implementadas por circuitos de hardware, la velocidad de transferencia es rápida, la CPU no interfiere, sino que solo participa durante la inicialización y terminación, y la CPU trabaja en paralelo con los dispositivos periféricos para una alta eficiencia.

DMA en el sentido tradicional

Principio de funcionamiento de RDMA

Las NIC ordinarias integran soporte de verificación de hardware y mejoras de software para reducir la cantidad de copias de los datos enviados, pero no la cantidad de copias de los datos recibidos, lo que consume una gran cantidad de ciclos de cómputo de la CPU.

El proceso de trabajo de una NIC normal

  1. El remitente de datos necesita copiar los datos del espacio de usuario Buffer al socket Buffer en el espacio del kernel.
  2. El remitente de datos tiene que agregar encabezados de paquetes en el espacio del núcleo para la encapsulación de datos.
  3. Los datos se copian desde el búfer del socket en el espacio del kernel al búfer de la NIC para la transmisión de la red.
  4. El receptor de datos recibe el paquete enviado desde la máquina remota y copia el paquete del búfer NIC al búfer del zócalo en el espacio del kernel.
  5. Después de una serie de protocolos de red multicapa para analizar los paquetes, los datos analizados se copian desde el búfer de socket del espacio del kernel al búfer del espacio del usuario.
  6. En este punto, se realiza el cambio de contexto del sistema y se invoca la aplicación de usuario.

Los paquetes recibidos primero se almacenan en caché en el sistema, donde se procesan y los datos correspondientes se asignan a una conexión TCP. El sistema receptor luego asocia los datos TCP no solicitados con la aplicación correspondiente y copia los datos del búfer del sistema a la dirección de almacenamiento de destino. Por lo tanto, surgen restricciones de velocidad de la red: la intensidad creciente de la comunicación de la aplicación y la pesada tarea de la CPU del host en el procesamiento de datos entre el kernel y la memoria de la aplicación requieren que el sistema agregue continuamente recursos de la CPU del host, configure un software eficiente y mejore la administración de la carga del sistema.

La clave del problema es eliminar las transferencias de datos innecesarias y frecuentes en la CPU del host y reducir la latencia de los mensajes entre sistemas.

RDMA es la transferencia directa de información al almacenamiento de la computadora a través de la red, moviendo datos rápidamente de un sistema a la memoria del sistema remoto sin ningún impacto en el sistema operativo, por lo que no se utiliza gran parte de la potencia de procesamiento de la computadora. Elimina las operaciones de copia de memoria externa y de intercambio de texto, liberando así espacio de bus y ciclos de CPU para mejorar el rendimiento de la aplicación. La práctica común requiere que el sistema analice y etiquete la información entrante antes de almacenarla en el área correcta.

El proceso de trabajo de RDMA

  • Cuando una aplicación realiza una solicitud de lectura o escritura de RDMA, no realiza ninguna replicación de datos. Sin ninguna participación de la memoria del kernel, la solicitud RDMA se envía desde la aplicación que se ejecuta en el espacio del usuario a la NIC local ( NIC=Tarjeta de Interfaz de Red).
  • La NIC lee el contenido del búfer y lo transmite a través de la red a la NIC remota.
  • La información RDMA transmitida a través de la red contiene la dirección virtual de destino, la clave de memoria y los datos en sí. La finalización de la solicitud puede manejarse completamente en el espacio del usuario (mediante el sondeo de la alineación de finalización del nivel de usuario) o a través de la memoria del kernel si la aplicación duerme hasta que se completa la solicitud. Las operaciones RDMA permiten que la aplicación lea o escriba datos en la memoria de una aplicación remota.
  • La NIC de destino reconoce la clave de memoria y escribe los datos directamente en la memoria caché de la aplicación. La dirección de memoria virtual remota utilizada para la operación está contenida en la información de RDMA.

Tecnología de copia cero en RDMA

La tecnología de red de copia cero permite que la NIC transfiera datos directamente hacia y desde la memoria de la aplicación, eliminando así la necesidad de copiar datos entre la memoria de la aplicación y la memoria del núcleo. La omisión de la memoria del núcleo permite que las aplicaciones envíen comandos a la NIC sin ejecutar llamadas de memoria del núcleo. Sin ninguna participación de la memoria del kernel, las solicitudes de RDMA se envían desde el espacio del usuario a la NIC local y a través de la red a la NIC remota, lo que reduce la cantidad de cambios de entorno entre el espacio de la memoria del kernel y el espacio del usuario cuando se procesan flujos de transferencia de red.

Tecnología de copia cero en RDMA

En el lado izquierdo, podemos ver el protocolo TCP/IP tradicional y el proceso de comunicación realizado por una NIC normal. Obviamente, cuando la capa de aplicación quiere obtener el mensaje de datos de la NIC, necesita pasar por dos búferes y la pila de protocolo TCP/IP normal, donde la interrupción suave es responsable de leer el mensaje de datos del primer búfer de la cola de recepción, luego copiándolo a MSGBuff, y finalmente la capa de aplicación lee el mensaje de datos al estado del usuario a través de una llamada al sistema. Por otro lado, el lado derecho es un proceso de copia cero usando RDMA con las siguientes reglas.

1) RDMA y su LLP (Lower Layer Protocol) se pueden implementar en la NIC llamada RNIC (RNIC es la tarjeta de interfaz de red RDMA).

2) Las dos implementaciones mencionadas en 1) pasan por los siguientes pasos: los datos enviados y recibidos se almacenan en caché en un espacio de memoria marcado, y luego este espacio de memoria se asigna directamente al espacio de la aplicación de acuerdo con las reglas negociadas entre las dos partes. de LLP y RDMA, reduciendo así al menos dos copias de memoria en el método de implementación tradicional, es decir, logrando cero copias. La línea delgada indica la dirección del flujo de datos; de hecho, la memoria caché del marcador se asigna directamente al espacio de la memoria caché del usuario a través de RDMA.

Composición de RDMA

RDMA se implementa mediante tres protocolos, RDMA, DDP y MPA, que constituyen la familia de protocolos iWARP y se utilizan para garantizar la interoperabilidad de las redes de alta velocidad. El DDP debe encapsular los mensajes RDMA en paquetes DDP y reenviarlos a la capa inferior basada en marcadores, protocolo de unidad de datos alineados (MPA), que inserta el identificador, la longitud y las verificaciones CRC en los paquetes DDP para formar los datos MPA. segmento. La capa IP agrega los datos de enrutamiento de red necesarios al paquete.

Métodos de operación de datos

El protocolo RDMA proporciona siete tipos de operaciones de control para el búfer de datos directo remoto. Cada operación de control de RDMA, excepto la operación de lectura del búfer remoto, genera solo un mensaje RDMA correspondiente.

  1. Enviar: la operación de envío utiliza el mensaje de envío para enviar los datos desde la aplicación del remitente directamente a un búfer que no ha sido declarado explícitamente por la aplicación del receptor de datos. Por lo tanto, el mensaje Enviar utiliza el modelo de transferencia de datos del búfer sin etiquetar DDP para transferir el mensaje de la aplicación superior al búfer en cola metaetiquetado de la aplicación receptora.
  2. Enviar con Invalidar: agregue un ciervo para enviar. Una vez que el mensaje se almacena en caché en el búfer de la aplicación del mismo nivel especificado por Stag, y la notificación de llegada del mensaje se comunica a la aplicación del receptor, la aplicación del receptor no permite que la aplicación del remitente acceda al búfer hasta que la aplicación del receptor vuelva a declarar que el búfer está disponible. para que la aplicación del remitente continúe usando.
  3. Enviar con evento solicitado (Enviar con SE): este mensaje se usa para enviar los datos de la aplicación del remitente directamente al búfer en cola sin etiquetar de la aplicación del receptor de datos, con todas las características de Enviar y comentarios agregados al mensaje.
  4. Enviar con Evento Solicitado e Invalidar (Send with SE and Invalidate): La acción correspondiente a este mensaje es enviar los datos de la aplicación emisora ​​directamente al búfer aún no declarado explícitamente por la aplicación receptora de datos, que tiene todas las funciones de Enviar con SE y agrega comentarios al mensaje. Tiene todas las funciones de Enviar con SE y agrega comentarios al mensaje.
  5. Escritura de acceso directo a memoria remota: corresponde a la operación de escritura RDMA y se utiliza para pasar los datos de la aplicación emisora ​​al búfer declarado por la aplicación receptora. En esta operación, la aplicación receptora debería haber asignado un búfer de recepción de aplicación marcado por adelantado y permitir que la aplicación emisora ​​realice la escritura del búfer directamente. Al mismo tiempo, la aplicación del remitente también obtiene la información sobre la ubicación, el tamaño y el Stag correspondiente de dicho búfer en la declaración. La aplicación del remitente luego inicia una operación de escritura RDMA, que utiliza el modelo de transferencia de datos del búfer etiquetado de DDP para transferir el mensaje de la aplicación del remitente directamente al búfer etiquetado declarado por la aplicación del receptor.
  6. Lectura de acceso directo a memoria remoto: corresponde a la operación de lectura RDMA, que pasa los datos del búfer de aplicación marcado en el lado opuesto (correspondiente a la fuente de datos) al búfer de aplicación marcado en el lado local (correspondiente al receptor de datos). La aplicación de la capa superior de la fuente de datos primero necesita asignar el búfer de la aplicación etiquetada por adelantado y permitir operaciones de lectura directa en el contenido de este búfer. Al mismo tiempo, la aplicación de la capa superior de la fuente de datos tiene que pasar información como la ubicación, el tamaño y el Stag correspondiente del búfer de la fuente de datos para declararla a la aplicación de la capa superior local. Después de obtener la declaración anterior, la aplicación superior del receptor de datos asigna el búfer de la aplicación etiquetada correspondiente y comienza a leer los datos del otro lado.
  7. Terminar: la operación de terminación utiliza un mensaje de terminación para notificar a la aplicación local el mensaje de error que se produjo para terminar la operación de caché directa de datos actual. La operación Terminar utiliza el modelo de búfer metaetiquetado de DDP para pasar Terminar al búfer sin etiquetar del otro lado.

Proceso de transmisión de datos RDMA

Aplicaciones de RDMA

RDMA tiene la ventaja de usar hardware de red tradicional para construir Internet usando estándares TCP/IP y Ethernet y se usará para conectar servidores pequeños en un clúster que puede manejar las grandes bases de datos que los servidores de alta gama de hoy en día con más de una docena de procesadores pueden manejar. Cuando pones RDMA, TOE y Ethernet de 10 GB juntos, es una tecnología bastante impresionante.

PUNTERA (TCP Offmotor de carga, procesamiento del protocolo TCP/IP desde la CPU a la NIC)

Durante la comunicación del host a través de la red, la CPU necesita gastar una gran cantidad de recursos en el procesamiento de paquetes de protocolos de red multicapa, incluida la replicación de datos, el procesamiento de protocolos y el procesamiento de interrupciones. La tecnología TOE libera a la CPU de estas operaciones y traslada el trabajo mencionado anteriormente del procesador host a la NIC. La tecnología TOE requiere una NIC específica que admita Offloading, que es capaz de encapsular paquetes de protocolos de red multicapa. Mientras que las NIC ordinarias activan una interrupción para cada paquete, las NIC TOE permiten que cada aplicación complete un proceso completo de procesamiento de datos antes de activar una interrupción, lo que reduce significativamente la carga de respuesta del servidor a las interrupciones.

La NIC TOE realiza el procesamiento de protocolo dentro de la NIC a medida que recibe datos. Por lo tanto, no tiene que copiar los datos al búfer de espacio del núcleo, sino directamente al búfer de espacio del usuario. Este enfoque de "copia cero" evita la copia de datos innecesaria entre la NIC y el servidor.

RDMA nativo

RDMA se está convirtiendo rápidamente en una característica fundamental de los clústeres de alta velocidad y las redes de área de servidores. Las redes InfiniBand y las redes basadas en arquitectura de interfaz virtual admiten RDMA, mientras que RDMA sobre TCP/IP para usar con transporte offLas tarjetas de red del motor de carga están actualmente en desarrollo. Los protocolos que admiten un alto rendimiento con RDMA incluyen el protocolo de sockets directos, el protocolo SCSI RDMA (SRP) y el sistema de archivos de acceso directo (DAFS). Las bibliotecas de comunicación que usan RDMA incluyen la biblioteca de proveedores de acceso directo (DAPL), la interfaz de paso de mensajes (MPI) y la biblioteca de proveedores de interfaz virtual (VIPL). Los clústeres que ejecutan aplicaciones distribuidas son una de las áreas en las que RDMA puede sobresalir, ya que puede proporcionar un mayor rendimiento y una mejor escalabilidad en comparación con otras aplicaciones RDMA anteriores con la misma cantidad de nodos cuando se usa con DAPL o VIPL y software de base de datos que se ejecuta en el clúster. Además, la tecnología RDMA se está convirtiendo rápidamente en una característica fundamental de los sistemas de clúster de alta velocidad y las redes de área de almacenamiento, donde iWARP/RDMA es un componente básico. iWARP (Protocolo RDMA de área amplia de Internet) es una tecnología RDMA basada en el protocolo TCP/IP, que implementa la tecnología RDMA sobre la pila de protocolos TCP/IP existente agregando una capa de DDP sobre TCP. Admite el uso de la tecnología RDMA en la infraestructura Ethernet estándar sin necesidad de una transmisión Ethernet sin pérdidas compatible con los conmutadores, pero los servidores deben usar tarjetas de red compatibles con iWARP. Sin embargo, su rendimiento es ligeramente peor debido a la influencia de TCP. Además, iSER, una extensión iSCSI para RDMA, aprovecha al máximo las capacidades de RDMA. Las primeras aplicaciones RDMA incluyen el acceso a servidores de archivos remotos a través de DAFS y el acceso a dispositivos de almacenamiento a través de SRP. RDMA se está convirtiendo rápidamente en una característica fundamental de los clústeres de alta velocidad y las redes de área de servidores.

Aplicaciones en NAS y SAN

El almacenamiento de conexión directa tradicional (DAS) es una estructura de almacenamiento centrada en el servidor con limitaciones tales como restricciones de capacidad, distancias de conexión limitadas y dificultades para compartir y administrar. No puede satisfacer las necesidades de aplicación de la era de la red. La llegada de la era de las redes ha provocado enormes cambios en la tecnología de almacenamiento. El almacenamiento conectado a la red (NAS) y las redes de área de almacenamiento (SAN) pueden proporcionar recursos de almacenamiento enriquecidos, rápidos y convenientes para los sistemas de aplicaciones en la red, al mismo tiempo que habilitan los recursos de almacenamiento compartido y la administración centralizada, convirtiéndose en un modelo de aplicación y administración de almacenamiento ideal en la actualidad. Sin embargo, las estructuras NAS tienen algunos problemas difíciles de resolver, como capacidad de transferencia limitada, escalabilidad limitada, capacidades de copia de seguridad limitadas y soporte ineficaz para los servicios de base de datos. DAFS integra las ventajas de las capacidades de almacenamiento RDMA y NAS, con todas las operaciones de lectura y escritura ejecutadas directamente por el controlador RDMA, lo que reduce la carga del sistema causada por los protocolos de archivos de red. En el futuro, los sistemas de almacenamiento NAS adoptarán la tecnología DAFS para mejorar el rendimiento del sistema y competir fuertemente con los sistemas de almacenamiento SAN en términos de rendimiento y precio.

Infinibanda

Las cuatro ventajas principales de InfiniBand se basan en protocolos estándar, rendimiento de 10 GB/s, RDMA y transporte offcarga. Su ventaja radica en la transmisión de alta velocidad de RDMA y el transporte. offmotores de carga. Las redes InfiniBand y las redes basadas en arquitectura de interfaz virtual admiten el uso de RDMA, mientras que RDMA sobre TCP/IP con transporte offLas NIC del motor de carga admiten servidores InfiniBand. Los adaptadores de canal de host (HCA) convierten los protocolos al bus PCI-X o PCI-Express interno del servidor, y los HCA con funcionalidad RDMA a veces se denominan omisión del kernel. InfiniBand (IB) es una tecnología RDMA basada en la InfiniBand arquitectura que requiere tarjetas de red IB dedicadas y conmutadores IB. En términos de rendimiento, las redes InfiniBand son claramente las mejores, pero los precios de las tarjetas de red y los conmutadores también son muy altos.

RoCE, o RDMA over Ethernet, es una tecnología RDMA basada en Ethernet y también fue propuesta por IBTA. RoCE admite el uso de la tecnología RDMA en la infraestructura Ethernet estándar, pero requiere soporte de conmutador para la transmisión Ethernet sin pérdidas, y las tarjetas de red deben ser NIC especiales que admitan RoCE.

A medida que la tecnología continúa evolucionando, las principales tecnologías RDMA se pueden dividir en dos campos: tecnología IB e IBoE, o IB sobre Ethernet, que admite tecnologías RDMA basadas en Ethernet. RoCE e iWARP pertenecen a esta tecnología. IBoE, o IB sobre Ethernet, puede propagarse en Ethernet y usarse con conmutadores Ethernet, mientras que el protocolo IB requiere hardware y enrutadores dedicados.

Con el desarrollo continuo de las redes de potencia de cómputo, la tecnología DMA utilizada originalmente para aplicaciones de una sola máquina o de área local se aplicará a espacios de mayor escala y se convertirá en una tecnología clave en las redes de potencia de cómputo.

RDMA

Deja un comentario

Ir al Inicio