Neue NVMe-Anforderungen konzentrieren sich auf Management
NVMe ist zu einem Standard für die Kommunikation bei SSDs geworden. NVMe-MI ist eine Erweiterung dieses Standards, die zusätzliche Aufgaben unterstūtzt.
Das NVMe-Interface entwickelt sich schnell zu einem Industriestandard für die Kommunikation zwischen In-band Host-Software und SSDs. Seit kurzem wurde die NVMe Management-Interface-Spezifikation (NVMe-MI) als Zusatz zu NVMe hinzugefügt, um Support für das Out-of-Band-Management zu gewährleisten. Der Standard NVMe-MI definiert eine Gruppe von Befehlen und eine Architektur zur Kontrolle von NVMe-Storage, mit der über eine entfernte Management-Applikation NVMe-Geräte identifiziert, überwacht und erneuert werden können.
NVMe ist eine Schnittstelle und ein Kommando-Set zur Kommunikation mit Speichergeräten, die über einen Serial Expansion Bus beziehungsweise via Peripheral Component Interconnect Express (PCIe) an einen Computer angeschlossen sind.
PCIe ist ein Bus-Standard, der im allgemeinen für die Anbindung peripherer Geräte an einen Computer benutzt wird und niedrigere Latenzen und höhere Datentransferraten als seine Vorläufer bietet. Jedes periphere Gerät, das über einen PCIe-Bus an das Motherboard angeschlossen ist, verfügt über seine eigene Point-to-Point-Verbindung. Auf diese Weise konkurrieren mehrere PCIe-Geräte, die an den gleichen Computer angebunden sind, nicht um die Bandbreite.
Das NVMe-Interface kümmert sich um viele Begrenzungen früherer Storage-Technologien, die nicht die Vorteile von PCIe-SSDs voll ausnutzen konnten, indem sie nun Verbesserungen bei IOPS, Bandbreite und Latenzen bringt. Als ein Resultat dieser Entwicklung wird NVMe schnell zu einem De-facto-Standard für diese PCIe-Drives.
NVMe erleichtert die Kommunikation zwischen der Host-Software und PCIe Non-Volatile-Memory-Subsystemen. Ein NVM-Subsystem besteht aus einem PCIe-Storage-Modul, das die benötigten Komponenten zur NVMe-Kommunikation umfasst. Zusätzlich zu den Speichermedien enthält das Subsystem einen oder mehrere NVMe-Controller, eventuell mehrere PCIe-Ports und verschiedene andere Komponenten.
Einführung von NVMe-MI
NVMe-MI setzt auf der NVMe-Interface-Spezifikation auf, um eine Management-Infrastruktur für NVMe-Geräte zur Verfügung zu stellen. NVMe-MI besteht aus einer Architektur und einem Befehlssatz, die unmittelbare Out-of-Band-Verwaltung von NVM-Subsystemen ermöglicht. Der NVMe-MI-Befehlssatz definiert die Command-Botschaften, die der Management-Controller erledigen darf. Der Set umfasst NVMe-Admin-Kommandos, spezifische NVMe-MI-Kommandos und Kommandos, die Zugang zu PCIe-Konfigurationen bieten.
Entsprechend der NVMe-MI-Spezifikation unterstützt NVMe-MI verschiedene Schlüsselaufgaben:
Auffinden von NVMe-Geräten und ihrer Fähigkeiten
Speichern von Daten über die Host-Umgebung und sie für den Management-Controller verfügbar machen
Monitoring des Zustands und der Auslastung der NVMe-Geräte
Erhaltung der Security der nicht-aktiven Daten
Zusätzlich zu diesen Aufgaben stellt NVMe-MI mehrere Befehlssätze zur Verfügung, um langfristige Latenzkommandos daran zu hindern, Monitoring-Aufgaben zu blockieren. NVMe-MI unterstützt auch das Standardformat Vital Product Data (VPD) und stellt das Lesen und Schreiben von VPD-Inhalten zur Verfügung.
Besonders wichtig ist es, dass diese NVMe-Interface-Spezifikation offen gegenüber allen Systemen ist.
Besonders wichtig ist es, dass diese NVMe-Interface-Spezifikation offen gegenüber allen Systemen ist. Sie gibt keine Empfehlungen oder Voraussetzungen über NVM-Storage, Systemprozessoren oder Betriebssysteme an oder schlägt irgendwelche Anwendungsmodelle vor. Zum Beispiel äußert sich die Spezifikation nicht darüber, ob NVMe mit SSDs, Hauptspeicher, Cache oder anderen Memory-Arten benutzt werden sollte. Das primäre Ziel der Spezifikation besteht darin, eine Schnittstelle für allgemeines Management auf einem Niveau zur Verfügung zu stellen, das von den Implementierungsdetails abstrahiert.
Die Prokoll-Layer von NVMe-MI
Eine NVMe-MI-Infrastruktur besteht aus Applikations-Layer, Protokoll-Layer, Message-Transport-Layer und physischem Layer, die bei den managementbezogenen Nachrichten zusammenarbeiten:
Der Applikations-Layer umfasst zwei Komponenten. Die erste ist die Managementanwendung, die für die Verwaltung des NVM-Subsystems genutzt wird. Die zweite ist der Management-Controller, der mit dem Subsystem wegen der Anwendung kommuniziert.
Der Protokoll-Layer besteht aus dem aktuellen NVMe-MI-Interface, das mit jedem Management-Controller verbunden ist. Das Interface führt die Managementaufgaben bei dem NVM-Subsystem und dessen Managementendpunkten aus.
Der Message Transport-Layer beruht auf dem Management Component Transport Protocol (MCTP) und den MCTP-Verbindungen mit dem physischen Layer. MCTP ist ein Protokoll, das Managementaufgaben zwischen intelligenten Hardwaregeräten unterstützt. NVMe-MI nutzt MCTP, um die Kommunikation zwischen dem Management-Controller und den -Endpunkten zu erleichtern. Der Message-Transport-Layer unterstützt sowohl PCIe- und System-Management-Bus-I2C-Verbindungen. SMBus und I2C sind kompatible zweidrahtige Busse.
Der physische Layer schließt die nötigen Ports ein, um Nachrichten vom Message-Transport-Layer zu empfangen, wobei jeder Port mit einem Managementendpunkt verbunden ist. Der physische Layer kann entweder keine oder mehrere PCIe-Ports oder auch einen SMBus-I2C-Port umfassen.
Alle NVMe-MI-Verbindungen kommen zwischen dem Management-Controller in dem Applikations-Layer und den Managementendpunkten im physischen Layer zustande, wobei sie unterwegs den Protokoll-Layer und den Message-Transport-Layer passieren. Mit anderen Worten, alle NVMe-MI-Kommunikation entsteht oder endet beim Management-Controller oder den Managementendpunkten.
Die Managementendpunkte, die an die PCIe- und SMbus-I2C-Ports angeschlossen sind, unterstützen alle die gleichen NVMe-MI-Kommandos und stellen die gleiche Funktionalität zur Verfügung, einschließlich der Fähigkeit, ihre Leistungen anzuzeigen. PCIe-Ports unterstützen jedoch viel höhere Datenraten als SMBus-I2C-Ports.
NVMe-MI wird immer besser
Die jüngste Überarbeitung der NVMe-MI-Spezifikation ist die Version 1.1, die vor allem die Fähigkeit hinzugefügt hat, NVMe-Kommandos über eine NVMe Admin Queue zu tunneln. Da NVMe over Fabrics ebenso die NVMe Admin Queue unterstützt, können NVMe-MI-Kommandos nun über eine NVMe-oF-Verbindung geschickt werden. Außerdem fügt NVMe-MI 1.1 die Unterstützung für In-band-Management hinzu sowie die Fähigkeit, SSD-Systeme zu verwalten, einschließlich solcher Elemente wie Ventilatoren und Temperatursensoren.
Trotz der Verbesserungen, die Version 1.1 bringt, ist dieser NVMe-Schnittstellenstandard noch immer eine relativ junge Technologie, und es wird noch einige Zeit vergehen, ehe sie breiter eingesetzt wird. Auf jeden Fall aber stellt NVMe-MI eine wichtige Ergänzung der NVMe-Spezifikation und einen entscheidenden Schritt vorwärts hin zu einem effektiveren Management von NVMe-Geräten dar. NVMe-MI unterstreicht auch die wichtigen Geländegewinne, die NVMe in den vergangenen Jahren gemacht hat und welche wesentliche Rolle es inzwischen bei der Unterstützung von SSD-Geräten spielt. Mit so einer weit verbreiteten Anwendung wird es nur eine Sache der Zeit sein, bis NVMe-MI auch ein regulärer Bestandteil der IT-Infrastruktur werden wird.
Fortsetzung des Inhalts unten
Kostenlosen Guide herunterladen
Flash-Optionen: Was SCM und Computational Storage bringen
Flash-Speicher ist keine neue Erfindung, konnte sich aber erst mit Lösungen wie SLC, NAND, All-Flash-Arrays und SSDs in Rechenzentren durchsetzen. Mit Storage Class Memory und Computational Storage verschwimmen nun die Grenzen zwischen Speicher und Memory. Lesen Sie hier das Wichtigste zu den Neuerungen am Flash-Markt.