RDMA – Schlüsseltechnologie für arithmetische Netzwerke

Das Rechennetzwerk soll das Problem der Bereitstellung von Rechenleistung lösen, und mehrere Schlüsseltechnologien für Rechenleistung, einschließlich Remote Direct Data Access (RDMA), stehen in engem Zusammenhang mit Netzwerkleistungsindikatoren.

RDMA ist die Abkürzung für Remote Direct Memory Access und wurde entwickelt, um die Verzögerung der Datenverarbeitung auf der Serverseite bei der Netzwerkübertragung zu beheben.

RDMA überträgt Daten über das Netzwerk direkt in den Speicherbereich eines Computers und verschiebt Daten schnell von einem System in den Remote-Systemspeicher, ohne Auswirkungen auf das Betriebssystem, sodass nicht viele Rechenverarbeitungsfunktionen verwendet werden müssen. Es eliminiert den Overhead der externen Speicherreplikation und des Kontextwechsels, wodurch Speicherbandbreite und CPU-Zyklen für eine verbesserte Leistung des Anwendungssystems frei werden.

DMA im traditionellen Sinne

Direct Memory Access (DMA) ist ein Betriebsmodus, bei dem der I/O-Austausch vollständig durch Hardware erfolgt. In diesem Modus übernimmt der DMA-Controller die vollständige Bussteuerung von der CPU und der Datenaustausch erfolgt direkt zwischen Speicher und IO-Geräten, ohne über die CPU zu gehen. Der DMA-Controller sendet Adress- und Steuersignale an den Speicher, ändert die Adresse, zählt die Anzahl der übertragenen Wörter und meldet das Ende des Übertragungsvorgangs in einem Interrupt an die CPU.

Der Zweck der Verwendung der DMA-Methode besteht darin, den CPU-Overhead bei großen Datenübertragungen zu reduzieren, indem ein dedizierter DMA-Controller (DMAC) zur Generierung von Zugriffsadressen und zur Steuerung des Zugriffsprozesses verwendet wird. Die Vorteile bestehen darin, dass die Vorgänge durch Hardware-Schaltkreise implementiert werden, die Übertragungsgeschwindigkeit hoch ist, die CPU nicht stört, sondern nur während der Initialisierung und Beendigung beteiligt ist und die CPU für eine hohe Effizienz parallel mit den Peripheriegeräten arbeitet.

DMA im traditionellen Sinne

Funktionsprinzip von RDMA

Gewöhnliche NICs integrieren Hardware-Check-Unterstützung und Software-Verbesserungen, um die Anzahl der Kopien gesendeter Daten zu reduzieren, nicht jedoch die Anzahl der Kopien empfangener Daten, die eine große Anzahl von CPU-Rechenzyklen in Anspruch nehmen.

Der Arbeitsprozess einer normalen Netzwerkkarte

  1. Der Datensender muss die Daten vom User-Space-Puffer in den Socket-Puffer im Kernel-Space kopieren.
  2. Der Datensender muss zur Datenkapselung Paketheader im Kernelraum hinzufügen.
  3. Die Daten werden zur Netzwerkübertragung vom Socket-Puffer im Kernel-Space in den NIC-Puffer kopiert.
  4. Der Datenempfänger empfängt das vom Remote-Computer gesendete Paket und kopiert das Paket vom NIC-Puffer in den Socket-Puffer im Kernelraum.
  5. Nach einer Reihe mehrschichtiger Netzwerkprotokolle zum Parsen der Pakete werden die analysierten Daten vom Kernel-Space-Socket-Puffer in den User-Space-Puffer kopiert.
  6. Zu diesem Zeitpunkt wird der Systemkontextwechsel durchgeführt und die Benutzeranwendung aufgerufen.

