NVMe-over-Fabrics

Turbo für Speichernetze

26. Februar 2020, 9:00 Uhr | Von Christoph Lange.

NVMe setzt sich zunehmend als Schnittstellenprotokoll für schnelle Speichermedien wie SSDs und Storage Class Memory durch. Mit NVMe-over-Fabrics steht nun eine Erweiterung zur Verfügung, die schnelle Zugriffe mit einer sehr niedrigen Latenz auch über Speichernetze hinweg ermöglicht. LANline stellt die verschiedenen NVMe-oF-Varianten und erste Produktimplementierungen vor.

Eine in den vergangenen Jahren von Speicherspezialisten häufig geäußerte Prognose lautet, dass der Storage physikalisch wieder näher an die CPU heranrücken müsse. Nur so ließen sich die hohen Performance-Anforderungen von Anwendungen für künstliche Intelligenz (KI/AI) oder maschinelles Lernen (ML) erfüllen. Klassische Speichernetze auf Basis von Fibre Channel oder iSCSI könnten die von diesen neuen Applikationen benötigte hohe IO-Performance bei gleichzeitig sehr niedriger Latenz der Datenzugriffe nicht erreichen.

Die Speicherindustrie hat darauf reagiert und mit Storage Class Memory (SCM) sehr schnelle Speichermedien entwickelt, die man entweder als Non-Volatile RAM direkt in DIMM-Steckplätzen verbaut oder die über das NVMe-Protokoll (Non-Volatile Memory Express) und die PCIe-Schnittstellen des Motherboards mit hoher Performance und sehr niedriger Latenz mit der CPU kommunizieren.

Zudem integrieren immer mehr Hersteller in ihren Storage-Arrays NVMe-SSDs, die höhere Bandbreiten und niedrigere Latenzen bieten als die bisher eingesetzten SAS- oder SATA-SSDs. Ferner hat man mit NVMe-over-Fabrics (NVMe-oF) ein neues Storage-Protokoll entwickelt, das die hohe Performance und niedrige Latenz der NVMe-Zugriffe auch über Speichernetze hinweg auf die NVMe-Devices von externen Storage-Arrays ermöglichen soll. Eine weitere technologische Neuentwicklung, auf die in diesem Beitrag nicht näher eingegangen wird, ist Computational Storage. Hier wird der umgekehrte Weg gegangen, indem man in die Storage-Controller von externen Storage-Arrays oder sogar direkt in die Speichermedien leistungsfähige CPUs integriert, um zum Beispiel KI- oder Data-Warehouse-Berechnungen direkt im Speichersystem oder -medium ausführen zu können.

NVMe-Protokoll für schnelle Speicherzugriffe

Wie das "e" im Namen andeutet, wurde das NVMe-Protokoll für die PCI-Express-Schnittstelle (PCIe) von Motherboards entwickelt. NVMe-SSDs nutzen schon seit einiger Zeit die PCIe-Ports von Servern, PCs und Notebooks, um Daten schnell und mit einer sehr niedrigen Latenz zwischen dem persistenten Speicher und der CPU zu übertragen. Die aktuell auf dem Markt verfügbare PCIe-Version 4.0 unterstützt bis zu 16 sogenannte Lanes (PCIe x16) und erreicht damit eine maximale Bandbreite von knapp 32 GByte/s. Die im Mai 2019 ratifizierte Spezifikation 5.0 wird eine Verdoppelung auf dann 63 GByte/s bringen.

Das NVMe-Protokoll ist deutlich leistungsfähiger als die bisher für die SSD-Anbindung genutzten seriellen SAS- oder SATA-Protokolle, die man vor vielen Jahren für Festplattenlaufwerke entwickelt hat.

605 LANline 2020-03 Bild1
Mit NVMe-oF profitieren auch Netzwerkzugriffe von der niedrigen Latenz der SSD- und SCM-Speichermedien. Bild: Pure Storage

