En informática , el acceso remoto directo a la memoria ( RDMA ) es un acceso directo a la memoria de una computadora a la de otra sin involucrar el sistema operativo de ninguno de los dos . Esto permite la creación de redes de alto rendimiento y baja latencia , lo cual es especialmente útil en clústeres de computadoras masivamente paralelos .
RDMA admite redes de copia cero al permitir que el adaptador de red transfiera datos desde el cable directamente a la memoria de la aplicación o desde la memoria de la aplicación directamente al cable, eliminando la necesidad de copiar datos entre la memoria de la aplicación y los buffers de datos en el sistema operativo. Dichas transferencias no requieren que las CPU , las cachés o los cambios de contexto realicen ningún trabajo , y las transferencias continúan en paralelo con otras operaciones del sistema. Esto reduce la latencia en la transferencia de mensajes.
Sin embargo, esta estrategia presenta varios problemas relacionados con el hecho de que no se notifica al nodo objetivo la finalización de la solicitud (comunicaciones unilaterales).
A partir de 2018, RDMA había logrado una aceptación más amplia como resultado de las mejoras en la implementación que permiten un buen rendimiento en la infraestructura de red ordinaria. [1] Por ejemplo, RDMA sobre Ethernet convergente (RoCE) ahora puede ejecutarse en infraestructura con o sin pérdidas. Además, iWARP permite una implementación de Ethernet RDMA en la capa física utilizando TCP / IP como transporte, combinando las ventajas de rendimiento y latencia de RDMA con una solución de bajo costo basada en estándares. [2] El Consorcio RDMA y la Colaboración DAT [3] han desempeñado papeles clave en el desarrollo de protocolos y API RDMA para su consideración por grupos de estándares como el Internet Engineering Task Force y el Interconnect Software Consortium. [4]
Los proveedores de hardware han comenzado a trabajar en adaptadores de red basados en RDMA de mayor capacidad, con velocidades reportadas de 100 Gbit/s. [5] [6] Los proveedores de software, como IBM , [7] Red Hat y Oracle Corporation , admiten estas API en sus últimos productos, [8] y, a partir de 2013, [actualizar]los ingenieros han comenzado a desarrollar adaptadores de red que implementan RDMA a través de Ethernet. [9] Tanto Red Hat Enterprise Linux como Red Hat Enterprise MRG [10] tienen soporte para RDMA. Microsoft admite RDMA en Windows Server 2012 a través de SMB Direct . VMware ESXi también es compatible con RDMA a partir de 2015.
Las implementaciones RDMA comunes incluyen la arquitectura de interfaz virtual , RDMA sobre Ethernet convergente (RoCE), InfiniBand , Omni-Path e iWARP .
Las aplicaciones acceden a estructuras de control que utilizan API bien definidas diseñadas originalmente para el protocolo InfiniBand (aunque las API se pueden utilizar para cualquiera de las implementaciones RDMA subyacentes). Al utilizar colas de envío y finalización, las aplicaciones realizan operaciones RDMA enviando entradas de la cola de trabajos (WQE) a la cola de envío (SQ) y recibiendo notificaciones de las respuestas de la cola de finalización (CQ). [11]
RDMA puede transportar datos de manera confiable o no confiable a través de los protocolos de transporte Reliably Connected (RC) y Unreliable Datagram (UD), respectivamente. El primero tiene la ventaja de conservar las solicitudes (no se pierde ninguna solicitud), mientras que el segundo requiere menos pares de colas cuando se manejan múltiples conexiones. Esto se debe al hecho de que UD no tiene conexión, lo que permite que un solo host se comunique.
La demostración mostrará Windows Server 2012 SMB Direct de Microsoft ejecutándose a una velocidad de línea de 40 Gb usando RDMA sobre Ethernet (iWARP).