Il Remote Direct Memory Access, ab­bre­via­to in RDMA, rende possibile l’invio semplice e veloce di dati dalla memoria prin­ci­pa­le di un sistema in­for­ma­ti­co, qual è un computer, a quella di un altro. Questo è par­ti­co­lar­men­te utile quando a essere inviati sono record di dati di grandi di­men­sio­ni o di processi par­ti­co­lar­men­te complessi, com’è ad esempio il caso dell’ap­pren­di­men­to au­to­ma­ti­co. Ma che cos’è esat­ta­men­te un RDMA e come funziona? Ve lo spie­ghia­mo in questo articolo.

De­fi­ni­zio­ne di Remote Direct Memory Access (RDMA)

In maniera analoga al Direct Memory Access (DMA), anche il Remote Direct Memory Access (RDMA) permette la tra­smis­sio­ne di dati di­ret­ta­men­te dalla memoria di lavoro di un computer a quella di un altro sistema. Sistemi operativi, CPU e cache rimangono in­te­ra­men­te esclusi da questo processo per so­vrac­ca­ri­ca­re le risorse hardware il meno possibile. A tale scopo, la tra­smis­sio­ne con il RDMA avviene at­tra­ver­so una memoria tem­po­ra­nea o di transito, grazie alla quale l’utente tra­sfe­ri­sce i propri dati da un sistema all’altro. Questa tec­no­lo­gia si serve delle schede di rete del sistema per ef­fet­tua­re la tra­smis­sio­ne tramite con­nes­sio­ne Ethernet o In­fi­ni­Band.

De­fi­ni­zio­ne

Remote Direct Memory Access: è una tec­no­lo­gia che si basa sul Direct Memory Access (DMA) e che consente di tra­sfe­ri­re dati dalla memoria di lavoro di un computer a quella di un altro sistema senza so­vrac­ca­ri­ca­re il sistema operativo, la cache o la CPU.

Sono vari i prodotti hardware e software che sup­por­ta­no il RDMA, tra i quali le soluzioni elencate qui di seguito:

  • Apache Hadoop
  • Spark
  • Baidu Paddle
  • Dell EMC PowerEdge Server
  • I pro­ces­so­ri scalabili Intel Xeon
  • Microsoft Windows Server (2012 o più recenti)

Come funziona il RDMA?

Per far sì che avvenga lo scambio di dati tramite il RDMA, il requisito in­di­spen­sa­bi­le è l’utilizzo di un set di pro­to­col­li nella scheda di rete. Nella maggior parte dei casi si ricorre al TCP/IP. È proprio grazie all’impiego di un pro­to­col­lo di tra­smis­sio­ne adeguato che la tec­no­lo­gia è in grado di sup­por­ta­re il co­sid­det­to Zero Copy Net­wor­king, ossia un processo che esclude com­ple­ta­men­te l’utilizzo del pro­ces­so­re del computer. Quando entrambi i sistemi per­met­to­no l’utilizzo del Remote Direct Memory Access, la tra­smis­sio­ne di dati tra loro è sen­si­bil­men­te più veloce rispetto a quella tra computer quando questi non sono sup­por­ta­ti dal RDMA.

N.B.

Il Remote Direct Memory Access è par­ti­co­lar­men­te utile, se non in­di­spen­sa­bi­le, per processi paralleli tra computer ad alte pre­sta­zio­ni.

Per una tra­smis­sio­ne con il RDMA che fili liscia come l’olio le tec­no­lo­gie di rete e le in­ter­fac­ce qui di seguito elencate offrono le con­di­zio­ni di partenza migliori:

  • RDMA over Converged Ethernet (RoCE): RoCE permette l’impiego del RDMA at­tra­ver­so una con­nes­sio­ne Ethernet.
  • Internet Wide Area DMA Protocol (IWARP): IWARP si affida al pro­to­col­lo di tra­smis­sio­ne TCP o, in al­ter­na­ti­va, allo streaming TCP. IWARP è stato svi­lup­pa­to dalla Internet En­gi­nee­ring Task Force (IETF) allo scopo di svolgere azioni e processi di­ret­ta­men­te su un altro sistema.
  • In­fi­ni­Band: In­fi­ni­Band è uno standard di co­mu­ni­ca­zio­ne per computer ad alte pre­sta­zio­ni che serve a tra­smet­te­re file con una minor latenza possibile da un computer a un altro. Viene spesso impiegato nei centri di calcolo per mettere in con­nes­sio­ne i vari cluster, ossia l’insieme di computer connessi tra loro tramite una rete. Il RDMA at­tra­ver­so In­fi­ni­Band è uno dei metodi più con­ge­nia­li per lo scambio rapido di dati.

Il Remote Direct Memory Access può però essere uti­liz­za­to anche con le unità di memoria Flash, con le SSD e con i moduli NVDIMM (modulo di memoria non volatile).

L’evo­lu­zio­ne del RDMA è ancora in sviluppo, in quanto con RDMA over Fabrics si ha già la prossima soluzione ai blocchi di partenza: il termine Fabric (che dall’inglese vuol dire “intreccio”) viene uti­liz­za­to per definire le in­fra­strut­tu­re tra più server e computer. Tali in­fra­strut­tu­re sup­por­ta­no il tra­sfe­ri­men­to di dati tramite le reti Fibre Channel, pensate per l’utilizzo nelle Storage Area Network, e lo standard PCI Express (standard per le con­nes­sio­ni altamente per­for­man­ti).

Quali sono i vantaggi e gli svantaggi del Remote Direct Memory Access?

Uno dei prin­ci­pa­li vantaggi del RDMA è la sua ec­ce­zio­na­le velocità rispetto ad altre tec­no­lo­gie e pro­to­col­li per la tra­smis­sio­ne di dati come l’iSCSI (pro­to­col­lo SCSI tramite TCP), Fibre Channel (FC) o Fibre Channel over Ethernet (FCoE). L’effettiva velocità di tra­smis­sio­ne dipende poi dalle varianti RDMA del caso. Ethernet e In­fi­ni­Band vanno de­ci­sa­men­te per la maggiore in quanto per­met­to­no una velocità di tra­smis­sio­ne che va dai 10 ai 100 Gigabit al secondo. Tali velocità sono par­ti­co­lar­men­te adatte in campi di utilizzo in cui sono as­so­lu­ta­men­te ne­ces­sa­rie delle pre­sta­zio­ni di calcolo elevate, quali possono essere, ad esempio, i database condivisi, le analisi dei Big Data o le ap­pli­ca­zio­ni al­l'in­ter­no dei centri di dati.

Tuttavia, il RDMA comporta anche degli svantaggi rispetto alle reti che adoperano Fibre Channel, che og­gi­gior­no sono ancora quelle più uti­liz­za­te dalle aziende. Per passare al RDMA, le aziende devono essere pronte a grandi in­ve­sti­men­ti, dato che la tec­no­lo­gia richiede l’acquisto di nuovi hardware e com­po­nen­ti di pro­to­col­lo. I costi del Remote Direct Memory Access sono perciò so­stan­zial­men­te più alti rispetto a quelli per la tec­no­lo­gia FC o FcoE. Inoltre, lo scambio di dati con il RDMA funziona solamente se tutti i sistemi in­te­res­sa­ti sono resi ef­fet­ti­va­men­te più veloci.

Vai al menu prin­ci­pa­le