Was ist eigentlich NVMe und NVMe-oF?

Bildquelle: Hadrian / Shutterstock.com

Protokolle für die Datenübertragung in Massenspeichermedien gibt es viele. Eines ist Non-Volatile Memory Express oder NVMe, das im Jahr 2011 eingeführt wurde, also noch  relativ neu ist. In der vollständigen Benennung heißt es Non-Volatile Memory Host Controller  Interface Specification (NVMHCIS).

Bei der Entwicklung von NVMe lag der Fokus auf der Optimierung  für Flash-basierte, nichtflüchtige Massenspeichermedien (z. B. Solid-State Drives, SSD). NVMe  verbindet als logische Schnittstelle Flash-Speicher mit einem Rechner, in der Mehrheit Server und Workstations, aber zunehmend auch Gaming PCs. 

Anzeige

Vorteile von NVMe 

Eigenschaften von NVMe sind neben der Flash-Optimierung die Multithreading-Fähigkeit, hohe IOPS Leistung und geringe Latenz sowie die bessere Skalierbarkeit gegenüber älteren Protokollen wie SATA. Ein großer Vorteil ist, dass es ohne herstellerspezifische Treiber auskommt. Das NVMe-Protokoll kann für eine Vielzahl von Betriebssystemen verwendet werden, da es Daten  parallel verarbeitet und den bestehenden PCIe-Standard nutzt. Es unterstützt verschiedene Ausführungen von nichtflüchtigen Flash-Massenspeichern, wie PCIe, SFF (Small Form Factor) mit  U.2.-Anschluss oder den Standard NGSFF (Next Generation Small Form Factor), der besser unter dem  Kürzel M.2. bekannt ist. Die Hot-Swap-Fähigkeit und der kleine Befehlssatz mit geringem Overhead sind weitere Vorzüge, durch die NVMe sich auch bestens für Workstations, Hosting und High  Performance-Tasks eignet. 

Die NVMe-Schnittstelle verringert erheblich Eingabe- und Ausgabebefehle im Speicher und  unterstützt im Interrupt- oder Polling-Modus laufende betriebssystemseitige Gerätetreiber. So  können eine bessere Leistung und niedrigere Latenzen sichergestellt werden. 

Die NVMe-Architektur verfügt über einen High-Performance-Warteschlangenmechanismus, der die  extrem hohe Menge von bis zu 65.535 E/A-Warteschlangen mit jeweils bis zu 65.535 Befehlen  unterstützt! Dies ist gegenüber SATA mit 1 Warteschlange und 23 Einträgen bzw. SAS mit 1  Warteschlange und 256 Einträgen eine gigantische Steigerung – und da die Warteschlangen den CPU Kernen zugeordnet sind, kann die Performance skaliert werden. 

Ausgehend von der NVMe-Spezifikation wurden weitere Spezifikationen für bestimmte Zwecke  abgeleitet, wie zum Beispiel NVMe-MI und NVMe-oF. 

  • NVMe Management Interface (NVMe-MI):
    Architektur für Monitoring/Konfiguration von Storage-Hardware (Temperatur, Leistung,  Health, etc.) per In-Band- und Out-of-Band-Management
     
  • NVMe-over-Fabrics (NVMe-oF, mit z. B. NVMe-over-RDMA oder NVMe-over-TCP):
    Schnellere Datenübertragung bei Massenspeichermedien in Netzwerken via InfiniBand, FC (Fibre Channel) oder Ethernet 

Wir stellen an dieser Stelle das NVMe-oF-Prinzip vor. 

NVMe over Fabrics (NVME-oF) 

Um NVMe über direkt angebundene flashbasierte Speicher hinausgehend auch für die  Datenübertragung in Netzwerken per Ethernet, Fibre Channel oder InfiniBand nutzbar zu machen,  wurde es als NVME over Fabrics (NVME-oF) weiterentwickelt. 

Die traditionellen Standard für Speichersysteme sind das veraltete SCSI, gefolgt von Fibre Channel  (FC) und SAS. Später kam die Internetvariante von SCSI: iSCSI. Damit konnten Daten auch an  geografisch entfernten Speicher übertragen werden. Der Nachteil von iSCSI ist jedoch der große  Overhead der Datenpakete, der die Übertragungsleistung drosselt. Die Alternative Fibre Channel (FC)  wiederum ist von der Anschaffung teurer FC-Hardware abhängig. 