So unterstützt NVMe bis zu 65.535 Queues und kann pro Queue bis zu 65.535 Kommandos vorhalten. SAS (Serial Attached SCSI) unterstützt dagegen nur eine einzige Queue mit maximal 256 Kommandos, bei SATA (Serial Advanced Technology Attachment) sind es lediglich 32 Kommandos. Die Entwickler von NVMe haben zudem darauf geachtet, das Protokoll möglichst schlank zu halten. Das Basiskommandoset umfasst nur 13 Kommandos gegenüber mehr als 200 Befehlen bei den alten SCSI-basierten Protokollen. Dies reduziert den Protokoll-Overhead und ermöglicht höhere IO-Raten bei gleichzeitig niedrigerer Latenz.

Die Ende 2019 ratifizierte NVMe-Spezifikation 1.4 umfasst weitere technische Verbesserungen. Mit dem sogenannten IO-Determinismus wird es möglich, eine SSD in mehrere Sub-SSDs aufzuteilen und IO-Operationen in diesen NVMe-Sets parallel auszuführen. Dies soll die Latenz noch stärker reduzieren. Um die Hochverfügbarkeit von NVMe-Speichersystemen zu verbessern, hat man für das Multi-Pathing den sogenannten Asymmetric Namespace Access (ANA) eingeführt. Mit ANA können mehrere Hosts über unterschiedliche NVMe-Controller auf gemeinsam genutzte Storage-Namespaces zugreifen.

Mit der im April 2019 verabschiedeten Spezifikation NVMe-MI 1.1 wurde zudem ein Management-Interface definiert, über das sich NVMe/PCIe-Devices in Servern und Speichersystemen zentral verwalten lassen.

Beim Design einer NVMe-oF-Lösung ist zu beachten, dass die maximale Entfernung für externe Host-Zugriffe bislang bei wenigen hundert Metern liegt. Eine Hochverfügbarkeitsarchitektur, bei der Server beim Ausfall eines primären Storage-Systems auf ein mehrere Kilometer entferntes gespiegeltes Sekundär-Speichersystem im Ausweichrechenzentrum zugreifen, lässt sich mit NVMe-oF bislang nicht abbilden.

Die nächste NVMe-Spezifikation 2.0 soll eine Erweiterung um sogenannte Zoned Namespaces (ZNS) umfassen. Sie optimieren die SSD-Nutzung, indem die Hosts ihre Daten deutlich effizienter als bisher auf SSDs speichern können. Zum Beispiel ist es mit ZNS möglich, jeder VM eine eigene Zone zuzuweisen. Nach Angaben von Western Digital, das ZNS mit entwickelt hat, soll sich dadurch unter anderem die bisher aufgrund der begrenzten Beschreibbarkeit von SSD-Zellen notwendige Überprovisionierung auf ein Zehntel reduzieren lassen.

Um das Potenzial von NVMe mit externen Storage-Arrays voll ausschöpfen zu können, reicht es nicht aus, nur die Anbindung der Speichermedien innerhalb eines Speichersystems auf NVMe und PCIe umzustellen. Der deutlich größere Performance-Zuwachs stellt sich erst dann ein, wenn die Zugriffe auf das Speichersystem nicht mehr über SCSI-basierte Übertragungsprotokolle wie Fibre Channel oder iSCSI erfolgen, sondern über das neue Protokoll NVMe-oF.

NVM-over-Fabrics

Die derzeit aktuelle NVMe-oF Spezifikation 1.1 wurde Ende 2019 ratifiziert. NVMe-oF unterstützt drei verschiedene Fabric-Typen, wodurch es zu den wichtigsten Datenübertragungsprotokollen kompatibel ist. Im Zusammenspiel mit Fibre Channel baut NVMe-FC die NVMe-Kommandos in FC-Frames ein und lässt sich dadurch in FC-Netzen mit neueren FC-Switches nutzen, die NVMe-FC in der Regel bereits unterstützen. Im Vergleich zum klassischen SCSI-basierten FC-Protokoll bietet NVMe-FC eine deutlich höhere Performance bei niedrigerer Latenz.

