bdavid32 - stock.adobe.com

Die NVMe-oF-Speichertechnologie und ihr Begriffe erklärt

Erfahren Sie, wie NVMe-oF die Leistung von Speichernetzwerken optimiert und die Latenzzeit senkt. Darüber hinaus erklären wir die wichtigsten Begriffe, die sie hier kennen müssen.

In den letzten fünf Jahren hat sich die Speichertechnologie mit der Verbreitung von NVMe und Persistent Memory rasch weiter entwickelt. Die stattgefundenen Veränderungen haben die Netzwerktechnologie unter Druck gesetzt, nicht zu einem Engpass im Speichersystem zu werden.

NVMe over Fabrics (NVMe-oF) kann entsprechende Verlangsamungen verhindern, indem die Performance und Low-Latency-Vorteile der NVMe-Technologie im Netzwerk eingesetzt werden, um mehreren Servern und CPUs Zugang zu NVMe-Storage zu gewähren.

Das ursprüngliche Ziel von NVMe-oF bestand bei Storage darin, innerhalb von zehn Mikrosekunden (µs) der Performance eines lokalen NVMe-Laufwerks zu bleiben. Diese Technologie erreicht das, indem die NVMe-Befehle eingekapselt und über das Netzwerk zu entfernten Speicherlaufwerken gesendet werden.

Branchenexperten gehen davon aus, dass NVMe-oF in den nächsten Jahren richtig durchstarten wird. Allerdings kann die Umsetzung der Technologie kompliziert sein. Die versprochenen Performance-Verbesserungen zu erreichen, hängt von einer Reihe von Details ab, einschließlich der Netzwerktechnologie und -struktur, den verwendeten SSDs und schließlich der Konfiguration aller dieser Elemente. Im Folgenden finden sich einige der wesentlichen Begriffe und Technologien, die man für einen erfolgreichen Übergang zu NVMe-oF kennen sollte.

DSSD

DSSD ist eigentlich eine EMC-Technologie, die NVMe-oF vorausgeht. Sie teilt einen Flash-Block über verschiedene Hosts in einem Rack und war ein nicht so teurer Ansatz für gemeinsam genutzten (Shared) Low-Latency-Storage im Vergleich zu damaligen konkurrierenden Technologien. Im Jahr 2017, als NVMe-oF auftauchte und mit der 100-µs-Latenz von DSSD gleichzog oder sie sogar zu einem Fünftel der Kosten übertraf, stoppte Dell EMC die weitere Entwicklung an DSSD.

Hoch parallele Many-to-Many-Architektur

Mit der geringen Warteschlangen-Tiefe (Queue Depth) von SAS- und SATA-Laufwerken wurden die I/O-Prozesse in eine einzige Warteschlange gepackt, die schnell zu einem Engpass werden konnte und nicht in der Lage war, Vorteile aus den parallelen Fähigkeiten der NAND-Flash-Medien zu ziehen, die in SSDs benutzt wurden.

NVMe-oF-Storage hat das geändert, indem 65.535 Verbindungen zur Verfügung gestellt werden, von denen jede bis zu 65.535 Befehle abarbeiten kann. Dies muss man im Vergleich sehen zu der einzigen Warteschlange von SATA und SAS, die jeweils 32 und 256 Befehle pro Warteschlange aufweisen.

Die Tiefe der Warteschlange erlaubt es, eine hoch parallele Many-to-Many-Architektur zwischen Host und Laufwerk zu entwickeln – mit einer eigenen Warteschlange für jeden Host und jedes Laufwerk.

NVMe-Storage

Non-Volatile Memory Express (NVMe) ist ein offener Standard, der als Alternative zum SCSI-Protokoll und den Bottlenecks entwickelt wurde, die sich aus der Nutzung von SCSI-basierter Technologie zusammen mit Flash-Speicher ergeben.

NVMe ist eine logische Spezifikation für eine Geräteschnittstelle, die Controller und Treiber verwendet, die speziell für SSDs entwickelt wurden. Sie verbindet sich über den PCI Express Bus (PCIe) mit den Hosts. Weil sich PCIe direkt mit der CPU verbindet, erlaubt diese Technologie einen Memory-ähnlichen Prozessorzugang, reduziert den I/O-Overhead und ermöglicht es den Geräten, Vorteile aus der Geschwindigkeit, Performance und dem parallelen Zugang von SSDs zu ziehen.

