¿Qué es el Remote Direct Memory Access (RDMA)?
Remote Direct Memory Access, conocido por las siglas RDMA, permite enviar datos desde la memoria principal de un sistema informático a la memoria principal de otro ordenador con gran rapidez. Esto es particularmente útil en caso de grandes bases de datos o procesos complejos, como, por ejemplo, los necesarios para el aprendizaje automático (machine learning). Pero ¿qué es RDMA exactamente y cómo funciona?
Breve introducción a RDMA
Al igual que con el relacionado Direct Memory Access (DMA), Remote Direct Memory Access (RDMA) permite transferir datos directamente desde la memoria principal de un ordenador a la memoria de otro sistema. Para hacerlo, no recurre a los sistemas operativos, la CPU o la caché, por lo que se utilizan menos recursos de hardware. La transferencia de memoria con RDMA tiene lugar sobre su propia caché, a la que el usuario transfiere sus datos. La tecnología accede a la tarjeta de red de un sistema, por lo que la transferencia tiene lugar normalmente a través de Ethernet o InfiniBand.
Remote Direct Memory Access es una tecnología basada en el Direct Memory Access. Permite transmitir datos de la memoria RAM de un ordenador a la de otro sistema sin cargar los sistemas operativos, la caché ni la CPU.
RDMA es ya compatible con muchos productos diferentes (hardware y software). Entre estos, encontramos las siguientes soluciones:
- Apache Hadoop
- Spark
- Baidu Paddle
- Dell EMC PowerEdge Server
- Intel Xeon Scalable Prozessoren
- Microsoft Windows Server (2012 y posteriores)
¿Cómo funciona RDMA?
Para que funcione la transmisión de datos mediante RDMA, se requiere, en primer lugar, un conjunto adecuado de protocolos en la tarjeta de red. En general, se basa en TCP/IP. Se requiere un protocolo de transporte adecuado para que la tecnología pueda soportar, por ejemplo, la llamada Zero Copy Networking, un proceso que no utiliza el procesador del ordenador. Si los dos sistemas permiten el uso de Remote Direct Memory Access, la transferencia de datos entre ellos es mucho más rápida que entre ordenadores que no sean compatibles con RDMA.
El Remote Direct Memory Access es particularmente apto para operaciones en paralelo con ordenadores de alto rendimiento.
Las siguientes tecnologías de red e interfaces ofrecen las mejores condiciones para una transferencia sin problemas con RDMA:
- RDMA over Converged Ethernet (RoCE): RoCE es compatible con RDMA sobre una conexión Ethernet.
- Internet Wide Area RDMA Protocol (IWARP): para transferir los datos, IWARP accede al protocolo de transporte TCP o alternativamente a Streaming TCP. La IWARP fue creada por la Internet Engineering Task Force (IETF) para escribir tareas y procesos directamente en las aplicaciones de otro sistema.
- InfiniBand: InfiniBand es un estándar de comunicación para ordenadores de alto rendimiento para transferir archivos con baja latencia. A menudo se utiliza en los centros de datos para conectar grupos de ordenadores. RDMA a través de InfiniBand es uno de los métodos más populares para el intercambio rápido de datos.
Remote Direct Memory Access también se puede combinar con soportes de datos Flash o SSD y NVDIMM (módulos de memoria no volátil).
RDMA está todavía en desarrollo, y con RDMA over Fabrics la próxima posibilidad de aplicación ha asomado la cabeza. Fabric (o tejido) es el término utilizado para describir las infraestructuras entre varios servidores y ordenadores. Estos permiten la transferencia de datos a través de redes de canal de fibra o Fibre channels (redes de almacenamiento) y PCI Express (estándar para conexiones de alto rendimiento).
¿Cuáles son las ventajas y desventajas de Remote Direct Memory Access?
Una de las principales ventajas de RDMA es su velocidad superior a la de otras tecnologías y protocolos de transferencia de datos como iSCSI (protocolo SCSI sobre TCP), Fibre Channel (FC), o Fibre Channel over Ethernet (FCoE). Sin embargo, la rapidez con la que el intercambio de datos depende en última instancia de la variante de RDMA. Ethernet e InfiniBand son las más populares, ya que permiten velocidades de transferencia de 10 a 100 GB por segundo. Esto es ideal para aplicaciones que requieren una gran potencia de computación, como bases de datos distribuidas, análisis de big data o aplicaciones en centros de datos.
Sin embargo, RDMA también tiene desventajas respecto a los canales de fibra, que siguen siendo utilizados por muchas empresas. Para implantar RDMA, las empresas tienen que hacer grandes inversiones, porque la tecnología requiere la compra de nuevos componentes de hardware y protocolos. Por esto, los costes de Remote Direct Memory Access son a veces considerablemente más altos que los del FC o FCoE. Además, el intercambio rápido de datos con RDMA solo funciona si todos los sistemas se aceleran con la tecnología.