RDMA (Acceso directo a memoria remota) es una tecnología de comunicación de red derivada del DMA (Acceso directo a memoria). Permite a las aplicaciones de usuario eludir el núcleo del sistema operativo (CPU) e interactuar directamente con las tarjetas de interfaz de red (NIC) para la transmisión de datos, lo que proporciona un ancho de banda ultraalto y una latencia ultrabaja. Desarrollado inicialmente para la computación de alto rendimiento (HPC), el RDMA se ha generalizado ahora en los centros de datos.
El principio fundamental de RDMA consiste en aprovechar el hardware especializado de los adaptadores de red (por ejemplo, los motores RDMA de las tarjetas de red) para eludir el núcleo del sistema operativo y realizar transferencias directas de memoria por debajo de la capa de transporte de red. Este mecanismo minimiza la latencia y la carga de la CPU, al tiempo que mejora la eficiencia de la red.。
En RDMA, la comunicación entre el emisor y el receptor se lleva a cabo a través del adaptador RDMA. En primer lugar, el emisor registra el búfer de datos que se va a enviar en la memoria del adaptador RDMA y envía su descriptor (que contiene la dirección, el tamaño y otra información de los datos) al receptor. El receptor registra el búfer de recepción en el adaptador RDMA e informa al adaptador de la dirección del búfer de recepción. A continuación, el emisor transfiere los datos directamente del búfer de envío al búfer de recepción a través del adaptador RDMA sin la intervención del sistema operativo. Este proceso se denomina operación de escritura RDMA. El receptor también puede leer datos directamente de la memoria del emisor mediante una operación de lectura RDMA.
RDMA admite tres tipos básicos de operaciones: operaciones de escritura, operaciones de lectura y operaciones atómicas. Las operaciones de escritura permiten a un nodo escribir datos directamente en la memoria de otro nodo. Las operaciones de lectura permiten a un nodo leer datos directamente de la memoria de otro nodo. Las operaciones atómicas son operaciones especiales que pueden realizar ciertas operaciones atómicas en nodos remotos, como la comparación y el intercambio (CAS).
El principio de funcionamiento de RDMA consiste principalmente en reducir el retraso en la transmisión de datos y la carga de la CPU mediante el acceso directo a la memoria a nivel de hardware. En comparación con el método de comunicación TCP/IP tradicional, el RDMA no necesita establecer una conexión entre el emisor y el receptor, ni realizar un procesamiento de protocolo complejo, por lo que ofrece un mayor rendimiento y una menor latencia. Además, el RDMA también admite funciones como «zero copy» y «kernel bypass», que pueden mejorar aún más la eficiencia de la transmisión de datos.
En general, el principio técnico del RDMA consiste en utilizar hardware específico del adaptador de red mediante el acceso directo a la memoria, sin pasar por el núcleo del sistema operativo, para lograr una comunicación de red eficiente, con baja latencia y bajo consumo de CPU.
2. Las características técnicas de RDMA incluyen principalmente los siguientes aspectos:
* No requiere la intervención de la CPU: una de las características fundamentales de la tecnología RDMA es que no requiere la intervención de la CPU. Las aplicaciones pueden acceder directamente a la memoria del host remoto sin consumir recursos de la CPU de dicho host. Esto reduce considerablemente el retraso y la ocupación de la CPU durante la transmisión de datos y mejora el rendimiento general.
* Omisión del núcleo: RDMA es compatible con la tecnología de omisión del núcleo, es decir, las aplicaciones pueden realizar la transmisión de datos directamente en modo usuario sin necesidad de cambiar de contexto entre el modo núcleo y el modo usuario. Esto reduce aún más el retraso en la transmisión de datos y mejora la eficiencia.
* Sin copias: la tecnología RDMA se caracteriza por la ausencia de copias, lo que evita que la CPU tenga que copiar datos de un almacenamiento a otro. En la comunicación TCP/IP, la transmisión de datos entre hosts requiere frecuentes operaciones de copia, y la RDMA reduce estas operaciones innecesarias mediante el acceso directo a la memoria, mejorando así la eficiencia de la transmisión de datos.
* Gran ancho de banda y baja latencia: dado que RDMA elude la pila de protocolos del sistema operativo y realiza la transmisión de datos directamente en la capa de transporte de la red, ofrece una mayor utilización del ancho de banda y una menor latencia. Esto hace que RDMA sea muy adecuado para situaciones de comunicación en red que requieren un alto rendimiento y una baja latencia.
* Compatibilidad de hardware: RDMA requiere que la tarjeta de red sea compatible con este protocolo, lo que suele implicar la presencia de un motor RDMA específico para gestionar las comunicaciones RDMA. Esta compatibilidad de hardware permite que RDMA alcance su alto rendimiento y sus bajas latencias.
En general, las características técnicas de RDMA incluyen la ausencia de intervención de la CPU, el bypass del núcleo, la transferencia sin copia, un gran ancho de banda y una baja latencia, así como compatibilidad con el hardware. Estas características convierten a RDMA en una tecnología de comunicación de red eficiente y de baja latencia, especialmente indicada para situaciones que requieren el procesamiento de grandes volúmenes de datos y comunicaciones de red de alto rendimiento.
3. Casos de uso de RDMA
Los ámbitos de aplicación de la tecnología RDMA son muy amplios. A continuación se enumeran algunos de los principales:
* Centro de datos: En un centro de datos, los servidores deben transmitir e intercambiar con frecuencia grandes cantidades de datos. El alto rendimiento y la baja latencia de RDMA lo convierten en una solución muy adecuada para las comunicaciones de red en centros de datos, lo que permite mejorar la eficiencia de la transmisión de datos, reducir la latencia y aumentar el rendimiento general.
* Computación de alto rendimiento (HPC): El campo de la computación de alto rendimiento requiere procesar grandes cantidades de datos y realizar cálculos complejos. El acceso directo a memoria y la tecnología de copia cero de RDMA pueden reducir la sobrecarga de la transmisión de datos y mejorar la eficiencia computacional. Al mismo tiempo, RDMA admite el procesamiento paralelo a gran escala y es muy adecuado para la computación paralela multinodo en entornos HPC.
* Sistema de almacenamiento distribuido: En un sistema de almacenamiento distribuido, los nodos deben realizar con frecuencia operaciones de lectura y escritura de datos. La transmisión eficiente de datos y las características de acceso directo a la memoria de RDMA pueden mejorar la eficiencia de la lectura y la escritura de datos entre nodos y aumentar el rendimiento general de los sistemas de almacenamiento distribuido.
* Computación en la nube: En un entorno de computación en la nube, la comunicación y la transmisión de datos entre máquinas virtuales (VM) son requisitos habituales. La tecnología RDMA puede utilizarse para lograr una comunicación eficiente entre máquinas virtuales y mejorar el rendimiento general del entorno de computación en la nube.
En general, aunque RDMA presenta algunas deficiencias y limitaciones, sigue siendo una tecnología de comunicación de red muy eficaz en muchos entornos que requieren un alto rendimiento y una baja latencia. A la hora de decidir si utilizar RDMA, es necesario evaluar su idoneidad y rendimiento en función de los requisitos y entornos específicos de la aplicación.