Ein Treiber, der besonders für NVMe-Geräte entwickelt wurde, stellt ihnen auch die schnellere Zugangsgeschwindigkeit der PCIe-Schnittstelle zur Verfügung.

Abbildung 1: Seit seiner Einführung Mitte 2000 hat die NVMe-Technologie einige wichtige Entwicklungsschritte hinter sich gebracht.
Abbildung 1: Seit seiner Einführung Mitte 2000 hat die NVMe-Technologie einige wichtige Entwicklungsschritte hinter sich gebracht.

NVM Express Inc.

NVM Express wurde 2014 als ein gemeinnütziges Konsortium mit dem Auftrag für die Entwicklung der NVMe-Spezifikation gebildet. Die Gruppe hat mehr als 100 Mitglieder und konzentriert sich auf die Definition, das Management und die Verbreitung von NVMe als einem industrieweiten Standard, um Speicher-Zugang für SSDs mit großer Bandbreite und niedriger Latenz zur Verfügung zu stellen.

Die jüngste Version 1.4 der NVMe-Spezifikation wurde am 23. Juli 2019 veröffentlicht. Die Gruppe ist auch verantwortlich für die Einzelheiten von NVMe-oF, um NVMe-Befehle über eine Netzwerkinfrastruktur und das NVMe Management Interface zu verwenden, das die Verwaltung von NVMe-SSDs in Servern und Speichersystemen erleichtert. Die jüngste Version 1.1 dieser NVMe-oF-Spezifikation wurde am 22. Oktober 2019 veröffentlicht.

Die NVMe-Integration testen

Herauszufinden, ob NVMe-oF-Produkte miteinander kompatibel sind, kann eine Herausforderung darstellen. Aber zum Glück dient das Interoperality Laboratory der University of New Hampshire (UNH-IOL) als eine Clearing-Stelle (sinngemäß: Freigabestelle) für Netzwerkgeräte und die von ihnen unterstützten Netzwerkstandards.

Nach Tests von mehr als zwei Jahren hat die UNH-IOL eine Liste von Produkten, die den Standards entsprechen, zusammengestellt: Sie decken NVMe-Hostplattformen ab, sowie Laufwerke, Switches, Management-Schnittstellen und Storage-Hardware – ferner Zielpunkte, Initiatoren und Switches für Software.

NVMe over FC

Die ersten Ausführungen der NVMe-oF-Spezifikation unterstützten Fibre Channel (FC) und Remote Direct Memory Access (RDMA). Mit diesen beiden Transportmöglichkeiten werden Daten vom Host zum Array und zurück mittels eines Zero-Copy-Prozesses oder im Fall von NVMe over FC eines annähernden Zero-Copy-Prozesses übertragen, bei dem die Daten nicht mehrere Male zwischen den Memory Buffers und den I/O-Karten kopiert werden.

Dieser Ansatz reduziert die CPU-Last und die Latenz beim Datentransport, was die Performance verbessert. Mit dem Credit Buffer Congestion Control System von FC werden die Daten nicht eher transportiert, bis eine Pufferzuweisung (Buffer Allocation) angekommen ist, womit ein sicherer verlustfreier Transport garantiert ist.

FC verringert die Latenz und die Verwendung der Host-CPU, indem Host Bus Adapter (HBAs) das FC Protocol (FCP) herunterladen. Jeder FC-HBA oder Switch mit 16 Gbps oder 32 Gbps wird NVMe over FC unterstützen, während weiter Services für SCSI over FCP zur Verfügung gestellt werden.

Abbildung 2: Funktionsweise des NVME-oF-Protokolls.
Abbildung 2: Funktionsweise des NVME-oF-Protokolls.

NVMe over RDMA

Die Spezifikation von NVMe-oF unterstützt RDMA-Netze für InfiniBand, RDMA over Converged Ethernet (RoCE) und das Internet Wide Area RDMA Protocol (iWARP). RDMA ermöglicht es Computern im Netzwerk, Daten im Hauptarbeitsspeicher auszutauschen, ohne dass Prozessor, Cache oder Betriebssystem jedes Computers involviert sind.

