Non-Volatile Memory Express

Mehr Performance bei Flash-Speicher mit NVMe

17.04.2015 von Scott Harlin
Gerade im Unternehmenseinsatz können Flash-Speicher nicht genügend Leistung bieten. Schnittstellen wie SATA und PCI Express kommen an ihre Grenzen. Abhilfe schafft die NVMe-Spezifikation, um große Datenmengen in Hochgeschwindigkeit zu verarbeiten.

Im Unternehmensbereich gibt es immer mehr Möglichkeiten für Flash-basierten Solid-State-Storage, da er im Vergleich zu Festplattenspeichern eine schnellere I/O-Performance bietet, verschiedene Formfaktoren und Interfaces unterstützt und zudem energiesparender ist. Die in Unternehmen und von Nutzern gespeicherte Datenmenge hat astronomische Ausmaße erreicht, zudem müssen Daten noch schneller und effizienter geladen werden.

Es gibt mehrere gute Schnittstellen für Enterprise-SSDs, wobei sich aber PCIe als eine der besten erwiesen hat. Die direkte Verbindung mit der Host-CPU bietet minimale Latenzzeiten. Die aktuelle Version PCIe 3.0 ermöglicht 1 GByte/s Bandbreite pro Lane, wobei die PCIe-SSDs vier oder acht Lanes gleichzeitig nutzen können. Damit sind für die SSD Bandbreiten von 4 oder 8 GByte/s erreichbar.

Die heutigen Enterprise-Server haben mehrere PCIe-Slots für den SSD-Einsatz und können je CPU bis zu 40 Lanes einsetzen. Ein Server mit zwei Sockeln kann 80 PCIe-Lanes unterstützen. Durch den anhaltenden Leistungsunterschied zwischen Server-Prozessoren und den HDD-Subsystemen sind PCIe-SSDs äußerst beliebt. Sie stellen für die nächsten fünf Jahre einen globalen und schnell wachsenden Multi-Milliarden-Dollar-Markt dar. Zurzeit befindet sich die PCIe-basierende SSD-Nutzung noch in der Anfangsphase.

Um das erwartende Nutzungsniveau zu erreichen, benötigt die PCIe-SSD einen Host-gesteuerten Interface-Standard. Ohne diesen Standard muss jeder SSD-Anbieter eigene Treiber als Schnittstelle zwischen der SSD und dem Host entwickeln. Durch die Standardisierung der Schnittstelle ist nur ein einziger Treiber erforderlich. Daher wurde die Spezifikation "Non-Volatile Memory Express" NVMe erstellt. Diese soll das volle Potenzial des permanenten Speichers für Enterprise- und Client-Plattformen zur Unterstützung von PCIe-basierten SSDs ermöglichen.

NVMe
OCZ Z-Drive 6000
Die neue SSD-Serie mit NVMe umfasst kleine Formfaktor (SFF) von 2,5 Zoll sowie Add-In Card-Modelle (AIC). Die Z-Drive 6000 PCIe SSD-Serie hat die NVMe-Konformitätsprüfung bei UNH erfolgreich bestanden und wurde vom NVMe-Konsortium als NVMe-konformes Gerät zertifiziert.
Samsung SM951 SSD
Samsung hat die Massenproduktion der NVMe-konformen PCIe-SSD mit dem M.2-Formfaktor begonnen. Als Einsatzgebiet nennt der Hersteller PCs und Workstations.
Intel SSD DC P3700 Series
Die PCI-Express-Gen3-SSD nutzt ebenfalls bereits das neue Controller-Interface NVMe.
HGST Ultrastar SN100
Die Flash-Laufwerke kommen in den PCI-Express-Slot (PCIe, 3.0 x4) und sind hier ab sofort als Low-Profile-Karten mit halber Höhe und Länge ("HH-HL") sowie alternativ als Hot-Swap-fähiges 2,5-Zoll-Laufwerk im SFF-Formfaktor (ab Mai) erhältlich. Die Ultrastar-SN100-Laufwerke unterstützen standardisierte NVMe-Treiber

