NVMe-oF (NVMe over Fabrics)
NVMe over Fabrics, auch bekannt als NVMe-oF und Non-Volatile Memory Express over Fabrics, ist eine Protokollspezifikation, die entwickelt wurde, um Hosts über eine Netzwerk-Fabric mithilfe des NVMe-Netzwerkprotokolls mit Speichern zu verbinden.
Mithilfe eines auf NVMe-Nachrichten basierenden Befehls ermöglicht dieses Protokoll Datenübertragungen zwischen einem Host-Computer und einem Ziel-Solid-State-Storage oder -System über ein Netzwerk. Die Daten können über Ethernet, Fibre Channel (FC) oder InfiniBand übertragen werden.
NVMe-oF ermöglicht einem Unternehmen ein hochleistungsfähiges Speichernetzwerk mit geringer Latenz, hohem Durchsatz und reduzierter Auslastung von CPUs durch Anwendungs-Host-Server.
Die Non-Profit-Organisation NVM Express Inc. veröffentlichte am 1. März 2011 die Version 1.0 der NVMe-Spezifikation. Am 5. Juni 2016 veröffentlichte sie die Version 1.0 der NVMe-oF-Spezifikation. NVMe Version 1.3, die im Mai 2017 erschien, fügte Funktionen zur Verbesserung der Sicherheit, der gemeinsamen Nutzung von Ressourcen und der Ausdauer von Solid-State-Laufwerken (SSD) hinzu. NVMe 2.0 wurde im Juni 2021 veröffentlicht und fügte Funktionen wie Endurance Group Management, Key Values und Zoned Namespaces (ZNS) hinzu.
NVM Express Inc. schätzt, dass das NVMe-oF-Protokoll zu 90 Prozent mit dem NVMe-Protokoll des SSD-Industriestandards übereinstimmt, das für die lokale Nutzung über den PCIe-Bus (Peripheral Component Interconnect Express) eines Computers konzipiert ist.
Seit der ursprünglichen Entwicklung von NVMe-oF gab es mehrere Implementierungen des Protokolls, darunter NVMe-oF mit RDMA, FC oder TCP/IP.
Einsatzmöglichkeiten von NVMe over Fabrics
Obwohl es sich noch um eine relativ junge Technologie handelt, wurde NVMe-oF bereits in großem Umfang in Netzwerkarchitekturen integriert. NVMe-oF kann dazu beitragen, ein hochmodernes Speicherprotokoll bereitzustellen, das die Vorteile der heutigen SSDs voll ausschöpfen kann. Das Protokoll kann auch dazu beitragen, die Lücken zwischen Direct-Attached Storage (DAS) und Storage Area Networks (SAN) zu schließen, so dass Unternehmen Arbeitslastenunterstützen können, die einen hohen Durchsatz und geringe Latenzzeiten erfordern.
NVMe-Flash-Karten haben zunächst herkömmliche SSDs als Speichermedien ersetzt. Diese Anordnung bietet vielversprechende Leistungsverbesserungen im Vergleich zu bestehenden All-Flash-Speichern, hat aber auch ihre Nachteile. NVMe erfordert Software-Tools von Drittanbietern, um die Schreibdauer (Write Endurance) und die Datendienste zu optimieren. Engpässe bleiben in NVMe-Arrays auf der Ebene des Speicher-Controllers bestehen.
Weitere Anwendungsfälle für NVMe-oF sind die Optimierung von Echtzeitanalysen sowie die Rolle bei künstlicher Intelligenz und maschinellem Lernen.
Die Verwendung von NVMe-oF ist eine relativ neue Phase in der Entwicklung der Technologie und ebnet den Weg für die Einführung von Flash-Systemen im Rack-Maßstab, die ein natives End-to-End-Datenmanagement integrieren. Wie schnell sich die Technologie durchsetzen wird, hängt davon ab, wie schnell die Entwicklung des NVMe-Ökosystems in allen Bereichen voranschreitet.
Vorteile von NVMe over Fabrics
NVMe-basierte Speicherlaufwerke bieten die folgenden Vorteile:
- Geringe Latenz
- Zusätzliche parallele Anfragen
- Erhöhte Gesamtleistung
- Verkürzung der Speicherstapel (Storage Stacks) des Betriebssystems (OS) auf der Serverseite
- Verbesserungen der Leistung von Speicher-Arrays
- Schnellere Lösung mit einem Wechsel von Serial-Attached SCSI (SAS)/Serial Advanced Technology Attachment (SATA)-Laufwerken zu NVMe-SSDs
- Eine Vielzahl von Implementierungsarten für unterschiedliche Szenarien
Technische Merkmale von NVMe over Fabrics
Zu den technischen Merkmalen von NVMe-oF gehören die folgenden:
- Hohe Geschwindigkeit
- Niedrige Latenzzeit über Netzwerke
- Credit-basierte Flow Control
- Skalierbarkeit bis zu Tausenden von anderen Geräten
- Multipath-Unterstützung der Fabric, um mehrere Pfade zwischen dem NVMe-Host-Initiator und dem Speicherziel gleichzeitig zu ermöglichen
- Multihost-Unterstützung der Fabrics, um das Senden und Empfangen von Befehlen von mehreren Hosts und Speichersubsystemen gleichzeitig zu ermöglichen.
NVMe over Fabrics vs. NVMe: Hauptunterschiede
NVMe ist eine Alternative zum SCSI-Standard (Small Computer System Interface) für die Verbindung und Übertragung von Daten zwischen einem Host und einem peripheren Zielspeichergerät oder -system. NVMe ist für die Verwendung mit schnelleren Medien wie SSDs und Post-Flash-Speichertechnologien konzipiert. Der NVMe-Standard beschleunigt die Zugriffszeiten um mehrere Größenordnungen im Vergleich zu den für rotierende Medien entwickelten SCSI- und SATA-Protokollen.
NVMe unterstützt 64.000 Warteschlangen, jede mit einer Warteschlangentiefe (queue depth) von bis zu 64.000 Befehlen. Alle Eingabe-/Ausgabebefehle (I/O) und die darauffolgenden Antworten werden auf demselben Prozessorkern ausgeführt, wodurch Multicore-Prozessoren ein hohes Maß an Parallelität ermöglichen. Eine I/O-Sperre ist nicht erforderlich, da jeder Anwendungs-Thread eine eigene Warteschlange erhält.
NVMe-basierte Geräte übertragen Daten über einen seriellen PCIe-Erweiterungssteckplatz, das heißt es ist kein dedizierter Hardware-Controller für die Weiterleitung des Netzwerkspeicherverkehrs erforderlich. Mit NVMe kann eine Host-basierte PCIe-SSD Daten effizienter an ein Speicherziel oder Subsystem übertragen.
Einer der Hauptunterschiede zwischen NVMe und NVMe-oF ist der Transport-Mapping-Mechanismus zum Senden und Empfangen von Befehlen oder Antworten. NVMe-oF verwendet ein nachrichtenbasiertes Modell für die Kommunikation zwischen einem Host und einem Zielspeichergerät. Lokales NVMe ordnet Befehle und Antworten über das PCIe-Schnittstellenprotokoll dem gemeinsamen Speicher im Host zu.
Während es die Leistungsmerkmale von PCIe Gen 3 widerspiegelt, fehlt NVMe eine native Nachrichtenschicht, um den Datenverkehr zwischen entfernten Hosts und NVMe-SSDs in einem Array zu steuern. NVMe-oF ist die Antwort der Branche auf die Entwicklung einer Messaging-Schicht.
NVMe over Fabrics mit RDMA
Die NVMe-oF-Nutzung von RDMA (Remote Direct memory Access) wird von einer technischen Untergruppe der NVM Express-Organisation definiert. Zu den verfügbaren Mappings gehören RDMA over Converged Ethernet und Internet Wide Area RDMA Protocol for Ethernet and InfiniBand.
RDMA ist ein Memory-zu-Memory-Transportmechanismus zwischen zwei Computern. Daten werden von einem Speicheradressraum zu einem anderen gesendet, ohne das Betriebssystem oder den Prozessor aufzurufen. Das Ergebnis sind ein geringerer Overhead und schnellere Zugriffs- und Antwortzeiten bei Abfragen, wobei die Latenzzeit in der Regel in Mikrosekunden angegeben wird.
NVMe dient als Protokoll zur Übertragung von Speicherdaten über RDMA over Fabrics. Das Protokoll bietet eine gemeinsame Sprache für Rechenserver und Speicher zur Kommunikation bei der Datenübertragung.
NVMe-oF mit RDMA erfordert im Wesentlichen die Implementierung eines neuen Speichernetzwerks, das die Leistung steigert. Der Preis dafür ist eine geringere Skalierbarkeit im Vergleich zum FC-Protokoll.
NVMe over Fabrics mit Fibre Channel
NVMe over Fabrics mit Fibre Channel (FC-NVMe) wurde vom Ausschuss T11 des International Committee for Information Technology Standards (INCITS) entwickelt. FC ermöglicht die Abbildung anderer Protokolle darauf, wie NVMe, SCSI und IBMs proprietäre Fibre Connection, um Daten und Befehle zwischen Host- und Zielspeichergeräten zu senden.
FC-NVMe und Gen 5, 6 oder 7 FC können in derselben Infrastruktur koexistieren, wodurch Rechenzentren ein Forklift-Upgrade, also einen Komplettaustausch, vermeiden können.
Unternehmen können vorhandene FC-Netzwerk-Switches mit Firmware aufrüsten, sofern die Host Bus Adapter 16 Gigabit pro Sekunde oder 32 Gbit/s FC und NVMe-oF-fähige Speicherziele unterstützen.
Das FC-Protokoll unterstützt den Zugriff auf gemeinsam genutzten NVMe-Flash-Speicher, aber die Interpretation und Übersetzung gekapselter SCSI-Befehle in NVMe-Befehle ist mit Leistungseinbußen verbunden. Die Fibre Channel Industry Association trägt dazu bei, Standards für abwärtskompatible FC-NVMe-Implementierungen voranzutreiben, sodass ein einziger FC-NVMe-Adapter SCSI-basierte Festplatten, herkömmliche SSDs und PCIe-verbundene NVMe-Flash-Karten unterstützen kann.
NVMe over Fabrics mit TCP/IP
Zu den neueren Entwicklungen gehört NVMe-oF unter Verwendung von TCP/IP. NVMe-oF kann jetzt TCP-Transportbindung unterstützen. NVMe over TCP ermöglicht die Verwendung von NVMe-oF über ein Standard-Ethernet-Netzwerk. Bei der Verwendung von NVMe-oF mit TCP/IP sind keine Konfigurationsänderungen oder die Implementierung von Spezialgeräten erforderlich. Da die Transportverbindung über ein beliebiges Ethernet-Netzwerk oder das Internet verwendet werden kann, entfallen die Herausforderungen, die normalerweise mit der Implementierung zusätzlicher Geräte und Konfigurationen verbunden sind.
TCP ist ein weithin akzeptierter Standard für den Aufbau und die Aufrechterhaltung der Netzwerkkommunikation beim Austausch von Daten über ein Netzwerk. TCP arbeitet mit IP zusammen, da beide Protokolle zusammen die Kommunikation über das Internet und private Netzwerke erleichtern. Die TCP-Transportbindung in NVMe-oF definiert, wie die Daten zwischen einem Host und einem nichtflüchtigen Speichersubsystem gekapselt und übertragen werden.
Die TCP-Bindung definiert auch, wie Warteschlangen, Kapseln und Daten abgebildet werden, was die TCP-Kommunikation zwischen NVMe-oF-Hosts und Steuerungen über IP-Netzwerke unterstützt.
NVMe-oF mit TCP/IP ist eine gute Wahl für Unternehmen, die ihre Ethernet-Infrastruktur nutzen möchten. Dies ermöglicht Entwicklern auch die Migration der NVMe-Technologie weg von Internet-SCSI. Ein Unternehmen, das sich nicht mit den potenziellen Schwierigkeiten bei der Implementierung von NVMe-oF mit RDMA auseinandersetzen möchte, kann stattdessen die Vorteile von NVMe-oF mit TCP/IP auf einem Linux-Kernel nutzen.
Unterstützung der Speicherindustrie für NVMe und NVMe-oF
Etablierte Speicheranbieter und Start-ups konkurrieren um eine Position auf dem Markt. Zu den All-Flash-NVMe- und NVMe-oF-Speicherprodukten gehören die folgenden:
- DataDirect Networks Flashscale, das NVMe-Geräte unterstützt
- Dell EMC PowerMax NVMe Storage, wobei jedes PowerMax-Disk-Array-Gehäuse 24 2,5-Zoll-NVMe-SSDs aufnehmen kann
- Hewlett Packard Enterprise Nimble Storage Plattform und HPE NVMe Mainstream Performance Read Intensive SSDs, die NVMe unterstützen
- IBM FlashSystem V9000, das NVMe-oF unter Verwendung eines FC-Adapters unterstützt
- NetApp Fabric-Attached Storage Arrays, die NVMe und NVMe-oF mit dem A700 Upgrade unterstützen
- Pure Storage FlashArray//X, das NVMe-Speicher unterstützt
- DataDirect Networks IntelliFlash, das ebenfalls NVMe-Speicher unterstützt
Startups haben ebenfalls NVMe-All-Flash-Arrays auf den Markt gebracht, von denen einige später von größeren Unternehmen übernommen wurden:
- E8 Storage (2019 von Amazon übernommen) verwendet seine Software, um Snapshots vom E8-D24 NVMe-Flash-Array auf angeschlossene Markenserver zu replizieren, ein Design, das den Verwaltungsaufwand für das Array reduzieren soll. Nach dem Kauf durch Amazon fusionierten die Technologie und das Team von E8 mit AWS.
- Excelero (2022 von Nvidia übernommen) bietet softwaredefinierten Speicher an, darunter ein Produkt namens NVMesh, das NVMe, InfiniBand und NVMe-oF-Speicher unterstützt.
Chiphersteller und Netzwerkanbieter
Zu den bestehenden Chip-Herstellern und Netzwerkanbietern, die an NVMe-oF beteiligt sind, gehören die folgenden:
- Intel Corp. hat neben anderen Laufwerksherstellern den Weg für NVMe-SSDs mit dualen 3D-NAND-Anschlüssen geebnet. Intel bietet auch das Storage Performance Development Kit Perf an, das lokale NVMe- und Remote-NVMe-oF-Geräte unterstützt.
- Marvell bietet einen NVMe-oF SSD Converter Controller namens Marvell 88SN2400 an. Dieser Controller ermöglicht skalierbaren Hochleistungsspeicher, indem er den Zugriff auf SSDs über eine Fabric mit niedriger Latenz ermöglicht. Er arbeitet mit NVMe-oF-NAND- und Storage Class Memory-SSDs sowie mit SAS- und SATA-Festplattenkonfigurationen.
- Micron bietet eine Reihe von NVMe-SSDs an. Obwohl das Unternehmen 3D XPoint eingestellt hat, testet es seine 7300 NVMe SSD in NVMe-oF-Umgebungen unter Verwendung des 88SN2400-Controllers von Marvell.
- Nvidia Networking, das 2019 Mellanox Technologies übernommen hat, bietet eine NVMe-oF-Speicherreferenzarchitektur, die auf seinen programmierbaren BlueField System-on-a-Chip-Prozessoren basiert. Das Unternehmen bietet auch SmartNIC Software-defined Network Accelerated Processing (SNAP) an, das NVMe-Speicher virtualisiert. SNAP ermöglicht auch den Einsatz der NVMe-oF-Technologie. Die ersten Speicheranbieter, die NVMe SNAP einsetzen, sind die All-Flash-NVMe-Startups E8 Storage und Excelero.
- Seagate Technology hat das erste NVMe-Festplattenlaufwerk (HDD) entwickelt, zuvor wurde NVMe nur mit SSDs in Verbindung gebracht wurde. NVMe-HDDs bieten einen Ausgangspunkt für HDD-Architekturen, die mit NVMe-oF arbeiten, indem sie große Mengen an Speicherpools nutzen und sie für Komponentenzusammensteller verfügbar machen.