RDMA setzt Ressourcen frei und verbessert Durchsatz und Performance. NVMe over RDMA zu installieren, kann komplex sein. Es erfordert besondere Konfigurationen wie zum Beispiel die Einrichtung von Priority Flow Control und explizite Staunachrichten, um abgelehnte Pakete zu eliminieren. Diese Technik kann auch besondere Ausrüstung erfordern wie zum Beispiel RDMA-fähige Netzwerkschnittstellen.

Performance-Monitoring von NVMe-oF

In der Vergangenheit konnten ein schlecht konfigurierter Netzwerk-Switch, -Port oder -Adapter in einem Speichersystem leicht übersehen oder unentdeckt bleiben, weil ihre Latenzzeiten im Vergleich zu denen von Speicheranwendungen oder -geräten eher unerheblich waren.

Dies änderte sich mit dem Aufkommen von NVMe-oF. Nun waren es die Netzwerke, die sich schwer taten, mit der Speicherhardware und -Software mitzuhalten. Diese Umdrehung des Verhältnisses führte dazu, dass das Monitoring der NVMe-oF-Performance zu einem wesentlichen Bestandteil des Storage-Managements wurde, um so die maximale Performance der Netzwerk-Konfiguration abzusichern.

Speichernetzwerke mussten proaktiv überprüft werden, um sicherzustellen, dass das Netzwerk-Design und die eingesetzten Ressourcen mit den I/O-Anforderungen Schritt halten konnten. Das Monitoring der NVMe-oF-Performance hängt von den in Echtzeit aufgezeichneten Telemetriedaten des Netzwerks ab – zusammen mit Tools, die eventuelle Probleme erkennen und sogar lösen, bevor sie tatsächlich eintreten.

NVMe/TCP

Die Revision 1.1 von NVMe-oF fügte Unterstützung für die Transportprozesse des Transmission Control Protocol (TCP) hinzu, das das Internet antreibt und eines der am weitesten verbreiteten Datentransportmittel weltweit ist. NVMe/TCP ermöglicht den Einsatz von NVMe-oF auf einem standardmäßigen Ethernet-Netzwerk, ohne Änderungen an der Konfiguration oder besondere Ausrüstung zu erfordern.

Es kann auch über das Internet hinweg genutzt werden. NVMe/TCP legt fest, wie TCP-basierte Kommunikation zwischen NVMe-oF-Hosts und Controllern in einem IP-Netzwerk umgesetzt wird. Ein Modell für Messaging und Queuing beschreibt die Kommunikationssequenz.

Scale-Out-Speicherarchitektur

Beim Scaling-Out wird der Speicherplatz durch das Hinzufügen weiterer angeschlossener Arrays, zusätzlicher Server oder Knoten erweitert, um die Storage-Fähigkeiten zu erhöhen. Bis NVMe-oF herauskam, war Scale-Out-Storage komplex zu installieren.

NVMe-oF stellt einen direkten Pfad zwischen Host und Speichermedien zur Verfügung, womit es vermieden wird, die Daten durch einen zentralen Controller zu zwingen – ein Prozess, der Latenz erzeugt und den vollen Nutzen der SSD-Möglichkeiten begrenzt. Der direkte Pfad ermöglicht es den Hosts, mit vielen Laufwerken zu interagieren, was wiederum die Latenz reduziert und die Scale-Out-Möglichkeiten erhöht.

Spezifikation der Transportanbindung

NVMe-oF ist nicht mit irgendeinem Transportprotokoll für Storage verknüpft, weil das Protokoll von dem Transport-Layer, auf dem es läuft, abgetrennt ist. Dies wird als so genannte Transport Binding Specification bezeichnet. Solche Binding Specs sind für RDMA, einschließlich InfiniBand, RoCE und iWARP sowie für Fibre Channel und seit neuestem für TCP entwickelt worden. NVMe-oF kann auf jeder Netzwerkverbindung laufen, die über eine Binding Spec verfügt.

Erfahren Sie mehr über Flash Storage und SSD