Was steckt hinter NVMe?

Die bisher für SSDs verwendeten Schnittstellen wie SATA, SAS oder Fibre Channel sind für Spindel-Laufwerke bestimmt. Da sich die SSD-Technologie seit Jahren ständig weiterentwickelt, sind HDD-Schnittstellen für Flash-basierten Storage mittlerweile ineffizient. Mit NVMe steht SSD-Entwicklern das erste Mal eine standardmäßige, auf Flash beschränkte Host-Controller-Schnittstelle zur Verfügung, die von einem Industriekonsortium unterstützt wird und große Datenmengen in Hochgeschwindigkeit verarbeitet.

NVMe ist eine skalierbare Host-Controller-Schnittstellenspezifikation für SSDs auf einem PCIe-Bus; sowohl innerhalb von Enterprise- als auch Client-Systemen. Die Spezifikation wird ständig weiterentwickelt und von einem Industriekonsortium mit mehr als 90 Mitgliedern unter der Führung der 13-köpfigen Firmengründergruppe koordiniert. Die anfängliche NVMe 1.0-Spezifikation wurde im März 2011 veröffentlicht. Die aktuelle NVMe-Spezifikation ist Version 1.1, die im Oktober 2012 veröffentlicht wurde.

NVMe ist leistungsorientiert, strukturiert und bietet ein rationalisiertes sowie optimiertes Register-Interface- und Befehlsset, das nur die Mindestanzahl der CPU-Clocks pro I/O benötigt. Das ermöglicht einen schnelleren Zugang zu kritischen Daten auf mehreren Kernen, geringere Latenzzeiten und einen reduzierten Energieverbrauch. Zudem werden aktuelle und zukünftige Speicheransprüche durch massiven Parallelismus und hohe Skalierbarkeit erfüllt.

Der Standard unterstützt auch 2,5 Zoll-Formfaktoren, sodass NVMe-basierte PCIe-SSDs bei auftretenden Fehlern im laufenden Betrieb gewechselt werden können. Dazu wird das Laufwerk einfach aus dem Servergehäuse gezogen, ohne dass man den Server abschalten muss. Diese Hot-Swap-Fähigkeit bieten PCIe-Edge-Cards nicht, bei fehlerhaften Karten muss der Server für einen Austausch heruntergefahren werden.

Der NVMe-Standard ist im Rahmen von High Availability (HA) auch Dual-Port-fähig. So sind im Fall eines plötzlichen Stromausfalls oder Systemabsturzes zwei redundante Datenpfade verfügbar: Fällt ein Datenpfad aus, setzt der verfügbare Datenpfad den Betrieb fort.

Innere Funktionsweise von NVMe

Enterprise-I/O-Anfragen laufen lange Zeit durch die Hardware-Infrastruktur wie NAND-Flash-ICs, Flash-Controller, Host-Bus-Controller, da sie nur kurz im Software-I/O-Stack verarbeitet werden. NVMe arbeitet mit einem rationalisierten Stack, der die Stack-Latenzzeiten reduziert und bedeutend mehr Befehle per Warteschlange ausführen kann als andere Legacy-Protokolle. Das SAS-Protokoll kann 254 Befehle pro Warteschlange verarbeiten, während SATA nur 32 unterstützt. NVMe unterstützt 64.000 Befehle pro Warteschlange und 64.000 Warteschlangen, womit ein extrem schneller Hardwarebetrieb möglich ist.

Flinker: NVMe arbeitet mit einem rationalisierten Stack, der die Stack-Latenzzeiten reduziert und bedeutend mehr Befehle per Warteschlange ausführen kann als andere Legacy-Protokolle
Foto: NVM Express

In einem Test von Intel reduzierte der Linux-NVMe-Software-Stack im Vergleich zu einem SCSI/SAS-Software-Stack den Software-Overhead um mehr als 50 Prozent (von 6 auf 2,8 µs) und die Anzahl der Befehlszyklen von 19.500 auf 9.100.

NVMe versus AHCI

