Remote Direct Memory Access, conocido por las siglas RDMA, permite enviar datos desde la memoria principal de un sistema in­fo­r­má­ti­co a la memoria principal de otro ordenador con gran rapidez. Esto es pa­r­ti­cu­la­r­me­n­te útil en caso de grandes bases de datos o procesos complejos, como, por ejemplo, los ne­ce­sa­rios para el apre­n­di­za­je au­to­má­ti­co (machine learning). Pero ¿qué es RDMA exac­ta­me­n­te y cómo funciona?

Breve in­tro­du­c­ción a RDMA

Al igual que con el re­la­cio­na­do Direct Memory Access (DMA), Remote Direct Memory Access (RDMA) permite tra­n­s­fe­rir datos di­re­c­ta­me­n­te desde la memoria principal de un ordenador a la memoria de otro sistema. Para hacerlo, no recurre a los sistemas ope­ra­ti­vos, la CPU o la caché, por lo que se utilizan menos recursos de hardware. La tra­n­s­fe­re­n­cia de memoria con RDMA tiene lugar sobre su propia caché, a la que el usuario tra­n­s­fie­re sus datos. La te­c­no­lo­gía accede a la tarjeta de red de un sistema, por lo que la tra­n­s­fe­re­n­cia tiene lugar no­r­ma­l­me­n­te a través de Ethernet o In­fi­ni­Ba­nd.

De­fi­ni­ción

Remote Direct Memory Access es una te­c­no­lo­gía basada en el Direct Memory Access. Permite tra­n­s­mi­tir datos de la memoria RAM de un ordenador a la de otro sistema sin cargar los sistemas ope­ra­ti­vos, la caché ni la CPU.

RDMA es ya co­m­pa­ti­ble con muchos productos di­fe­re­n­tes (hardware y software). Entre estos, en­co­n­tra­mos las si­guie­n­tes so­lu­cio­nes:

  • Apache Hadoop
  • Spark
  • Baidu Paddle
  • Dell EMC PowerEdge Server
  • Intel Xeon Scalable Pro­ze­s­so­ren
  • Microsoft Windows Server (2012 y po­s­te­rio­res)

¿Cómo funciona RDMA?

Para que funcione la tra­n­s­mi­sión de datos mediante RDMA, se requiere, en primer lugar, un conjunto adecuado de pro­to­co­los en la tarjeta de red. En general, se basa en TCP/IP. Se requiere un protocolo de tra­n­s­po­r­te adecuado para que la te­c­no­lo­gía pueda soportar, por ejemplo, la llamada Zero Copy Ne­t­wo­r­ki­ng, un proceso que no utiliza el pro­ce­sa­dor del ordenador. Si los dos sistemas permiten el uso de Remote Direct Memory Access, la tra­n­s­fe­re­n­cia de datos entre ellos es mucho más rápida que entre or­de­na­do­res que no sean co­m­pa­ti­bles con RDMA.

Nota

El Remote Direct Memory Access es pa­r­ti­cu­la­r­me­n­te apto para ope­ra­cio­nes en paralelo con or­de­na­do­res de alto re­n­di­mie­n­to.

Las si­guie­n­tes te­c­no­lo­gías de red e in­te­r­fa­ces ofrecen las mejores co­n­di­cio­nes para una tra­n­s­fe­re­n­cia sin problemas con RDMA:

  • RDMA over Converged Ethernet (RoCE): RoCE es co­m­pa­ti­ble con RDMA sobre una conexión Ethernet.
  • Internet Wide Area RDMA Protocol (IWARP): para tra­n­s­fe­rir los datos, IWARP accede al protocolo de tra­n­s­po­r­te TCP o al­te­r­na­ti­va­me­n­te a Streaming TCP. La IWARP fue creada por la Internet En­gi­nee­ri­ng Task Force (IETF) para escribir tareas y procesos di­re­c­ta­me­n­te en las apli­ca­cio­nes de otro sistema.
  • In­fi­ni­Ba­nd: In­fi­ni­Ba­nd es un estándar de co­mu­ni­ca­ción para or­de­na­do­res de alto re­n­di­mie­n­to para tra­n­s­fe­rir archivos con baja latencia. A menudo se utiliza en los centros de datos para conectar grupos de or­de­na­do­res. RDMA a través de In­fi­ni­Ba­nd es uno de los métodos más populares para el in­te­r­ca­m­bio 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 de­sa­rro­llo, y con RDMA over Fabrics la próxima po­si­bi­li­dad de apli­ca­ción ha asomado la cabeza. Fabric (o tejido) es el término utilizado para describir las in­frae­s­tru­c­tu­ras entre varios se­r­vi­do­res y or­de­na­do­res. Estos permiten la tra­n­s­fe­re­n­cia de datos a través de redes de canal de fibra o Fibre channels (redes de al­ma­ce­na­mie­n­to) y PCI Express (estándar para co­ne­xio­nes de alto re­n­di­mie­n­to).

¿Cuáles son las ventajas y de­s­ve­n­ta­jas de Remote Direct Memory Access?

Una de las pri­n­ci­pa­les ventajas de RDMA es su velocidad superior a la de otras te­c­no­lo­gías y pro­to­co­los de tra­n­s­fe­re­n­cia 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 in­te­r­ca­m­bio de datos depende en última instancia de la variante de RDMA. Ethernet e In­fi­ni­Ba­nd son las más populares, ya que permiten ve­lo­ci­da­des de tra­n­s­fe­re­n­cia de 10 a 100 GB por segundo. Esto es ideal para apli­ca­cio­nes que requieren una gran potencia de co­mpu­tación, como bases de datos di­s­tri­bui­das, análisis de big data o apli­ca­cio­nes en centros de datos.

Sin embargo, RDMA también tiene de­s­ve­n­ta­jas respecto a los canales de fibra, que siguen siendo uti­li­za­dos por muchas empresas. Para implantar RDMA, las empresas tienen que hacer grandes in­ve­r­sio­nes, porque la te­c­no­lo­gía requiere la compra de nuevos co­m­po­ne­n­tes de hardware y pro­to­co­los. Por esto, los costes de Remote Direct Memory Access son a veces co­n­si­de­ra­ble­me­n­te más altos que los del FC o FCoE. Además, el in­te­r­ca­m­bio rápido de datos con RDMA solo funciona si todos los sistemas se aceleran con la te­c­no­lo­gía.

Ir al menú principal