Non-Volatile Memory Express (NVMe)
08.01.2018, 10:05 Uhr
Mit NVMe startet Flash richtig durch
Die neue Speichertechnologie Non-Volatile Memory Express (NVMe) bringt einen Performance-Sprung mit sich. Dadurch kann das Potential von Flash-Speichern besser ausgeschöpft werden.
Bei den Lobliedern auf die Digitalisierung wird ein Aspekt häufig vernachlässigt: Soviel auch digitalisiert wird, eines bleibt – alle Daten müssen irgendwo gespeichert werden. Dafür braucht man Speichersysteme, also Hardware. Beim Storage für die elektronische Welt dreht sich alles um zwei Faktoren, nämlich um Kapazität und um Performance. Hier bietet derzeit Flash-Speicher die grössten Vorteile. Doch bislang setzen Unternehmen Flash-Medien erst allmählich auf breiter Front ein – je nach Anwendungen und der Rangordnung, die sie in den Speicher-Schichten (Tiering) einnehmen, und je nachdem welche Resultate ihre Kalkulation in Sachen Performance, Kapazität und Kosten im Einzelfall ergibt.
Das amerikanische Start-up Mangstor, das sich auf neue Speichertechnologien für den Datentransport spezialisiert hat und vergangenes Jahr mit einem ersten Produkt an den Markt gegangen ist, hat aufseiten der Kunden eine mittlerweile weit verbreitete «All Flash Segmentation» ausgemacht: All-Flash-Arrays (AFAs) werden demnach vor allem bei Tier 0 eingesetzt, dem Ort für absolute Performance mit extremem I/O-Durchsatz, geringen Latenzen (also Verzögerungen bei der Datenübertragung) sowie mit teilweiser Virtualisierung von Enterprise-Anwendungen mit hohen Leistungsanforderungen.
Auch die nachgelagerte Speicherschicht Tier 1 mit geringeren Performance-Anforderungen basiert heute oft schon auf All-Flash-Systemen (als Arrays mit unterschiedlich performanten SSDs) oder auf Hybrid-Flash-Arrays (mit SSDs und traditionellen Festplatten in einem gemeinsamen System). Reine Festplatten-Arrays geraten immer mehr ins Hintertreffen und werden nach Ansicht von Marktbeobachtern langsam aussterben – nicht zuletzt getrieben vom Preisverfall der Flash-Medien.
Neben den eigentlichen Speicherträgern spielen die eingesetzten Netzwerkprotokolle und Schnittstellen eine entscheidende Rolle, wenn es um grössere Leistungssteigerungen geht. Waren es in der Vergangenheit iSCSI, Fibre Channel oder InfiniBand, die von Unternehmen eingesetzt wurden, gibt es seit einiger Zeit ein Zauberwort, das immer öfter die Diskussion bestimmt: Non-Volatile Memory (nicht flüchtiger Speicher) in seiner Ausprägung Express, kurz NVMe.
Non-Volatile Memory Express bezeichnet ein treiberunabhängiges Protokoll mit direkter PCIe-Anbindung für die Schnittstellenkommunikation zu SSD-Speichervolumen. Indem es den Flaschenhals zwischen Storage-CPU und Flash-Speicher beseitigt, ermöglicht NVMe, das Leistungspotenzial von Flash voll auszuschöpfen.
Verabschiedet wurde der Standard bereits 2011. Bis zu den ersten Produkten hat es allerdings etwas gedauert. Vorreiter war Intel – und zwar ungewöhnlicherweise im Consumer-Markt. Im April 2015 brachte Intel die erste NVMe-SSD für private Anwender heraus. Zum Einsatz kommt sie etwa in den aktuellen Mac-Books. Inzwischen gibt es aber auch immer mehr Produkte für den Enterprise-Markt. Sie haben eine neue Runde in der Entwicklung fortgeschrittener Speichertechnologien eingeläutet.
Doch was macht NVMe so besonders? Um das zu verstehen, muss man etwas tiefer in die Abfolge der Speichertechnologien und ihre technologischen Hintergründe einsteigen.
Synology «DiskStation DS2015xs» - Das beste Business-NAS im Test hat zwei 10GbE-Ports integriert und bietet Werkzeuge für nahezu jede Business-Aufgabe. Schwächen sucht man bei diesem 8-Bay-NAS fast vergebens. Nennenswert ist allerdings der mit 21,6 Watt doch recht hohe Stromverbrauch im Sleep-Modus.
Was ist NVMe?
Bei einer solch komplexen Materie wie Schnittstellen und Storage ist es hilfreich, eine Definition des Begriffs als Ausgangspunkt für weitergehende Erläuterungen zu nehmen. Allerdings gibt es für NVMe eine Vielzahl von Definitionen, die nicht immer das Gleiche meinen, sondern sich mal mehr, mal weniger überschneiden.
Die Knowledge Base von Dell umschreibt NVMe zum Beispiel so: «Non-Volatile Memory Express (NVMe) ist ein(e) speziell für Solid-State-Laufwerke (SSDs) entwickelte(s) Kommunikationschnittstelle/Protokoll. Früher verwendeten Solid-State-Festplatten Festplattencontroller-Schnittstellen (SATA, SAS und so weiter), die für rotierende Festplatten entwickelt wurden. NVMe (basierend auf dem PCI-Express-Datenbus) standardisiert die Schnittstelle für SSDs und erfordert nur einen einzigen Treiber für alle Laufwerke, die diese Spezifikation verwenden, ähnlich wie USB-Geräte.»
Die Analysten des Beratungshauses Gartner wiederum ziehen es in ihrem Report «Hype Cycle for Storage Technologies, 2016» vor, in diesem Zusammenhang von «Shared Accelerated Storage» zu sprechen. Gemeint ist laut Gartner eine «Next-Generation-Technologie, die verteilte Infrastrukturen mit hoher Dichte an Flash-Speichern performanter macht». Die Vorteile von Shared Storage wie der Aufbau von grossen Storage-Volumes auf Basis von Standard-Hardware sollen mit der Performance von Flash auf der Server-Seite verbunden werden, indem standardisierter Non-Volatile Memory Express (NVMe) auf dem Peripheral Component Interconnect Express (PCIe) aufsetzt.
Für Gartner macht das NVMe zu einer «Super-Low-Latency»-Technologie: «Shared Accelerated Storage ist eine neue Architektur, die sich der Vorteile der jüngsten nicht flüchtigen Memory-Komponenten (…) bedient, um den Anforderungen von Workloads mit extrem niedrigen Latenzen gerecht zu werden. Diese Technologie entwickelt sich schnell und ersetzt Flash auf der Server-Seite, die Workloads auf dem Compute-Layer beschleunigt haben. Diese Methode verfügte aber nur über begrenzte Kapazitäten und wurde jeweils als Silo von Server zu Server verwaltet. Shared Accelerated Storage kann dagegen bis auf hohe Kapazitäten skaliert werden, verwendet Ultra-dense Flash und kann für Dutzende von Clients gemeinsam verwaltet werden.»
Die neue Technologie steht nach Ansicht der Gartner-Analysten erst ganz am Anfang eines Zyklus, in dem sich nach durchschnittlich etwa fünf Jahren neue Entwicklungen am Markt durchsetzen – oder des Öfteren auch nicht. Infolgedessen ähneln manche frühen Beschreibungen einem Blick in die Glaskugel und vernebeln das Verständnis eher.
Warum NVMe?
Laut Speicherbranchenverband SNIA sinkt das Zugriffstempo von über 1000 Mikrosekunden bei Festplatten auf unter 10 bei NVM-Speicher.
Quelle: SNIA
Der neue, für NVM-Produkte entwickelte Protokollstandard NVMe könnte laut Metz auch für Tapes oder traditionelle, sich drehende Festplatten eingesetzt werden, wurde aber gerade auf sich nicht ständig bewegende oder drehende Medien ausgerichtet. Da Befehle zwischen CPUs und Speichergeräten gesendet und empfangen werden, wird die Kommunikation zwischen ihnen durch die Berücksichtigung der Besonderheiten auf der Speicherseite effektiver gestaltet. NVMe ist deshalb für Flash und andere Formen von Persistent Memory eine besser geeignete Methode.
Die Rolle von Flash
Die Geschichte der Storage-Technologie schien nach der Einführung von SAN, NAS, Fibre Channel oder Deduplizierung mehr oder weniger zum Abschluss gekommen zu sein. Zumindest hatte es den Anschein, dass da nichts Grosses und Neues mehr kommen würde – nur die Festplatten wurden graduell grösser und die Transportgeschwindigkeiten für die Daten nahmen zu. Die zurückgehenden Umsätze der grossen Hersteller – EMC, HDS, IBM, NetApp – bestätigten die technologische Stagnation. Ein traditioneller Anbieter fortgeschrittener Tape-Systeme wie StorageTek wurde 2005 erst an Sun verkauft und wanderte 2010 von dort zusammen mit den Sun-Servern sogar zum Software-Anbieter Oracle.
Doch mit der von Start-ups forcierten Entwicklung von Flash-Systemen wendete sich das Blatt. Storage ist in den letzten Jahren zu jener IT-Branche geworden, in der sich am meisten verändert. Flash beziehungsweise SSDs (viele in ein Gehäuse gepackte Flash-Speicher) sind schneller als Festplatten, haben keine sich drehenden Elemente (und sind deshalb leiser), sind aber immer noch teurer. Über ihre Lebensdauer gibt es unterschiedliche Angaben, die von der Art und Weise abhängen, wie die Lese- und Schreibprozesse organisiert sind.
Es gibt auch keinen Mangel an Flash-Anbietern, denn neben den vielen auf Flash spezialisierten Start-ups haben auch einige traditionelle Speicherhersteller wie EMC, IBM und NetApp Flash durch Zukäufe in ihr Portfolio integriert. Neben der Performance bietet Flash in der Regel auch noch Vorteile bei der Koordination der Speicherkomponenten und damit des Zugangs zu den Daten.
Die Architekturen von Flash-Systemen reichen vom einfachen Ersatz traditioneller Plattensysteme ohne grosse Änderungen der Architektur über hybride Arrays mit einer Kombination aus Flash und traditionellen Festplatten (Ausbalancierung von Performance, Kapazität und Preis) bis hin zu All-Flash-Arrays (AFA), die wie erwähnt vor allem bei Tier 0 und 1 für Anwendungen mit besonderen Leistungsanforderungen eingesetzt werden.
Auf der Minus-Seite von Flash stehen neben qualitativen Beschränkungen bei preisgünstigeren Produkten vor allem Geschwindigkeitseinbussen, wenn Anbindung und Datenverkehr über klassische SCSI-Verbindungen laufen. Während SCSI in vielen Umgebungen sehr gut funktioniert, verlangen die Eigenschaften von Flash nach einigen Fähigkeiten, für die SCSI nicht entwickelt wurde.
Die Roboter-Analogie
Cisco-Manager J. Michael Metz schlägt in diesem Zusammenhang vor, von einer Analogie mit einem Roboter in einer Fabrik auszugehen: Die Fabrik verfügt über eine Reihe von Transportbändern für bestimmte Gegenstände, die der Roboter erfassen soll. Der Roboter befindet sich seitwärts auf einer Schiene und muss sich vor und zurück bewegen und warten, bis er einzelne Gegenstände auf den Transportbändern erfassen kann. Zudem muss man sich vorstellen, dass einige Transportbänder langsamer als andere sind – zum Beispiel ist Band 1 das schnellste, Band 2 etwas langsamer und so weiter.
Etwa auf diese Weise arbeitet laut Metz eine sich drehende Festplatte. Der Roboterarm – Read/Write Head – bewegt sich über der sich drehenden Festplatte von Sektor zu Sektor, um einzelne Datenblöcke auszuwählen. Je nach Länge der Blöcke und verfügbarem Platz in den Sektoren ist die Performance dabei sehr unterschiedlich. Um den Roboter, um im Beispiel zu bleiben, zu programmieren und seine Arbeit vorzubereiten, müssen Befehle an ihn gesendet werden – bei den traditionellen Speichermedien übernimmt SCSI das.
SCSI gilt als bewährte Kommandostruktur. Folgt man Metz, ist es das zentrale Protokoll, das die meisten Geräte auf der Welt kontrolliert. In der IT wird es bei den Protokollen Fibre Channel, Fibre Channel over Ethernet (FCoE), iSCSI und InfiniBand benutzt sowie bei Festplatten in Desktop-PCs und Notebooks. Rotierende Medien galten linearen Medien (zum Beispiel Tapes) zwar lange Zeit als überlegen, aber die Kommandostruktur war wegen der unterschiedlichen Zugriffsgeschwindigkeiten schwierig zu gestalten – in der Mitte der rotierenden Festplatte sind sie geringer als an den Aussenseiten. Und weil sich der Roboterarm – oder Read/Write Head – hin und her bewegt, kann er immer nur eine Reihe von Befehlen nacheinander (sequenziell) abarbeiten. Eine parallele Bearbeitung ist wegen der physikalischen Struktur nicht möglich.
Mit dem Aufkommen von Flash als Alternative ist jedoch einiges in Bewegung geraten. Die Roboter-Analogie fortsetzend, hat man es nicht mehr mit verschiedenen Transportbändern zu tun, sondern nur mit einer einzigen gemeinsamen Fläche, auf der sich alle Gegenstände oder Blöcke befinden.Von seinem übergeordneten Standpunkt aus kann der Roboter alle Blöcke auf einmal sehen. Nichts bewegt sich, es handelt sich um einen «soliden Status». Bei diesem Stand der Dinge würde man immer noch den Roboterarm, der SCSI-Kommandos ausführt, benutzen: Alle Kommandos werden eins nach dem anderen umgesetzt. Da es sich aber nicht mehr um sich bewegende Medien handelt, könnte der Roboterarm sehr schnell sein.
Vor diesem Hintergrund wurde auf Initiative der NVM-Express-Organisation (siehe Kasten auf Seite 82) deshalb eine von Grund auf neue Technologie für Flash und NVM entwickelt, die einen prinzipiell anderen und sehr schnellen Daten- oder Blockzugriff ermöglicht.
Die wesentlichen Merkmale von NVMe sind: Während SCSI nur eine Reihe von Kommandos kennt, kann NVMe mit bis zu 64'000 Befehlsserien arbeiten. Darüber hinaus kann jede Serie bis zu 64.000 Befehle enthalten – gleichzeitig und nebeneinander.
Auf der Ebene der Analogie bleibend, würde das bedeuten, jeder Roboter hätte 64.000 ausführende Arme und jeder Roboterarm allein könnte 64.000 Kommandos abarbeiten. Aus Gründen der praktischen Umsetzung hat man die Anzahl der Kommandos auf 13 begrenzt, was für Flash ausreichend sein soll, sagt man bei Cisco.
NVMe und PCIe
NVMe und Flash haben alle Ingredienzen, mit denen sich die Art und Weise ändert, wie Rechenzentren Daten speichern und wiederherstellen. Flash per se ist bereits schnell. Mit NVMe lässt sich die Performance noch einmal deutlich über das heute bekannte Mass hinaus steigern.
Laut Untersuchungen der NVM-Express-Organisation ergeben sich mit der Kombination von PCIe/NVMe spürbare Leistungs-Steigerungen bei den Lese-/Schreibprozessen gegenüber SAS- oder SATA-Platten. Neben den Verbesserungen bei den Input/Output Operations per Second (IOPS) werden die CPU-Zyklen mit NVMe halbiert und die Latenzzeiten gegenüber den höherwertigen SAS-Platten reduziert. Detaillierte Zahlen dazu finden sich auf der NVM-Express-Webseite und in dem Webcast «The Performance Impact of NVMe and NVMe over Fabrics».
Wie J. Michael Metz darlegt, gibt es oft Unklarheiten, wenn es um das Verhältnis von NVMe und PCIe geht. In seinem Blog auf der SNIA-Webseite schreibt er: «Zu Beginn meiner Beschäftigung mit NVMe war ich selbst etwas verwirrt. Ich kapierte, was PCIe ist, aber ich brauchte lange, um zu verstehen, wo sich NVMe und PCIe überschneiden. Und dann war es mir klar: Sie überschneiden sich gar nicht.»
Zur Erklärung verweist Metz auf den Umgang mit besonders wichtigen Daten in der IT, die man immer näher an die CPU heranrückte. Traditionelle Hosts benutzen dazu einen I/O-Controller, der zwischen CPU und Speichergerät sitzt. Indem man PCIe einsetzt, kann der I/O-Controller jedoch aus dem Datenpfad herausgenommen werden, womit der Datenfluss deutlich beschleunigt wird.
Durch die direkte Anbindung an die CPU bietet PCIe einige technische Vorteile, zu denen niedrigere Latenzen, skalierbare Performance, beschleunigte I/O-Prozesse und geringerer Energieverbrauch gehören. SSDs werden wegen dieser Leistungsfähigkeit an PCIe angeschlossen, allerdings fehlte ein Standard für die Kommunikation mit SSDs über die PCIe-Schnittstelle. Mit NVMe wurde ein solcher Standard für die Kommunikation mit NVM-Speichergeräten geschaffen, der von immer mehr Hard- und Software-Herstellern unterstützt wird.
So wie man schon die SCSI-Schnittstelle aus dem Host auslagern konnte, so kann man auch die PCIe-Schnittstelle dort herausnehmen. Das erfordert aber eine eigene externe PCIe-Hardware-Schnittstelle. In gleicher Weise hat man begonnen, NVMe mit anderen Schnittstellen und Technologien für Storage Networking zu verbinden. Netzwerke oder Netzwerkgewebe (Fabrics) auf Basis von InfiniBand, Ethernet, Fibre Channel oder FCoE sind Beispiele dafür. Diese Entwicklungen können dazu führen, Hunderte oder Tausende von SSDs in einem Netzwerk miteinander zu verbinden – mehr als bei PCIe-basierten Systemen.
Zwei Beispiele für NVMe
Nach so viel Theorie sollen abschliessend noch zwei Beispiele das Spektrum vom NVMe-Produkten aufzeigen.
NetApp hat im September ein leistungsstarkes, NVMe-fähiges All-Flash-Array vorgestellt, das speziell für Workloads mit hohen Performance-Anforderungen wie Big Data Analytics, technisch-wissenschaftliche Berechnungen und Videoüberwachung entwickelt wurde.
Die Leistungsdaten gibt NetApp mit 21 GByte/s Bandbreite, 1 Million IOPS, einer Latenz von unter 100 Mikrosekunden und «100-Gb-NVMe-over-InfiniBand-Unterstützung» an. Mit zwei Höheneinheiten ist es sehr kompakt und als modularer Baustein tauglich. Das System unterstützt eine Brutto-Flash-Kapazität von 367 TByte, die auf 1,8 PByte skalierbar ist.
Zweites Beispiel: Toshiba hat im Juni die XG5-Serie, eine Familie von NVMe-SSDs, angekündigt. Sie basiert auf einem 64-Layer-3D-Flashspeicher und ist mit bis zu 1 TByte Speicherkapazität im kompakten M.2-Formfaktor ausser für Hochleistungs-PCs vor allem für die flachen, leichten Gehäuse professioneller Notebooks gedacht. Dank PCIe-Gen-3-Interface mit vier Lanes und NVMe-Revision-Protokoll 1.2.1 ist die SSD laut Toshiba mit bis zu 3000 MByte/s sequenzieller Lese- und bis zu 2100 MByte/s sequenzieller Schreibgeschwindigkeit extrem schnell. Im Vergleich zu 6-GBit/s-SATA-SSDs bietet die XG5 demnach eine bis zu 5,4-mal höhere sequenzielle Lese- und eine bis zu 3,8-mal höhere sequenzielle Schreibgeschwindigkeit.
Fazit und Ausblick
In jeder üblichen SSD steckt viel klassische Festplatte. Die Controller-Software muss deshalb mit Flash über Festplatten-Schnittstellen wie SCSI, SAS und SATA kommunizieren, was mit Leistungsengpässen bei der Verbindung zwischen Controller-Prozessoren und Speicher einhergeht. Hier schafft NVMe Abhilfe. Trotz der Preisunterschiede zwischen (preisgünstigen) Festplatten und (immer noch teureren) SSDs vergrössern sich mit NVMe die Vorteile der Flash-Technologie. PCIe bildet die physikalische Schnittstelle, während NVMe das Protokoll für das Management von NVM-Geräten darstellt, die diese Schnittstelle benutzen.
Sicherlich wird das nicht zum sofortigen Aussterben von Festplatten führen, aber es wird sie weiter in eine zweitrangige Rolle drängen – brauchbar für bestimmte Umgebungen und Applikationen in hybriden Arrays oder als Speichermedium in den nachgeordneten Tier-3- und Tier-4-Speicherebenen, vielleicht sogar vermehrt für die physikalische Basis von Virtual Tape Libraries (VTLs) oder für Langzeitarchivierung.
Unternehmen sollten sich bei Speicher-Entscheidungen deshalb genau über NVMe informieren – und darüber, ob und wie ihre vorhandenen SSD-Systeme schon damit zurechtkommen.