Die empfangenen Pakete werden zunächst auf dem System zwischengespeichert, dort verarbeitet und die entsprechenden Daten einer TCP-Verbindung zugeordnet. Das empfangende System ordnet dann die unaufgeforderten TCP-Daten der entsprechenden Anwendung zu und kopiert die Daten aus dem Systempuffer an die Zielspeicheradresse. Dadurch entstehen Einschränkungen bei der Netzwerkgeschwindigkeit: Die zunehmende Intensität der Anwendungskommunikation und die schwere Aufgabe der Host-CPU bei der Verarbeitung von Daten zwischen dem Kernel und dem Anwendungsspeicher erfordern, dass das System kontinuierlich Host-CPU-Ressourcen hinzufügt, effiziente Software konfiguriert und das Systemlastmanagement verbessert.

Der Schlüssel zur Lösung des Problems besteht darin, unnötige und häufige Datenübertragungen in der Host-CPU zu eliminieren und die Nachrichtenlatenz zwischen Systemen zu verringern.

RDMA ist die direkte Übertragung von Informationen über das Netzwerk in den Speicher des Computers. Dabei werden Daten schnell von einem System in den Remote-Systemspeicher verschoben, ohne dass das Betriebssystem dadurch beeinträchtigt wird, sodass nicht viel von der Rechenleistung des Computers beansprucht wird. Das Kopieren und Austauschen von Text im externen Speicher entfällt, wodurch Busraum und CPU-Zyklen frei werden und die Anwendungsleistung verbessert wird. Die gängige Praxis erfordert, dass das System eingehende Informationen analysiert und markiert, bevor sie im richtigen Bereich gespeichert werden.

Der Arbeitsprozess von RDMA

  • Wenn eine Anwendung eine RDMA-Lese- oder Schreibanforderung ausführt, führt sie keine Datenreplikation durch. Ohne jegliche Beteiligung des Kernel-Speichers wird die RDMA-Anfrage von der im Benutzerbereich ausgeführten Anwendung an die lokale Netzwerkkarte (NIC=) gesendetNetzwerkkarte).
  • Die NIC liest den Inhalt des Puffers und überträgt ihn über das Netzwerk an die Remote-NIC.
  • Die über das Netzwerk übertragenen RDMA-Informationen enthalten die virtuelle Zieladresse, den Speicherschlüssel und die Daten selbst. Der Anforderungsabschluss kann entweder vollständig im Benutzerbereich (durch Abfrage der Abschlussausrichtung auf Benutzerebene) oder über den Kernelspeicher erfolgen, wenn die Anwendung bis zum Abschluss der Anforderung in den Ruhezustand wechselt. RDMA-Operationen ermöglichen es der Anwendung, Daten aus dem Speicher einer Remoteanwendung zu lesen oder in diesen zu schreiben.
  • Die Ziel-NIC erkennt den Speicherschlüssel und schreibt die Daten direkt in den Anwendungscache. Die für den Vorgang verwendete Remote-Adresse des virtuellen Speichers ist in den RDMA-Informationen enthalten.

Zero-Copy-Technologie in RDMA

Die Zero-Copy-Netzwerktechnologie ermöglicht es der Netzwerkkarte, Daten direkt zum und vom Anwendungsspeicher zu übertragen, wodurch das Kopieren von Daten zwischen Anwendungsspeicher und Kernel-Speicher entfällt. Durch die Kernel-Speicherumgehung können Anwendungen Befehle an die Netzwerkkarte senden, ohne Kernel-Speicheraufrufe auszuführen. Ohne jegliche Beteiligung des Kernel-Speichers werden RDMA-Anfragen vom Benutzerbereich an die lokale Netzwerkkarte und über das Netzwerk an die Remote-Netzwerkkarte gesendet, wodurch die Anzahl der Umgebungswechsel zwischen Kernel-Speicherbereich und Benutzerbereich bei der Verarbeitung von Netzwerkübertragungsströmen reduziert wird.

Zero-Copy-Technologie in RDMA