Die RDMA-Variante (Remote Direct Memory Access) von NVMe-oF unterstützt die Protokolle RDMA over Converged Ethernet (RoCE), iWARP und Infiniband. RDMA ermöglicht direkte Memory-Zugriffe auf den RAM eines anderen Servers über das Netzwerk bei einer niedrigen Latenz. Für das aktuelle RoCE v2 benötigt man LAN-Switches mit DCB-Support (Datacenter Bridging) sowie HBAs mit RDMA-Support.

NVMe-over-TCP kam mit NVMe-oF 1.1 und lässt sich wie RoCE und iWARP über Ethernet nutzen. Der große Vorteil von NVMe-TCP besteht darin, dass sich die vorhandene LAN-Infrastruktur nutzen lässt und keine speziellen Switches und HBAs erforderlich sind, die RoCE oder iWARP unterstützen. Ein Nachteil ist die im Vergleich zu den RDMA-Varianten höhere Latenz. Sie liegt aber immer noch deutlich niedriger als bei den alten FC- und iSCSI-Protokollen, sodass ein Umstieg auf NVMe-TCP in der Regel eine deutliche Performancesteigerung bringen sollte.

PowerMax 8000
Die Powermax 8000 Arrays von Dell EMC kombinieren NVMe-SSDs mit Intel-Optane-SCM-Speicher und unterstützen NVMe-oF. Bild: Dell EMC

Zu beachten ist, dass für die Performance von NVMe-TCP das Buffering der LAN-Switches eine wichtige Rolle spielt. Sind die Buffer zu groß, steigt die Latenz der Datenübertragungen an. Sind sie zu klein, leidet die Performance unter Paketverlusten und den damit einhergehenden Retransmissions.

Um mit NVMe-TCP die vollen Performancevorteile nutzen zu können, empfiehlt sich bei Servern, die auf externe NVMe-Speichersysteme zugreifen, der Einsatz von TCP-Offload-Karten. Mit Standard-Netzwerkkarten lässt sich zwar auch ein hoher NVMe-oF-Datendurchsatz erzielen, allerdings steigt die Auslastung der Server-CPU dabei stark an. Offload-Karten entlasten die Server-CPU und stellen eine niedrige Latenz der Datentransfers sicher. Sie können zudem Funktionen wie Deduplizierung, Kompression, Verschlüsselung oder Datenredundanzberechnungen direkt im Adapter ausführen. Derartige Karten sind beispielsweise von Broadcom oder Mellanox erhältlich.

Die aktuellen Windows- und Linux-Betriebssysteme für Server bringen bereits NVMe-oF-Treiber mit. Der Netzwerkspezialist Mellanox hat zudem mit NVMe SNAP für seine Bluefield-Netzwerkkarten eine Lösung entwickelt, die die über das Netz per NVMe-oF angebundenen Speicherressourcen auf dem PCIe-Bus des Host-Betriebssystems als lokales NVMe-Flash-Laufwerk darstellt. Dadurch kann das Server-Betriebssystem oder das Hypervisor-OS die Standard-NVMe-Treiber verwenden und benötigt keine zusätzlichen NVMe-oF-Treiber.

Speichersysteme mit NVMe-oF-Support

Um die Performance- und Latenzvorteile von NVMe vollständig nutzen zu können, müssen sich Storage-Arrays den angebundenen Host-Systemen als NVMe-oF-Target präsentieren. Zu einem der ersten Anbieter, die NVMe und NVMe-oF in ihre Speichersysteme integriert haben, zählt Pure Storage. Das 2017 vorgestellte Flash-
Array X war das erste All-Flash-Array des Herstellers, das vollständig auf NVMe-Speicher setzte. Die neuesten Modelle integrieren mit Intel Optane zusätzlich Storage Class Memory als superschnellen Cache-Layer, was die Latenz laut Hersteller nochmals um bis zu 50 Prozent reduzieren kann. Die Hosts lassen sich über NVMe-oF an das Speichersystem anbinden.

