En informática , el acceso directo a memoria remota ( RDMA ) es un acceso directo a la memoria de una computadora a la de otra sin involucrar al sistema operativo de ninguna de ellas . Esto permite una red de alto rendimiento y baja latencia , lo que resulta especialmente útil en clústeres de computadoras masivamente paralelos .
RDMA admite la creación de redes sin copia, ya que permite 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, lo que elimina la necesidad de copiar datos entre la memoria de la aplicación y los búferes de datos del sistema operativo. Estas transferencias no requieren que las CPU , las memorias caché o los conmutadores 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 el nodo de destino no es notificado de 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 mejoras de implementación que permiten un buen rendimiento sobre la infraestructura de red ordinaria. [1] Por ejemplo, RDMA sobre Ethernet convergente (RoCE) ahora puede ejecutarse sobre infraestructura con o sin pérdidas. Además, iWARP permite una implementación de RDMA Ethernet 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 el DAT Collaborative [3] han desempeñado papeles clave en el desarrollo de protocolos y API RDMA para su consideración por parte de grupos de estándares como el Grupo de trabajo de ingeniería de Internet y el Consorcio de software de interconexión. [4]
Los proveedores de hardware han comenzado a trabajar en adaptadores de red basados en RDMA de mayor capacidad, con velocidades de 100 Gbit/s reportadas. [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 sobre 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 admite RDMA a partir de 2015.
Las implementaciones comunes de RDMA incluyen la Arquitectura de Interfaz Virtual , RDMA sobre Ethernet Convergente (RoCE), InfiniBand , Omni-Path y iWARP .
Las aplicaciones acceden a estructuras de control mediante API bien definidas diseñadas originalmente para el protocolo InfiniBand (aunque las API se pueden utilizar para cualquiera de las implementaciones subyacentes de RDMA). Mediante colas de envío y finalización, las aplicaciones realizan operaciones RDMA enviando entradas de cola de trabajo (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 preservar las solicitudes (no se pierden solicitudes), mientras que el segundo requiere menos pares de colas al manejar múltiples conexiones. Esto se debe al hecho de que UD no requiere conexión, lo que permite que un solo host se comunique con cualquier otro usando una sola cola. [12]
La demostración mostrará el Windows Server 2012 SMB Direct de Microsoft ejecutándose a una velocidad de línea de 40 Gb utilizando RDMA over Ethernet (iWARP).