Auf der linken Seite sehen wir das traditionelle TCP/IP-Protokoll und den Kommunikationsprozess, der von einer normalen Netzwerkkarte durchgeführt wird. Wenn die Anwendungsschicht die Datennachricht von der Netzwerkkarte erhalten möchte, muss sie offensichtlich zwei Puffer und den normalen TCP/IP-Protokollstapel durchlaufen, wobei der Soft-Interrupt für das Lesen der Datennachricht aus dem ersten Empfangswarteschlangenpuffer verantwortlich ist. Dann wird es nach MSGBuff kopiert und schließlich liest die Anwendungsschicht die Datennachricht über einen Systemaufruf in den Benutzerstatus. Auf der rechten Seite hingegen handelt es sich um einen Zero-Copy-Prozess unter Verwendung von RDMA mit den folgenden Regeln.

1) RDMA und sein LLP (Lower Layer Protocol) können auf der NIC namens RNIC implementiert werden (RNIC steht für RDMA Network Interface Card).

2) Die beiden in 1) genannten Implementierungen durchlaufen beide die folgenden Schritte: Die gesendeten und empfangenen Daten werden in einem markierten Speicherbereich zwischengespeichert, und dieser Speicherbereich wird dann gemäß den zwischen den beiden Parteien ausgehandelten Regeln direkt dem Anwendungsbereich zugeordnet von LLP und RDMA, wodurch bei der herkömmlichen Implementierungsmethode mindestens zwei Speicherkopien reduziert werden, d. h. eine Nullkopie erreicht wird. Die dünne Linie zeigt die Richtung des Datenflusses an. Tatsächlich wird der Marker-Cache über RDMA direkt dem Benutzer-Cache-Speicherplatz zugeordnet.

Zusammensetzung von RDMA

RDMA wird durch die drei Protokolle RDMA, DDP und MPA implementiert, die die iWARP-Protokollfamilie bilden und zur Gewährleistung der Interoperabilität von Hochgeschwindigkeitsnetzwerken verwendet werden. Das DDP sollte die RDMA-Nachrichten in DDP-Pakete kapseln und sie an die untere markerbasierte MPA-Schicht (Protocol-Data-Unit-Aligned) weiterleiten, die die Kennung, Länge und CRC-Prüfungen in die DDP-Pakete einfügt, um die MPA-Daten zu bilden Segment. Die IP-Schicht fügt dem Paket die notwendigen Netzwerk-Routing-Daten hinzu.

Datenoperationsmethoden

