Was ist Remote Direct Memory Access (RDMA)?
Remote Direct Memory Access, kurz RDMA, ermöglicht es, Daten schnell und einfach aus dem Hauptspeicher eines Computersystems in den Hauptspeicher eines anderen Computers zu schicken. Das ist besonders dann hilfreich, wenn es sich um große Datensätze oder komplexe Prozesse handelt, wie sie beispielsweise beim maschinellem Lernen benötigt werden. Aber was genau ist RDMA und wie funktioniert es?
Definition: Remote Direct Memory Access (RDMA)
Wie beim verwandten Direct Memory Access (DMA) kann man mit Remote Direct Memory Access (RDMA) Daten direkt aus dem Haupt- bzw. Arbeitsspeicher eines Computers in den Speicher eines anderen Systems übertragen. Betriebssysteme, CPU oder Cache bleiben in diesem Fall gänzlich außen vor, sodass weniger Hardware-Ressourcen belastet werden. Der Speichertransfer mit RDMA läuft zu diesem Zweck über einen eigenen Zwischenspeicher, in den der Anwender seine Daten transferiert. Die Technologie greift dabei auf die Netzwerkkarte eines Systems zu, wobei die Übertragung standardmäßig über Ethernet oder InfiniBand abgewickelt wird.
Remote Direct Memory Access ist eine Technologie, die auf dem Direct Memory Access basiert. Sie ermöglicht es, Daten vom Arbeitsspeicher eines Computers in den Arbeitsspeicher eines anderen Systems zu transferieren, ohne dabei die Betriebssysteme, Cache oder CPU zu belasten.
RDMA wird bereits von vielen verschiedenen Produkten (Hard- und Software) unterstützt. Hierzu zählen z. B. folgende Lösungen:
- Apache Hadoop
- Spark
- Baidu Paddle
- Dell EMC PowerEdge Server
- Intel Xeon Scalable Prozessoren
- Microsoft Windows Server (2012 und neuer)
Wie funktioniert RDMA?
Damit der Datenaustausch über RDMA funktioniert, bedarf es allem voran eines passenden Sets an Protokollen in der Netzwerkkarte – typischerweise wird TCP/IP als Basis verwendet. Erst durch ein geeignetes Transportprotokoll kann die Technologie beispielsweise das sogenannte Zero Copy Networking unterstützen – einen Prozess, bei dem der Computerprozessor nicht in Anspruch genommen wird. Wenn beide Systeme den Einsatz von Remote Direct Memory Access ermöglichen, ist der Datentransfer zwischen ihnen erheblich schneller als der zwischen Computern ohne RDMA-Support.
Remote Direct Memory Access ist vor allem hilfreich bei parallelen Vorgängen mit Hochleistungsrechnern.
Für den reibungslosen Transfer mit RDMA bieten die folgenden Netzwerktechnologien und Schnittstellen die besten Voraussetzungen:
- RDMA over Converged Ethernet (RoCE): RoCE ermöglicht RDMA über eine Ethernet-Verbindung.
- Internet Wide Area RDMA Protocol (IWARP): Für den Datentransfer greift IWARP auf das Transportprotokoll TCP oder alternativ auf Streaming TCP zu. IWARP wurde von der Internet Engineering Task Force (IETF) ins Leben gerufen, um Aufgaben und Prozesse direkt auf Anwendungen in einem anderen System zu schreiben.
- InfiniBand: InfiniBand ist ein Kommunikationsstandard für Hochleistungscomputer, um Dateien mit niedriger Latenz zu übertragen. Er wird häufig in Rechenzentren verwendet, um Computercluster miteinander zu verbinden. RDMA via InfiniBand ist eine der beliebtesten Methoden für den schnellen Datenaustausch.
Remote Direct Memory Access kann aber auch in Verbindung mit Flash oder SSD-Datenträgern und NVDIMMs (nichtflüchtige Speichermodule) genutzt werden.
Die Evolution von RDMA ist noch in vollem Gange, denn mit RDMA over Fabrics steht schon die nächste Anwendungsmöglichkeit in den Startlöchern: Als Fabric (oder Gewebe) werden Infrastrukturen zwischen mehreren Servern und Rechnern bezeichnet. Diese unterstützen dann den Datentransfer über Fibre-Channel-Netzwerke (Speichernetzwerke) und PCI Express (Standard für Hochleistungsverbindungen).
Was sind die Vorteile und Nachteile von Remote Direct Memory Access?
Einer der Hauptvorteile von RDMA ist dessen herausragende Geschwindigkeit gegenüber anderen Technologien und Protokollen für die Datenübertragung wie iSCSI (SCSI-Protokoll über TCP), Fibre Channel (FC) oder Fibre Channel over Ethernet (FCoE). Wie schnell der Datenaustausch am Ende aber tatsächlich ist, hängt auch von der RDMA-Variante ab. Ethernet und InfiniBand sind besonders beliebt, da diese Transfergeschwindigkeiten von 10 bis 100 Gigabit pro Sekunde ermöglichen. Dies eignet sich besonders für Anwendungsgebiete, die hohe Rechenleistungen erfordern, wie z. B. verteilte Datenbanken, Big-Data-Analysen oder Anwendungen in Datenzentren.
Allerdings hat RDMA auch Nachteile im Vergleich zu Fibre Channels, die aktuell noch von vielen Firmen eingesetzt werden. Um RDMA einzuführen, müssen Unternehmen hohe Investitionen tätigen, denn die Technologie bedarf der Anschaffung neuer Hardware und Protokollkomponenten. Die Kosten von Remote Direct Memory Access sind somit mitunter erheblich höher als die für FC oder FCoE. Zudem funktioniert der schnelle Datenaustausch mit RDMA nur dann, wenn alle Systeme mit der Technologie beschleunigt werden.