NVMe – der neue Übertragungsstandard für Flash-Memory Wie der Flash-Speicher die Rechnerinfrastruktur umwälzt
Die Storage-Schnittstelle NVMe wird über kurz oder lang SATA ablösen, denn sie bietet zahlreiche Leistungsvorteile. Vielfach herrscht indes bei den Anwendern noch Ratlosigkeit darüber, ob es sich bei NVMe um eine echte Schnittstelle oder nur um ein Protokoll handelt.
Anbieter zum Thema

Ein Hersteller wie Pure Storage macht alle seine aktuellen Geräte bereits NVMe-ready und Samsung stellt praktisch alle seine neuen SSD-Laufwerke von SATA auf die NVMe-Schnittstelle um.
Die Marktrelevanz dieses Storage-Protokoll ist inzwischen unübersehbar. Doch wer ist und was macht die kommende Schnittstellen zum Champion auf dem Markt?
Rechnerinfrastruktur im Umbruch
NVMe steht für "Non-Volatile Memory [Host Controller Interface Specification (NVMHCI)] over the PCI Express bus". Da das Wortungetüm NVMHCI/Express für Laien unaussprechlich ist und für das Marketing viel zu lang, hat sich die Abkürzung "NVMe" eingebürgert.
Unter NVMe ist seit der ersten Konzeption im Jahre 2007 eine rein logische Geräteschnittstelle für den Zugriff auf NVM-Speicher, also Flash Memory bzw. SSDs, zu verstehen.
Die bislang genutzte Schnittstelle für Flash-Speicher in der Form von SSDs ist SATA und SAS. Beide Schnittstellen sind allerdings schon beim sequentiellen Datenstrom einer SSD mit ihren Brutto-Bandbreiten von 6 respektive 12 GBit pro Sekunde überfordert.
Der Clou beim NVMe-Speicher-Protokoll besteht nun darin, dass es von Anfang an bei Intel für die Nutzung von parallelen Datenströmen ausgelegt wurde, und diese Parallelisierung ist bereits mit Flash Memory realisierbar. Das spiegelt den Trend zur Parallelisierung bei CPUs, Plattformen und Applikationen wider.
Da aber schon viele Betriebssysteme wie etwa Linux und MacOS die Schnittstelle unterstützen, gibt es seit November 2015 kommerziell erhältliche NVMe-SSDs, darunter die DC P3700 Serie, die DC P3600 Serie und the DC P3500 Serie von Intel. Die Entwicklungsgemeinschaft NVMe.org wurde zur Firma NVM Express.
Direkter Speicherzugriff in Fabric-Konfigurationen
Das Interessante an NVMe ist, dass es sowohl PCIe als auch mehrere Transportprotokolle nutzen kann. Zu diesen Protokollen gehören zum Beispiel RoCE (RDMA over Converged Ethernet) oder Fibre Channel über Fabrics. Dies in Kombination wird auch als NVMe/F bezeichnet.
NVMe/F sind entweder Fabrics, die RDMA verwenden (RoCE, iWARP oder auch Infiniband) oder Fabrics über Fibre Channel. Das Betriebssystem nutzt den gleichen Standardgerätetreiber für sämtliche NVMe-Geräte. SCSI wird als Schnittstelle nicht mehr gebraucht.
NVMe-Geräte gibt es als PCI-Erweiterungskarte und als 2,5-Zoll-Geräte mit einer PCIe-Schnittstellen über den U.2-Konnektor (vormals SFF-8639). SATA Express Speichergeräte und die M.2-Spezifikation für interne Steckkarten unterstützen laut Wikipedia ebenfalls NVMe als logische Schnittstelle.
"NVMe erlaubt in Speichersystemen im Gegensatz zu SAS einen massiven parallelen Zugriff auf die Speichermedien", erläutert Markus Grau, Principal Systems Engineer bei Pure Storage. "Somit lässt sich das volle Potential von Flash in Gänze nutzen." Hierdurch werde auch eine deutlich höhere Packungsdichte erreicht, da man durch die Parallelität von NVMe keine hohe Anzahl an Devices benötige, um konsistent hohe Performance abrufen zu können.
SATA und SAS taugen nicht für SSD-Zugriffe
Grau verdeutlicht das mit einem Rechenexempel. "Bei SAS sinkt die I/O-Performance pro GByte dramatisch mit zunehmender Kapazität. Werden bei einer 200 GByte SSD noch 1.000 IOPS/GByte erreicht, so sind es bei einer 60 TByte SSD bloß noch 2,4 IOPS/GByte."
Das kann man sogar ohne NVMe-Protokoll viel besser machen: Schon 2014 wurde mit einem LSI-Controller und PCIe 2.0 x4 ein Datendurchsatz von 1,8 GByte pro Sekunde und zufälligen Schreib- und Lesezugriffen von 150K/80K IOPS erzielt.
Ralf Colbus, ein führender Speicherexperte bei IBM Deutschland, zeigt die Auswirkung von NVMe auf die Latenzzeit auf:
- Latenzzeit in der Kette Applikation - Filesystem-Blocklayer - SCSI/SAS Driver = 6 µsec,
- Latenzzeit in der Kette Applikation – Filesystem–Blocklayer - NVMe Driver = 2.8 µsec.
Die Latenzzeit wird also über die gesamte Strecke vom Anwender bis zum Speicherzugriff mehr als halbiert.
Vergleich mit AHCI
In einem Vergleich mit AHCI schneidet NVMe besser ab. Die Schnittstelle "The Advanced Host Controller Interface" (AHCI) erfreut sich breiter Unterstützung, da sie die Standardschnittstelle für Festplatten ist. Allerdings wurde sie nicht für SSDs konzipiert, liefert also keine gute Datenübertragungsrater für über den PCIe-Bus angeschlossene SSDs. AHCI wurde für den Zugriff auf drehende magnetische Medien konzipiert. Doch SSDs verhalten sich eher wie DRAM als wie Festplatten.
Wie gesagt nutzt NVMe jedoch Parallelisierungseigenschaften von PCIe-SSDs. Die Hauptvorteile von NVMe gegenüber AHCI basieren also auf seine Fähigkeit, Parallelisierung in Hardware und Software auszunutzen. Das zeigt sich bei der Anzahl und Länge von Befehlswarteschlangen (64.000 Warteschlangen statt einer und 64.000 Befehle pro Warteschlange statt 32). Das zeigt sich auch bei der effizienteren Verarbeitung von Interrupts., der Anzahl der nicht pufferbaren Registerzugriffe und vieles mehr (siehe Tabelle in Abb. 8), die insgesamt dramatische Leistungssteigerungen liefern. Festplattenschnittstellen wie SATA oder SAS können angesichts der Flash-Innovationen nicht mithalten
Abb. Vergleich zwischen AHCI und NVMe (Quelle: Wikipedia)
NVMe bei zwei Storage-Anbietern
"NVMe ist bei Pure Storage bereits integriert in alle Systeme der FlashArray//m-Serie seit deren Markteinführung 2015", berichtet Markus Grau. "Jedes FlashArray//m ist somit für ein unterbrechungsfreies Upgrade auf NVMe Technologie, sowohl der Controller als auch der Flash-Medien, gerüstet."
Hier weist Grau auf eine technische Herausforderung hin: "Die alleinige Verwendung von NVMe-SSDs reicht nicht aus, um das Potenzial von NVMe auszuschöpfen. Die Controller müssen in der Lage sein, die Performance auch zu adressieren, und das Betriebssystem des All-Flash-Arrays muss NVMe auch nativ adressieren können." Das ist mit dem nächsten Update abgeschlossen.
Anders bei IBM. Das All-Flash Array (AFA) DS8xxx ist noch nicht damit ausgestattet. "Die jetzigen Flash Module in der DS8 AFA werden noch nicht über NVMe angebunden", so Ralf Colbus. Auf der Software-Seite arbeitet IBM an einer vollständigen Umsetzung: "Wir evaluieren gerade Spectrum Virtualized, Spectrum Scale und Spectrum Accelerate."
Ausblick
"Zunächst in Konsumergeräten genutzt, ist NVMe nun zum Standard-Speichermedium für Online-Daten in Rechenzentren geworden", berichtet Markus Grau. Doch bei NVMe over Fabric sieht es nicht so rosig aus. "NVMe/F ist noch in einem sehr frühen Stadium", berichtet Ralf Colbus, "das heißt, die Normierung und Standardisierung ist zwar durch, Treiber müssen aber noch entwickelt werden und die Hardware und Software (Adapter, Fabric etc.) muss natürlich gegeneinander getestet und zertifiziert werden." Er rechnet jedoch damit, dass Mitte 2017 der erste Einsatz von NVMe/F beginnen werde.
(ID:44503201)