Die NVM Express® (NVMe®)-Schnittstelle ermöglicht der Host-Software die Kommunikation mit einem nichtflüchtigen Speichersubsystem. Es definiert das Protokoll und steigert die Leistung von PCIe NVMe SSDs.
Im Juni 2021, NVMe 2.0 wurde veröffentlicht, Standardisierung einiger zusätzlicher Funktionen und Verbesserungen, insbesondere für Rechenzentren. Die bedeutendste Änderung ist jedoch das „Refactoring“, bei dem NVM Express die ursprünglichen NVMe1.4, NVMe-MI und NVMe-oF umstrukturierte, um die neueste NVMe-Spezifikation skalierbarer und erweiterbarer zu machen.
NVMe 2.0-Refactoring
Der Umfang des neuesten NVMe-Refactorings ist der Grund, warum diese Version mit 2.0 statt mit 1.5 nummeriert ist. Das in NVMe 2.0 enthaltene Refactoring ermöglicht eine schnellere und einfachere Entwicklung von NVMe-Lösungen zur Unterstützung der immer vielfältiger werdenden NVMe-Geräteumgebung.
Die vorherige Version enthielt die NVMe 1.4-Basisspezifikation, die NVMe-MI- und die NVMe-Of-Spezifikationen. Allerdings umfasst die neueste NVMe 2.0-Spezifikationsbibliothek vier Spezifikationsgruppen mit insgesamt acht Dokumenten:
1. NVMe-Basisspezifikation
• NVMe-Basisspezifikation
2. Separate Spezifikationen pro Befehlssatz
• Spezifikation des NVM-Befehlssatzes
• Spezifikation des Zoned-Namespace-Befehlssatzes
• Spezifikation des Schlüsselwert-Befehlssatzes
3. Modulare Transport-Mapping-Schicht
• PCIe-Transportspezifikation
• RDMA-Transportspezifikation
• TCP-Transportspezifikation
4. NVMe-Verwaltungsschnittstelle
• NVMe-MI
Das Refactoring in NVMe 2.0 umfasst die Integration der NVMe- und NVMe over Fabrics (NVMe-oF)-Spezifikationen und die Erstellung separater Spezifikationen pro Befehlssatz und pro Transport-Mapping-Ebene. Beispielsweise wurde PCIe in eine Transportspezifikation aufgeteilt.
Hauptfunktionen von NVMe 2.0
Neben der Umgestaltung und Veröffentlichung isolierter technischer Vorschläge aus früheren Spezifikationen umfasst die NVMe 2.0-Spezifikationsfamilie vier wichtige Funktionen.
In Zonen aufgeteilte Namespaces (ZNS)
Diese Funktion stellt die Schnittstelle bereit, die es NVMe SSD und Host ermöglicht, bei der Datenplatzierung zusammenzuarbeiten. Es kann die Daten an die physischen Medien der SSD anpassen, wodurch die Gesamtleistung verbessert und die Kapazität erhöht wird, die dem Host zur Verfügung gestellt werden kann. Darüber hinaus wird die Schreibverstärkung mit ZNS erheblich verbessert. Mit anderen Worten: Der Einsatz von ZNS kann die Lebensdauer von NVMe-SSDs verlängern.
Die Zoned Namespace Command Set-Spezifikation definiert, wie ZNS-SSDs betrieben werden können. Drei wichtige Betriebsmerkmale der ZNS SSD sind:
1. Der in Zonen unterteilte Namespace ist in eine Reihe gleich großer Zonen unterteilt, bei denen es sich um zusammenhängende, nicht überlappende Bereiche logischer Blockadressen handelt.
2. Schreibvorgänge innerhalb einer Zone müssen sequentiell erfolgen und an der Position des „Schreibzeigers“ beginnen.
3. Jede Zone muss gelöscht werden, bevor sie neu beschrieben werden kann.
Schlüsselwert-Befehlssatz
Die nach Ende der 2000er Jahre entstandene Flut unstrukturierter Daten beschleunigte die Entwicklung nicht-relationaler Datenbanken. Eine Schlüsselwertdatenbank ist eine Art nicht relationale Datenbank, die eine einfache Schlüsselwertmethode zum Speichern von Daten verwendet. Sowohl Schlüssel als auch Werte können alles sein. Dieser Datenbanktyp ist stark verteilt und ermöglicht eine horizontale Skalierung in Maßstäben, die andere Datenbanktypen nicht erreichen können. In einer Schlüsselwertdatenbank kann es jedoch erforderlich sein, Daten in einem Log-Structured Merge-Tree (LSMT) zu organisieren. Dieser Vorgang erfordert viel mehr Schreibzyklen zusätzlich zu den ursprünglichen Datenschreibvorgängen und führt zu einer kürzeren Lebensdauer einer SSD.
NVMe-KV wurde entwickelt, um dieses Problem zu lösen. Es ermöglicht den Zugriff auf die Daten in einem NVMe-SSD-Namespace mithilfe eines Schlüssels anstelle einer logischen Blockadresse. Der NVMe-KV-Befehlssatz stellt den Schlüssel zum Speichern eines entsprechenden Werts auf nichtflüchtigen Medien bereit und ruft diesen Wert dann durch Angabe des entsprechenden Schlüssels vom Medium ab. Durch die Befolgung des von SNIA definierten NVMe-KV-Befehlssatzes und der Schlüsselwertspeicher-API-Spezifikation ermöglicht die KV-SSD Benutzern den Zugriff auf Schlüsselwertdaten ohne den kostspieligen und zeitaufwändigen Aufwand zusätzlicher Übersetzungstabellen zwischen Schlüsseln und logischen Blöcken [4]. .
NVMe Endurance Group Management
NVMe Endurance Group Management ermöglicht die Konfiguration von Medien in Endurance Groups und NVM-Sets. Dies ermöglicht eine Granularität des Zugriffs auf die SSD und eine verbesserte Kontrolle.
Endurance Group- und NVM-Sets wurden erstmals in NVMe 1.4 eingeführt, Kunden hatten jedoch nur begrenzte Möglichkeiten, sie zu konfigurieren. Die Konfiguration müsste entweder in der Firmware des Laufwerks fest codiert oder mit herstellerspezifischen Befehlen gehandhabt werden. NVMe 2.0 bietet Benutzern einen Mechanismus zur Zuweisung der Endurance Group und NVM-Sets. Mit mehr konfigurierbaren Parametern kann das NVM-Subsystem flexibler sein, um die I/O-Leistungseffekte und den Wear-Leveling-Vorgang verschiedener Benutzer auf gemeinsam genutzten Laufwerken oder Arrays zu isolieren.
Dieses Diagramm zeigt die NVMe-Speicherentitätshierarchie:
1. Das NVM-Subsystem enthält Domänen
2. Domänen enthalten Ausdauergruppen
3. Endurance-Gruppen enthalten NVM-Sets
4. NVM-Sets enthalten Namespaces
5. Namespaces enthalten ein Array logischer Blöcke
HDD (rotierende Medien) wird jetzt mit NVMe 2.0 unterstützt
Obwohl die SATA-Spezifikation seit 12 Jahren nicht aktualisiert wurde, können Festplatten immer noch nicht an die theoretische Bandbreite der SATA-Schnittstelle (600 MB/s) heranreichen. Daher gehen wir nicht davon aus, dass die Rotational Media-Unterstützung von NVMe 2.0 unmittelbare Leistungsvorteile für die Festplatten mit sich bringen wird. Der Hauptgrund für die Unterstützung von Rotational Media durch NVMe ist die Verbesserung der Zusammensetzbarkeit des Gesamtsystems. Ein hochgradig zusammensetzbares System bietet Komponenten, die in verschiedenen Kombinationen ausgewählt und zusammengestellt werden können, um spezifische Benutzeranforderungen zu erfüllen. Diese Funktion kommt Rechenzentren und Unternehmensumgebungen zugute.
NVMe 2.0 ist eine deutliche Verbesserung gegenüber 1.4
Wenn man sich die neuen Funktionen in NVMe 2.0 ansieht, wird deutlich, dass sich NVMe nun auf die Nachfrage von Unternehmen und Rechenzentren konzentriert. Das Ergebnis ist überhaupt keine Überraschung. Genauso wie Jeff Janukowicz, Research Vice President IDC, sagte: „NVMe-Technologie ist die führende Schnittstelle für SSDs, wobei die gesamte weltweite SSD-Kapazität von Unternehmen bis 2024 voraussichtlich mit einer durchschnittlichen jährlichen Wachstumsrate von 43% wachsen wird. Die NVMe-Architektur ist für die zukünftige SSD-Entwicklung konzipiert Formfaktoren, da wir in eine neue Ära im Hyperscale- und Enterprise-Computing eintreten, die die digitale Transformation vorantreibt.“
In diesem Artikel verwendete Ressourcen:
1. Abbildung 1,2,6: NVM Express
2. Abbildung 3: Zonenspeicher
3. Abbildung 4: Northeastern University College of Engineering
4 Abbildung. 5: NVM Express