Mit NVMe-oF wurden diese Probleme gelöst: 

Es ermöglicht bei SSD-Direktanschluss eine 10 bis 15 Prozent bessere Transportleistung einerseits  und aufgrund der NVMe-Controller und -Fabric im Netzwerk die Verbindung von Tausenden NVMe Hosts andererseits. Dank Multi-Queue mit getrennten Warteschlangen, die ca. 65.000 Aufträge  bewältigen können, werden die Ressourcen optimal gemeinsam genutzt: Bottlenecks und lange  Wartezeiten gehören der Vergangenheit an! 

Vor NVMe gab es das Problem, dass SATA und PCIe die potenzielle Leistung von Flash Speichermedien noch nicht vollständig ausschöpfen konnten. Erst das speziell für die Verbindung von  SSDs mit PCIe entwickelte NVMe machte dies möglich und die Erweiterung um Ethernet- und FC Eigenschaften bei NVMe-oF liefert schließlich die ersehnte hohe Übertragungsleistung in Netzwerken  mit Flash-Speicher mit schnellerer und effizienterer Server-Storage-Konnektivität und geringerer Server-CPU-Auslastung. 

NVMe-oF stellt allgemein sicher, dass NVMe auch in bereits existierenden Fibre-Channel-Netzwerken  funktioniert.
 

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Weitere NVMe-oF-Varianten 

Der NVMe-oF-Standard wurde für verschiedene Zwecke und Szenarien weiterentwickelt, so gibt es: 

  • NVMe over TCP:
    Erweiterung auf TCP/IP-basierte (Transmission Control Protocol/Internet Protocol)  Netzwerke
     
  • NVMe over RDMA (Remote Direct Memory Access):
    Erweiterung auf verschiedene Netzwerke/Netzwerkprotokolle ohne Notwendigkeit eines  Storage-Controller-Layers. NVMe over RDMA beinhaltet die Untervarianten RoCE (RDMA  over Converged Ethernet), iWARP (Internet Wide Area RDMA Protocol) und InfiniBand.

NVMe Host Software

NVMe-Schema. Bildquelle: Serverhero

Auf dem Weg zu Software-Defined: All Flash und JBoF mit NVMe-oF

Indem das NVMe-oF-Konzept auf das gesamte Unternehmen oder Rechenzentrum angewendet wird,  ergeben sich entsprechend erweiterte Möglichkeiten: 

Durch die Zusammenfassung der vorhandenen flashbasierten Laufwerke zu einem „Pool“  (Virtualisierung) wird der physische Speicher vom Hardware-Controller logisch abgetrennt. Diese Abstrahierung und virtuelle Vereinigung mehrerer Laufwerke ergibt ein JBoF („Just a Bunch of Flash drives“), das eine bessere Performance als SATA/SAS erzielt. Die wesentliche Innovation dabei ist  jedoch, dass dank höherer Geschwindigkeit und größerer Bandbreite im Netzwerk ein gemeinsam  genutzter Netzwerkspeicher entsteht, d. h. Anwendungen können statt auf der Host-Hardware bzw. Host-Software nun auf diesem zentralen Network Storage laufen. Dies und der Umstand, dass  Zugriffe auf NVMe-Controller, also auf netzwerkintegrierte Laufwerke, möglich sind, so als ob es  lokale Laufwerke wären, bringen Netzwerk und Data Center näher zusammen. NVMe-oF entspricht also ganz dem „Software-Defined“-Trend, dessen Ziel es ist, nur noch mit virtualisierten, d. h. ausschließlich als Code ausgeführten Lösungen, anstelle von hardwarebasierten Konzepten zu  arbeiten. 

Seit einiger Zeit gibt es Hersteller, die mit (All-)Flash-Arrays (AFA) reine SSD- bzw. NVMe-Systeme  anbieten.

Willi

Meutzner

Serverhero GmbH Köln -

Technischer Redakteur

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.