Das RDMA-Protokoll bietet sieben Arten von Steueroperationen für den Remote-Direktdatenpuffer. Jeder RDMA-Steuervorgang, mit Ausnahme des Remote-Puffer-Lesevorgangs, generiert nur eine entsprechende RDMA-Nachricht.

  1. Senden: Der Sendevorgang verwendet die Sendenachricht, um die Daten von der Senderanwendung direkt an einen Puffer zu senden, der nicht explizit von der Datenempfängeranwendung deklariert wurde. Daher verwendet die Sendenachricht das DDP-Datenübertragungsmodell für ungetaggte Puffer, um die obere Anwendungsnachricht an den mit Meta-Tags versehenen Warteschlangenpuffer der empfangenden Anwendung zu übertragen.
  2. Mit Ungültigkeit senden: Fügen Sie einen Stag zum Senden hinzu. Sobald die Nachricht im vom Stag angegebenen Peer-Anwendungspuffer zwischengespeichert wird und die Nachrichteneingangsbenachrichtigung an die Empfängeranwendung übermittelt wird, erlaubt die Empfängeranwendung der Senderanwendung nicht, auf den Puffer zuzugreifen, bis die Empfängeranwendung den Puffer erneut als verfügbar deklariert damit die Absenderanwendung sie weiterhin verwenden kann.
  3. Mit angefordertem Ereignis senden (Senden mit SE): Diese Nachricht wird verwendet, um die Daten der Senderanwendung direkt an den ungetaggten Warteschlangenpuffer der Datenempfängeranwendung zu senden, mit allen Funktionen von Senden und hinzugefügtem Feedback zur Nachricht.
  4. Mit Solicited Event and Invalidate senden (Send with SE and Invalidate): Die dieser Nachricht entsprechende Aktion besteht darin, die Daten der Senderanwendung direkt an den Puffer zu senden, der noch nicht explizit von der Datenempfängeranwendung deklariert wurde, die über alle Funktionen von Send verfügt mit SE und fügt der Nachricht Feedback hinzu. Es verfügt über alle Funktionen von Send with SE und fügt der Nachricht Feedback hinzu.
  5. Remote Direct Memory Access Write: Entspricht dem RDMA-Schreibvorgang und wird verwendet, um die Daten von der Senderanwendung an den von der Empfängeranwendung deklarierten Puffer zu übergeben. Bei diesem Vorgang sollte die Empfängeranwendung im Voraus einen markierten Anwendungs-Empfangspuffer zugewiesen haben und der Senderanwendung ermöglichen, den Pufferschreibvorgang direkt durchzuführen. Gleichzeitig erhält die Senderanwendung in der Deklaration auch die Informationen über den Ort, die Größe und den entsprechenden Stag des besagten Puffers. Die Senderanwendung initiiert dann einen RDMA-Schreibvorgang, der das Tagged-Puffer-Datenübertragungsmodell des DDP verwendet, um die Nachricht der Senderanwendung direkt in den von der Empfängeranwendung deklarierten Tagged-Puffer zu übertragen.
  6. Remote Direct Memory Access Read: Entspricht dem RDMA-Lesevorgang, der die Daten vom markierten Anwendungspuffer auf der gegenüberliegenden Seite (entsprechend der Datenquelle) an den markierten Anwendungspuffer auf der lokalen Seite (entsprechend dem Datenempfänger) weiterleitet. Die Anwendung der oberen Schicht der Datenquelle muss zunächst den markierten Anwendungspuffer im Voraus zuweisen und direkte Lesevorgänge für den Inhalt dieses Puffers zulassen. Gleichzeitig muss die Anwendung der oberen Schicht der Datenquelle die zu deklarierenden Informationen wie Standort, Größe und entsprechenden Status des Datenquellenpuffers an die lokale Anwendung der oberen Schicht weitergeben. Nach Erhalt der obigen Deklaration weist die obere Anwendung des Datenempfängers den entsprechenden getaggten Anwendungspuffer zu und beginnt mit dem Lesen von Daten von der anderen Seite.
  7. Beenden: Der Beendigungsvorgang verwendet eine Beendigungsnachricht, um die lokale Anwendung über die Fehlermeldung zu informieren, die zum Beenden des aktuellen Datendirekt-Cache-Vorgangs aufgetreten ist. Die Terminate-Operation verwendet das Meta-Tagged-Puffermodell von DDP, um Terminate an den nicht-Tagged-Puffer auf der anderen Seite zu übergeben.

RDMA-Datenübertragungsprozess

Anwendungen von RDMA

RDMA hat den Vorteil, dass beim Aufbau des Internets mithilfe von TCP/IP- und Ethernet-Standards herkömmliche Netzwerkhardware verwendet wird, und wird dazu verwendet, kleine Server zu einem Cluster zu verbinden, der die großen Datenbanken verarbeiten kann, die heutige High-End-Server mit mehr als einem Dutzend Prozessoren können handhaben. Wenn Sie RDMA, TOE und 10 GB Ethernet Zusammengenommen ist es eine ziemlich beeindruckende Technologie.

TOE (TCP OffLaden der Engine, Verarbeitung des TCP/IP-Protokolls von der CPU zur Netzwerkkarte)