Das "Advanced Host Controller Interface" AHCI wurde im Jahr 2004 für rotierende Medien mit hohen Latenzzeiten entwickelt und entspricht nicht mehr den heutigen Anforderungen von Permanentspeichern. Daher kann AHCI die SSD-Technologie nicht voll nutzen. NVMe ist für PCIe-SSDs sowie zukünftige Speichertechnologien ausgelegt und bietet dank rationalisiertem Storage Stack niedrige Latenzzeiten. Es können ohne Lesevorgänge Befehle erstellt werden, da AHCI vier nicht-zwischengespeicherte Registerlesevorgänge pro Befehl erfordert, sodass circa 2,5 µs zur Latenzzeit hinzukommen.

Die Hauptvorteile von NVMe im Vergleich zu AHCI umfassen:

NVMe vs. AHCI

Leistungsfähigkeit

NVMe

ACHI

Latenz

2,8 µs

6,0 µs

Max. Warteschlangentiefe / Befehle pro Warteschleife

64.000 / 64.000

1 / 32

Multicore-Unterstützung

Ja

Limitiert

Effizienz für 4-KByte-Befehle

Befehlsparameter erfordern einen 64 B-Abruf

Befehlsparameter erfordern zwei serialisierte Host-DRAM-Abrufe

Bei NVMe ist durch die Unterstützung von etlichen Warteschlangen und hohen Warteschlangentiefen gewährleistet, dass die CPU voll ausgelastet werden kann und die I/O-Situation sich entlastet.

Datenschutz von NVMe

NVMe setzt Datenschutz und Redundanz über ein Datenintegrationsfeld (DIF) um. Die zusätzlichen ECC-Bytes werden zur Überprüfung der Dateneigenschaften verwendet, sobald ein Lese- oder Schreibvorgang vom Host initiiert wurde. Der Datenblock umfasst die zusätzlichen ECC-Bytes als zwei Bytes, die für Fehlersuche bei der Datenübertragung durch die zyklische Redundanzprüfung (CRC) bestimmt sind. Ein CRC-Wert wird in jedem logischen Block gespeichert und beim Lesen des Blocks geschrieben. Außerdem wird er mit einem errechneten Wert verglichen.

Produktverfügbarkeit

NVMe ist eine neu entstehende Schnittstellenspezifikation. SSD-Anbieter können Geschäftsgelegenheiten realisieren, wenn sie als früher Anbieter den Zeitraum der Produkteinführung als entscheidenden strategischen Vorteil nutzen. Die Geschäftsentwicklung von NVMe-basierten PCIe SSDs verläuft positiv. Verschiedene Hersteller wie OCZ, Intel, HGST oder Samsung haben erste Produkte bereits im Angebot.

Flash Technologie für Geschäfts-Applikationen -
Automatische Datenverteilung.
Marktpositionierung von Flash-Speicher.
Definition der Tiering-Architektur.
Die Hybrid-Storage-Lösung im Detail.
Fluid-Cache_lösung für SAN.
Performance im Überblick.
Dynamisches Tiering.
Client- und Storage-Netzwerk.

Fazit

NVMe hält sein Versprechen und der wachsende Erfolg deutet auf ein neues Zeitalter der SSD-Technologie hin: Flash kann die volle Permanentspeicher-Performance bieten und Daten entsprechend den Ansprüchen von Enterprise- und Client-Anwendungen noch schneller laden.

Aus der Perspektive eines SSD-Anbieters hat NVMe daher zahlreiche Vorteile. Die Standardisierung vereinfacht den Entwicklungsaufwand. Die Protokolleffizienz rationalisiert den I/O-Stack, um die Software- Stack-Latenzzeit zu reduzieren. Umfassende Befehle pro Warteschlange ermöglichen eine sehr schnelle Hardware. Das Datenintegrationsfeld DIF bietet bei NVMe Redundanzprüfungen für übertragende Lese- und Schreibfehler, die vom Host initiiert wurden. Zudem reduziert es die Systemausfallzeiten sowie die Gesamtbetriebskosten durch SSDs, die während des laufenden Betriebs gewechselt werden können. (cvi)