Der Speicherspezialist Western Digital befasst sich ebenfalls schon seit einigen Jahren mit NVMe und NVMe-oF und arbeitet in den Standardisierungsgremien mit. Um leistungsfähige NVMe-oF Storage-Arrays anbieten zu können, hat WD das Unternehmen Kazan Networks übernommen. Kazan verfügt über NVMe-oF-Target-Controller für die Ethernet-Variante. Mit Openflex F3100 bietet WD (siehe Bild oben) ein NVMe-oF-Speichersystem an, das alle Performancevorteile des neuen Storage-Protokolls ausschöpfen kann.

Dell EMC hat im Herbst 2019 seine ersten Speichersysteme mit NVMe-oF-Support angekündigt. Die PowerMax-Modelle lassen sich mit NVMe-SSDs und mit Intel Optane SCM-SSDs bestücken, die als persistenter Speicher dienen. Zusammen mit Cisco bietet Dell EMC zudem für die konvergenten Infrastrukturlösungen der VxBlock-Modellreihe eine durchgängige NVMe-oF-Unterstützung an.

Auch Hitachi hat mit der Virtual Storage Platform 5000 (VSP) eine Lösung vorgestellt, die je nach Modell SAS-HDDs, SAS-SSDs, NVMe-SSDs und Storage Class Memory in einem einzigen Array als Tiered-Storage-Lösung vereinen kann und NVMe-oF unterstützt.

Die neue Primera-Plattform von HPE kombiniert Speichersysteme der 3PAR- und Nimble-Produktreihen sowie Proliant-Server zu einer Gesamtlösung, die laut Hersteller alle Anforderungen abdecken kann. Dazu zählen zum Beispiel auch End-to-End-Lösungen mit NVMe-oF-Support und Storage Class Memory in Form von Intel Optane Speicher als Caching-Tier in den Storage-Controllern.

Der Speicherspezialist NetApp hat die aktuellen All-Flash-Systeme AFF A800 für NVMe-FC ausgelegt. Die Modellreihen NetApp E-Series EF600 All-Flash, EF570 All-Flash und E5700 unterstützen neben NVMe-FC auch die RoCE- und die Infiniband-Varianten von NVMe-oF.

Mit dem Aufkommen von NVMe-Speichermedien und NVMe-oF als performantem Netzübertragungsprotokoll steht eine neue Generation sehr leistungsfähiger Storage-Systeme in den Startlöchern. Bei hybriden Storage-Arrays lassen sich NVMe-basierte SSD- und SCM-Speichermedien mit SAS-SSDs und -HDDs kombinieren. Die DIMM-Variante von SCM lässt sich zudem als superschneller Cache nutzen.

Die NVMe- und NVMe-oF-Protokollspezifikationen sind noch relativ jung und werden fortlaufend weiterentwickelt. Für Unternehmen mit einer vorhandenen FC-Infrastruktur und neueren FC-Switches bietet NVMe-FC eine relativ einfache Möglichkeit, die Performancevorteile des neuen Protokolls zu nutzen. Gleiches gilt für Unternehmen, die Infiniband einsetzen und diese NVMe-oF-Variante implementieren möchten.

Die Anzahl der Unternehmen, die Converged Ethernet mit RoCE v2 einsetzen, ist bislang noch nicht sehr hoch. Wer eine Standard-Ethernet-Infrastruktur betreibt, sollte sich die neue NVMe-TCP-Variante genauer anschauen, die sich ohne größere Änderungen an den Netzkomponenten implementieren lässt.

Christoph Lange.

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu RST Elektronik GmbH

Matchmaker+