Während der Host-Kommunikation über das Netzwerk muss die CPU viele Ressourcen für die Paketverarbeitung mehrschichtiger Netzwerkprotokolle aufwenden, einschließlich Datenreplikation, Protokollverarbeitung und Interrupt-Verarbeitung. Die TOE-Technologie befreit die CPU von diesen Vorgängen und verlagert die oben genannte Arbeit des Host-Prozessors auf die Netzwerkkarte. Die TOE-Technologie erfordert eine bestimmte Netzwerkkarte, die sie unterstützt OffLaden, das in der Lage ist, Pakete mehrschichtiger Netzwerkprotokolle zu kapseln. Während gewöhnliche NICs einen Interrupt für jedes Paket auslösen, ermöglichen TOE-NICs jeder Anwendung, einen vollständigen Datenverarbeitungsprozess abzuschließen, bevor sie einen Interrupt auslöst, wodurch die Reaktionslast des Servers auf Interrupts erheblich reduziert wird.

Die TOE-NIC führt die Protokollverarbeitung innerhalb der NIC durch, während sie Daten empfängt. Daher müssen die Daten nicht in den Kernel-Space-Puffer, sondern direkt in den User-Space-Puffer kopiert werden. Dieser „Zero-Copy“-Ansatz vermeidet unnötiges Hin- und Herkopieren von Daten zwischen der Netzwerkkarte und dem Server.

natives RDMA

RDMA entwickelt sich schnell zu einem grundlegenden Merkmal von Hochgeschwindigkeitsclustern und Servernetzwerken. InfiniBand-Netzwerke und auf der Architektur virtueller Schnittstellen basierende Netzwerke unterstützen RDMA, während RDMA über TCP/IP für die Verwendung mit Transport verwendet wird offLoad Engine-Netzwerkkarten befinden sich derzeit in der Entwicklung. Zu den Protokollen, die eine hohe Leistung mithilfe von RDMA unterstützen, gehören das Sockets Direct Protocol, das SCSI RDMA Protocol (SRP) und das Direct Access File System (DAFS). Zu den Kommunikationsbibliotheken, die RDMA verwenden, gehören die Direct Access Provider Library (DAPL), die Message Passing Interface (MPI) und die Virtual Interface Provider Library (VIPL). Cluster, auf denen verteilte Anwendungen ausgeführt werden, sind einer der Bereiche, in denen RDMA herausragende Leistungen erbringen kann, da es im Vergleich zu anderen frühen RDMA-Anwendungen mit der gleichen Anzahl von Knoten eine höhere Leistung und bessere Skalierbarkeit bieten kann, wenn es mit DAPL oder VIPL und auf dem Cluster ausgeführter Datenbanksoftware verwendet wird. Darüber hinaus entwickelt sich die RDMA-Technologie schnell zu einem grundlegenden Merkmal von Hochgeschwindigkeits-Clustersystemen und Speichernetzwerken, bei denen iWARP/RDMA ein Grundbaustein ist. iWARP (Internet Wide Area RDMA Protocol) ist eine auf dem TCP/IP-Protokoll basierende RDMA-Technologie, die die RDMA-Technologie auf dem vorhandenen TCP/IP-Protokollstapel implementiert, indem sie eine DDP-Schicht über TCP hinzufügt. Es unterstützt die Verwendung der RDMA-Technologie auf einer Standard-Ethernet-Infrastruktur, ohne dass eine verlustfreie Ethernet-Übertragung erforderlich ist, die von Switches unterstützt wird. Server müssen jedoch Netzwerkkarten verwenden, die iWARP unterstützen. Aufgrund des Einflusses von TCP ist die Leistung jedoch etwas schlechter. Darüber hinaus nutzt iSER, eine iSCSI-Erweiterung für RDMA, die RDMA-Funktionen vollständig aus. Zu den frühen RDMA-Anwendungen gehörten der Fernzugriff auf Dateiserver über DAFS und der Zugriff auf Speichergeräte über SRP. RDMA entwickelt sich schnell zu einem grundlegenden Merkmal von Hochgeschwindigkeitsclustern und Servernetzwerken.

Anwendungen in NAS und SAN

