Che cos’è il Remote Direct Memory Access (RDMA)?
Il Remote Direct Memory Access, abbreviato in RDMA, rende possibile l’invio semplice e veloce di dati dalla memoria principale di un sistema informatico, qual è un computer, a quella di un altro. Questo è particolarmente utile quando a essere inviati sono record di dati di grandi dimensioni o di processi particolarmente complessi, com’è ad esempio il caso dell’apprendimento automatico. Ma che cos’è esattamente un RDMA e come funziona? Ve lo spieghiamo in questo articolo.
Definizione di Remote Direct Memory Access (RDMA)
In maniera analoga al Direct Memory Access (DMA), anche il Remote Direct Memory Access (RDMA) permette la trasmissione di dati direttamente dalla memoria di lavoro di un computer a quella di un altro sistema. Sistemi operativi, CPU e cache rimangono interamente esclusi da questo processo per sovraccaricare le risorse hardware il meno possibile. A tale scopo, la trasmissione con il RDMA avviene attraverso una memoria temporanea o di transito, grazie alla quale l’utente trasferisce i propri dati da un sistema all’altro. Questa tecnologia si serve delle schede di rete del sistema per effettuare la trasmissione tramite connessione Ethernet o InfiniBand.
Remote Direct Memory Access: è una tecnologia che si basa sul Direct Memory Access (DMA) e che consente di trasferire dati dalla memoria di lavoro di un computer a quella di un altro sistema senza sovraccaricare il sistema operativo, la cache o la CPU.
Sono vari i prodotti hardware e software che supportano il RDMA, tra i quali le soluzioni elencate qui di seguito:
- Apache Hadoop
- Spark
- Baidu Paddle
- Dell EMC PowerEdge Server
- I processori 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 indispensabile è l’utilizzo di un set di protocolli nella scheda di rete. Nella maggior parte dei casi si ricorre al TCP/IP. È proprio grazie all’impiego di un protocollo di trasmissione adeguato che la tecnologia è in grado di supportare il cosiddetto Zero Copy Networking, ossia un processo che esclude completamente l’utilizzo del processore del computer. Quando entrambi i sistemi permettono l’utilizzo del Remote Direct Memory Access, la trasmissione di dati tra loro è sensibilmente più veloce rispetto a quella tra computer quando questi non sono supportati dal RDMA.
Il Remote Direct Memory Access è particolarmente utile, se non indispensabile, per processi paralleli tra computer ad alte prestazioni.
Per una trasmissione con il RDMA che fili liscia come l’olio le tecnologie di rete e le interfacce qui di seguito elencate offrono le condizioni di partenza migliori:
- RDMA over Converged Ethernet (RoCE): RoCE permette l’impiego del RDMA attraverso una connessione Ethernet.
- Internet Wide Area DMA Protocol (IWARP): IWARP si affida al protocollo di trasmissione TCP o, in alternativa, allo streaming TCP. IWARP è stato sviluppato dalla Internet Engineering Task Force (IETF) allo scopo di svolgere azioni e processi direttamente su un altro sistema.
- InfiniBand: InfiniBand è uno standard di comunicazione per computer ad alte prestazioni che serve a trasmettere file con una minor latenza possibile da un computer a un altro. Viene spesso impiegato nei centri di calcolo per mettere in connessione i vari cluster, ossia l’insieme di computer connessi tra loro tramite una rete. Il RDMA attraverso InfiniBand è uno dei metodi più congeniali per lo scambio rapido di dati.
Il Remote Direct Memory Access può però essere utilizzato anche con le unità di memoria Flash, con le SSD e con i moduli NVDIMM (modulo di memoria non volatile).
L’evoluzione 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 utilizzato per definire le infrastrutture tra più server e computer. Tali infrastrutture supportano il trasferimento di dati tramite le reti Fibre Channel, pensate per l’utilizzo nelle Storage Area Network, e lo standard PCI Express (standard per le connessioni altamente performanti).
Quali sono i vantaggi e gli svantaggi del Remote Direct Memory Access?
Uno dei principali vantaggi del RDMA è la sua eccezionale velocità rispetto ad altre tecnologie e protocolli per la trasmissione di dati come l’iSCSI (protocollo SCSI tramite TCP), Fibre Channel (FC) o Fibre Channel over Ethernet (FCoE). L’effettiva velocità di trasmissione dipende poi dalle varianti RDMA del caso. Ethernet e InfiniBand vanno decisamente per la maggiore in quanto permettono una velocità di trasmissione che va dai 10 ai 100 Gigabit al secondo. Tali velocità sono particolarmente adatte in campi di utilizzo in cui sono assolutamente necessarie delle prestazioni di calcolo elevate, quali possono essere, ad esempio, i database condivisi, le analisi dei Big Data o le applicazioni all'interno dei centri di dati.
Tuttavia, il RDMA comporta anche degli svantaggi rispetto alle reti che adoperano Fibre Channel, che oggigiorno sono ancora quelle più utilizzate dalle aziende. Per passare al RDMA, le aziende devono essere pronte a grandi investimenti, dato che la tecnologia richiede l’acquisto di nuovi hardware e componenti di protocollo. I costi del Remote Direct Memory Access sono perciò sostanzialmente più alti rispetto a quelli per la tecnologia FC o FcoE. Inoltre, lo scambio di dati con il RDMA funziona solamente se tutti i sistemi interessati sono resi effettivamente più veloci.