Remote Direct Memory Access, kurz RDMA, er­mög­licht es, Daten schnell und einfach aus dem Haupt­spei­cher eines Com­pu­ter­sys­tems in den Haupt­spei­cher eines anderen Computers zu schicken. Das ist besonders dann hilfreich, wenn es sich um große Da­ten­sät­ze oder komplexe Prozesse handelt, wie sie bei­spiels­wei­se beim ma­schi­nel­lem Lernen benötigt werden. Aber was genau ist RDMA und wie funk­tio­niert es?

De­fi­ni­ti­on: Remote Direct Memory Access (RDMA)

Wie beim ver­wand­ten Direct Memory Access (DMA) kann man mit Remote Direct Memory Access (RDMA) Daten direkt aus dem Haupt- bzw. Ar­beits­spei­cher eines Computers in den Speicher eines anderen Systems über­tra­gen. Be­triebs­sys­te­me, CPU oder Cache bleiben in diesem Fall gänzlich außen vor, sodass weniger Hardware-Res­sour­cen belastet werden. Der Spei­cher­trans­fer mit RDMA läuft zu diesem Zweck über einen eigenen Zwi­schen­spei­cher, in den der Anwender seine Daten trans­fe­riert. Die Tech­no­lo­gie greift dabei auf die Netz­werk­kar­te eines Systems zu, wobei die Über­tra­gung stan­dard­mä­ßig über Ethernet oder In­fi­ni­Band ab­ge­wi­ckelt wird.

De­fi­ni­ti­on

Remote Direct Memory Access ist eine Tech­no­lo­gie, die auf dem Direct Memory Access basiert. Sie er­mög­licht es, Daten vom Ar­beits­spei­cher eines Computers in den Ar­beits­spei­cher eines anderen Systems zu trans­fe­rie­ren, ohne dabei die Be­triebs­sys­te­me, Cache oder CPU zu belasten.

RDMA wird bereits von vielen ver­schie­de­nen Produkten (Hard- und Software) un­ter­stützt. Hierzu zählen z. B. folgende Lösungen:

  • Apache Hadoop
  • Spark
  • Baidu Paddle
  • Dell EMC PowerEdge Server
  • Intel Xeon Scalable Pro­zes­so­ren
  • Microsoft Windows Server (2012 und neuer)

Wie funk­tio­niert RDMA?

Damit der Da­ten­aus­tausch über RDMA funk­tio­niert, bedarf es allem voran eines passenden Sets an Pro­to­kol­len in der Netz­werk­kar­te – ty­pi­scher­wei­se wird TCP/IP als Basis verwendet. Erst durch ein ge­eig­ne­tes Trans­port­pro­to­koll kann die Tech­no­lo­gie bei­spiels­wei­se das so­ge­nann­te Zero Copy Net­wor­king un­ter­stüt­zen – einen Prozess, bei dem der Com­pu­ter­pro­zes­sor nicht in Anspruch genommen wird. Wenn beide Systeme den Einsatz von Remote Direct Memory Access er­mög­li­chen, ist der Da­ten­trans­fer zwischen ihnen erheblich schneller als der zwischen Computern ohne RDMA-Support.

Hinweis

Remote Direct Memory Access ist vor allem hilfreich bei par­al­le­len Vorgängen mit Hoch­leis­tungs­rech­nern.

Für den rei­bungs­lo­sen Transfer mit RDMA bieten die folgenden Netz­werk­tech­no­lo­gien und Schnitt­stel­len die besten Vor­aus­set­zun­gen:

  • RDMA over Converged Ethernet (RoCE): RoCE er­mög­licht RDMA über eine Ethernet-Ver­bin­dung.
  • Internet Wide Area RDMA Protocol (IWARP): Für den Da­ten­trans­fer greift IWARP auf das Trans­port­pro­to­koll TCP oder al­ter­na­tiv auf Streaming TCP zu. IWARP wurde von der Internet En­gi­nee­ring Task Force (IETF) ins Leben gerufen, um Aufgaben und Prozesse direkt auf An­wen­dun­gen in einem anderen System zu schreiben.
  • In­fi­ni­Band: In­fi­ni­Band ist ein Kom­mu­ni­ka­ti­ons­stan­dard für Hoch­leis­tungs­com­pu­ter, um Dateien mit niedriger Latenz zu über­tra­gen. Er wird häufig in Re­chen­zen­tren verwendet, um Com­pu­ter­clus­ter mit­ein­an­der zu verbinden. RDMA via In­fi­ni­Band ist eine der be­lieb­tes­ten Methoden für den schnellen Da­ten­aus­tausch.

Remote Direct Memory Access kann aber auch in Ver­bin­dung mit Flash oder SSD-Da­ten­trä­gern und NVDIMMs (nicht­flüch­ti­ge Spei­cher­mo­du­le) genutzt werden.

Die Evolution von RDMA ist noch in vollem Gange, denn mit RDMA over Fabrics steht schon die nächste An­wen­dungs­mög­lich­keit in den Start­lö­chern: Als Fabric (oder Gewebe) werden In­fra­struk­tu­ren zwischen mehreren Servern und Rechnern be­zeich­net. Diese un­ter­stüt­zen dann den Da­ten­trans­fer über Fibre-Channel-Netzwerke (Spei­cher­netz­wer­ke) und PCI Express (Standard für Hoch­leis­tungs­ver­bin­dun­gen).

Was sind die Vorteile und Nachteile von Remote Direct Memory Access?

Einer der Haupt­vor­tei­le von RDMA ist dessen her­aus­ra­gen­de Ge­schwin­dig­keit gegenüber anderen Tech­no­lo­gien und Pro­to­kol­len für die Da­ten­über­tra­gung wie iSCSI (SCSI-Protokoll über TCP), Fibre Channel (FC) oder Fibre Channel over Ethernet (FCoE). Wie schnell der Da­ten­aus­tausch am Ende aber tat­säch­lich ist, hängt auch von der RDMA-Variante ab. Ethernet und In­fi­ni­Band sind besonders beliebt, da diese Trans­fer­ge­schwin­dig­kei­ten von 10 bis 100 Gigabit pro Sekunde er­mög­li­chen. Dies eignet sich besonders für An­wen­dungs­ge­bie­te, die hohe Re­chen­leis­tun­gen erfordern, wie z. B. verteilte Da­ten­ban­ken, Big-Data-Analysen oder An­wen­dun­gen in Da­ten­zen­tren.

Al­ler­dings hat RDMA auch Nachteile im Vergleich zu Fibre Channels, die aktuell noch von vielen Firmen ein­ge­setzt werden. Um RDMA ein­zu­füh­ren, müssen Un­ter­neh­men hohe In­ves­ti­tio­nen tätigen, denn die Tech­no­lo­gie bedarf der An­schaf­fung neuer Hardware und Pro­to­koll­kom­po­nen­ten. Die Kosten von Remote Direct Memory Access sind somit mitunter erheblich höher als die für FC oder FCoE. Zudem funk­tio­niert der schnelle Da­ten­aus­tausch mit RDMA nur dann, wenn alle Systeme mit der Tech­no­lo­gie be­schleu­nigt werden.

Zum Hauptmenü