Herkömmlicher Direct-Attached-Storage (DAS) ist eine serverzentrierte Speicherstruktur mit Einschränkungen wie Kapazitätsbeschränkungen, begrenzten Verbindungsentfernungen und Schwierigkeiten bei der gemeinsamen Nutzung und Verwaltung. Es kann die Anwendungsanforderungen des Netzwerkzeitalters nicht erfüllen. Der Beginn des Netzwerkzeitalters hat enorme Veränderungen in der Speichertechnologie mit sich gebracht. Network Attached Storage (NAS) und Storage Area Networks (SAN) können reichhaltige, schnelle und praktische Speicherressourcen für Anwendungssysteme im Netzwerk bereitstellen und gleichzeitig gemeinsame Speicherressourcen und eine zentrale Verwaltung ermöglichen, was heute zu einem idealen Speicherverwaltungs- und Anwendungsmodell wird. Allerdings weisen NAS-Strukturen einige schwer zu lösende Probleme auf, wie z. B. begrenzte Übertragungskapazität, begrenzte Skalierbarkeit, begrenzte Backup-Funktionen und ineffektive Unterstützung für Datenbankdienste. DAFS integriert die Vorteile von RDMA- und NAS-Speicherfunktionen, wobei alle Lese- und Schreibvorgänge direkt vom RDMA-Treiber ausgeführt werden, wodurch die durch Netzwerkdateiprotokolle verursachte Systemlast reduziert wird. In Zukunft werden NAS-Speichersysteme die DAFS-Technologie übernehmen, um die Systemleistung zu verbessern und in Bezug auf Leistung und Preis stark mit SAN-Speichersystemen zu konkurrieren.

Unendlich

Die vier Hauptvorteile von InfiniBand basieren auf Standardprotokollen, einer Leistung von 10 GB/s, RDMA und Transport offBelastung. Sein Vorteil liegt in der Hochgeschwindigkeitsübertragung von RDMA und Transport offMotoren laden. InfiniBand-Netzwerke und auf der Architektur virtueller Schnittstellen basierende Netzwerke unterstützen die Verwendung von RDMA, während RDMA über TCP/IP mit Transport erfolgt offLoad-Engine-NICs unterstützen InfiniBand-Server. Host-Channel-Adapter (HCA) konvertieren Protokolle in den internen PCI-X- oder PCI-Express-Bus des Servers, und HCAs mit RDMA-Funktionalität werden manchmal als Kernel-Bypass bezeichnet. InfiniBand (IB) ist eine RDMA-Technologie, die auf dem basiert InfiniBand Architektur, die dedizierte IB-Netzwerkkarten und IB-Switches erfordert. In puncto Leistung sind InfiniBand-Netzwerke eindeutig die besten, allerdings sind auch die Preise für Netzwerkkarten und Switches sehr hoch.

RoCE oder RDMA over Ethernet ist eine auf Ethernet basierende RDMA-Technologie und wurde ebenfalls von der IBTA vorgeschlagen. RoCE unterstützt die Verwendung der RDMA-Technologie auf Standard-Ethernet-Infrastrukturen, erfordert jedoch Switch-Unterstützung für verlustfreie Ethernet-Übertragung, und Netzwerkkarten müssen spezielle NICs sein, die RoCE unterstützen.

Da sich die Technologie weiterentwickelt, können die Mainstream-RDMA-Technologien in zwei Lager unterteilt werden: IB-Technologie und IBoE oder IB over Ethernet, das Ethernet-basierte RDMA-Technologien unterstützt. Zu dieser Technologie gehören RoCE und iWARP. IBoE oder IB over Ethernet kann über Ethernet verbreitet und mit Ethernet-Switches verwendet werden, während das IB-Protokoll dedizierte Hardware und Router erfordert.

Mit der kontinuierlichen Weiterentwicklung von Rechenleistungsnetzwerken wird die ursprünglich für Einzelmaschinen- oder lokale Anwendungen verwendete DMA-Technologie auf größere Räume angewendet und zu einer Schlüsseltechnologie in Rechenleistungsnetzwerken.

RDMA

Hinterlasse einen Kommentar

Nach oben scrollen