NVMe-Protokoll für SSDs: Daten-Turbo für Laufwerke
Das Kürzel NVMe steht für Non-Volatile Memory Express und bezeichnet das Protokoll, über das CPU und Laufwerke Daten miteinander austauschen.
Das NVMe-Protokoll ist zwar für besonders schnelle SSDs ausgelegt, aber auch der Einsatz bei Festplatten ist möglich. Wir haben für Sie die wichtigsten Fragen in dieser FAQ zusammengefasst
NVMe versus AHCI
Was unterscheidet das NVMe-Protokoll von dem bei SATA-SSDs verwendeten AHCI-Protokoll?
Das Advanced Host Configuration Interface wurde für Festplatten entwickelt. Das im AHCI enthaltene Native Command Queing (NCQ) kann lediglich 32 Befehle in einer Kommandoschlange aufnehmen, welche die Festplatte in beliebiger Reihenfolge abarbeiten kann. Damit sollten die mechanischen Laufwerke zeitraubende Kopfbewegungen vermeiden, weil die Firmware so quasi auf dem Weg liegende Daten vorziehen kann.
NVMe ist hingegen ein speziell für die Eigenschaften von SSDs entwickeltes Protokoll. Es setzt auf PCI Express auf, ein Protokollwandel ist damit unnötig – das spart Zeit, die Latenz für eine Anfrage sinkt von 6 µs bei AHCI auf etwa 2,8 µs bei NVMe. Zudem entfallen SATA-Wandler und zugehöriger Software-Stack, die Komplexität des Gesamtsystems sinkt. NMVe nutzt nicht nur eine Warteschlange, sondern gleich 65.535, wobei jede dieser Schlangen bis zu 65.535 Befehle aufnimmt.
NVMe-Versionen und Erweiterungen
Meine NVMe-SSD arbeitet nach der Version 1.4. Inzwischen gibt es auch eine Version 2.0. Welche Vorteile hat diese?
Für den Einsatz in einem Desktop-PC oder einem Notebook bringt die Version 2.0 keinerlei Vorteile. Sie führt vor allem die bislang getrennt geführten Versionen für die NVMe-Basisspezifikation (NVMe 1.4) und die Erweiterung für die Anbindung über ein Netzwerk (NVMe-of 1.1, NVMe over Fabrics) zusammen.
Version 2.0 definiert in einer Basisspezifikation sowohl lokal als auch über das Netz eingebundene SSDs; sie beziehen sich damit auf mindestens eine Spezifikation aus den Unterbereichen Transport und Befehlssatz, welche jeweils weiter aufgeteilt sind. So enthält die Transport Specification weitere Details zu NVMe over PCIe, NVMe over RDMA und NVMe over TCP, also dem Zugang zur SSD. Die Command Set Specification definiert die klassischen NVMe-Befehle sowie Befehle für Zoned Namespaces (dazu gleich mehr) und die neuen Key Value Commands; beides ist nur für Serverinstallationen relevant.
Bislang ist uns nur eine SSD bekannt, die mit der NVMe-Version 2.0 arbeitet: die Samsung SSD 990 Pro. Bei unseren Tests unter Windows 11 stießen wir nicht auf Probleme, auch der gleichzeitige Einsatz von SSDs mit unterschiedlichen NVMe-Versionen funktioniert.
NVMe für Festplatten
PCIe-SSDs sind sauschnell, Festplatten sehr langsam. Was bringt der Einsatz von NVMe bei lahmen Laufwerken?
Noch ist nicht sicher, ob es jemals Festplatten mit PCIe-Anschluss geben wird. Wenn, dann werden sie höchstwahrscheinlich zuerst in großen Rechenzentren zum Einsatz kommen – nur für die hochkapazitiven Server-Festplatten haben die Festplattenhersteller noch Entwicklungsbudgets.
Die Idee für den möglichen Wechsel stammt aus dem Umfeld des Open Computer Projects (OCP). Dort ist man bemüht, das Design des Gesamtsystems möglichst weit zu vereinfachen – und der Fortfall von SATA-Schnittstelle und AHCI-Treiber sind ein Teil davon. Die höhere Geschwindigkeit des Protokolls spielt keine Rolle, denn Festplatten werden die SATA-Grenze von 550 MByte/s in den nächsten Jahren kaum überwinden.
PCIe-SSD oder NVMe-SSD
Wie nennt man denn eine SSD korrekt, die mit dem NVMe-Protokoll arbeitet? NVMe-SSD oder PCIe-SSD? Oder sind noch ganz andere Bezeichnungen geläufig?
Jede aktuelle PCIe-SSD nutzt das NVMe-Protokoll, sodass die Bezeichnungen PCIe-SSD und NVMe-SSD mittlerweile gleichwertig sind. Es gibt sie allerdings in verschiedenen Bauformen: Am häufigsten trifft man auf M.2, meistens mit 22 Millimeter Breite und 80 Millimeter Länge (M.2 2280 genannt) und gelegentlich auf eine PCIe-Steckkarte (AIC, Add-In Card). Im Serverbereich verbreiten sich immer mehr Einschubkarten nach dem EDSFF-Standard (Enterprise & Data Center SSD Form Factor), noch herrschen dort aber SSDs im 2,5-Zoll-Gehäuse mit U.2- oder U.3-Anschluss vor. All diese SSDs nutzen PCIe als Schnittstelle und NVMe als Protokoll.
Vor einigen Jahren gab es ein paar PCIe-SSDs, die mit dem AHCI-Protokoll von SATA-SSDs arbeiteten. Diese brauchten einen herstellereigenen Treiber, das Konzept hat sich aber nicht durchgesetzt.
Spezielle NVMe-Treiber
Bei der Suche nach Software für meine Samsung-SSD bin ich über einen speziellen Windows-Treiber für Samsung-SSDs gestolpert. Welche Vor- oder Nachteile hat dieser?
Der Treiber wurde ursprünglich für Samsungs erste PCIe-SSD, die 950 Pro, geschrieben. Er war schon damals nicht zwingend notwendig, auch die 950 Pro funktionierte mit dem Standard-Windows-Treiber. Die letzte Aktualisierung des Samsung-Treibers fand vor mehr als zwei Jahren statt, selbst die 980 Pro wird von dem Treiber nicht mehr unterstützt. Wir empfehlen, den Standard-NVMe-Treiber von Microsoft zu benutzen.
Unter Umständen kann die Installation eines speziellen Treibers jedoch sinnvoll sein. So stellt Solidigm für seine SSD P41 Plus einen speziellen Treiber bereit, der die Zugriffe auf zufällige Adressen im Vergleich zum Standardtreiber beschleunigt. Steckt zusätzlich eine PCIe-SSD eines anderen Herstellers im System, sollte man dagegen von der Installation hersteller- oder modellspezifischer Treiber absehen.
Unterstützte Betriebssysteme
Windows erkennt ja eine NVMe-SSD automatisch. Wie ist das bei anderen Betriebssystemen?
Die meisten Betriebssystemhersteller liefern Treiber für NVMe-SSDs mit. Der Einsatz unter Windows und Linux ist völlig problemlos, auch für FreeBSD, Solaris und VMware gibt es Treiber. Apple nutzt selbst bei seinen iPhones NVMe, verhindert aber den Einbau von Standard-PCIe-SSDs in seinen älteren MacBooks durch eine veränderte Pinbelegung.
PCIe-SSD löschen
Ich habe mir eine neue PCIe-SSD zugelegt, weil meine alte zu klein geworden ist. Die alte möchte ich nun weitergeben. Wie kann ich die Daten sicher löschen?
Moderne Mainboards enthalten eine Löschfunktion im UEFI-BIOS. Rufen Sie dazu beim Start des PCs mittels der Tasten F2 oder Entfernen das UEFI-BIOS auf, wechseln Sie in den Modus für Fortgeschrittene und suchen Sie nach den BIOS-Tools. Dort finden Sie häufig einen Punkt namens Secure Erase.
Achtung: Mit dieser Funktion können Sie jede SSD im PC löschen. Achten Sie genau darauf, welche Sie auswählen.
Bei einigen SSDs lässt das Tool die Wahl zwischen einer Blockgröße von 512 Byte und 4 KByte. Wir empfehlen, hier 512 Byte zu nutzen.
Zoned Namespaces
Was sind Zoned Namespaces und wozu kann man diese benutzen?
Zoned Namespaces sind eine spezielle Art, eine SSD anzusprechen; dabei wandert ein Teil der Verwaltungsfunktionen von der SSD zum Betriebssystem oder dem Speichercontroller. Solche ZNS-SSDs sind in einzelne Zonen unterteilt, die von separaten Anwendungen oder verschiedenen virtuellen Maschinen getrennt ansprechbar sind; diese Zonen wirken für die Anwendungen wie eine eigene SSD. Die Anwendungen müssen sich selbst etwa um die Aufräumarbeiten, die sogenannten Garbage Collection, kümmern und auch das Defektmanagement übernehmen – das bei SSDs sonst übliche Overprovisioning entfällt.
Daraus ergeben sich einige Vorteile. So steht praktisch der gesamte Flash-Speicher zur Verfügung, zudem sinkt die Abnutzung durch das ausschließlich sequenzielle Schreiben und die Latenz sinkt. Der Einsatz lohnt sich jedoch nur in größeren Speichersystemen.
NVMe-MI
Das NVMe-Konsortium führt noch eine weitere Spezifikation auf, und zwar NVMe-MI. Worum geht es dort?
MI steht für Memory Interface. Die Spezifikation beschreibt Kommandos zur Verwaltung von NVMe-Geräten, dazu gehören zum Beispiel Funktionen zum Aktualisieren der SSD-Firmware.
Das Memory Interface lässt sich über zwei Wege nutzen, die beide in der Spezifikation beschrieben sind: zum einen über das auf dem Host laufende Betriebssystem, zum anderen über den auf einigen Mainboards vorhandenen Baseboard Management Controller (BMC).
Entwicklungsgemeinschaft
Wer ist für die Weiterentwicklung des NVMe-Protokolls zuständig?
Bereits vor 15 Jahren hatte eine Arbeitsgruppe um Intel einen ersten Entwurf für das Protokoll veröffentlicht, aus ihr entstand das NVM-Express-Konsortium. Mittlerweile gehören ihm über 100 Unternehmen an, praktisch alle bekannten Namen aus der Speicherindustrie sind dabei.
Das Konsortium wird durch eine Gruppe von 13 Unternehmen vertreten, die aus dem Kreis der Mitglieder bestimmt werden. Das sind derzeit Dell-EMC, Google, HPE, Intel, Kioxia, Marvell, Meta, Micron, Microsoft, Netapp, Samsung, Seagate und Western Digital.
Zudem gibt es noch zwei Klassen der Mitgliedschaft, Contributor und Adopter. Contributor zahlen 4000 US-$ pro Jahr, Adopter nur 500. Unternehmen der günstigsten Mitgliedsstufe bleibt beispielsweise die Teilnahme an NMVe-Arbeitsgruppen verwehrt und sie erhalten auch keine Vorabversionen neuer Spezifikationen.
(ll)