Stor IT Back - Ihr Speicherspezialist
NVMe (Nonvolatile Memory Express) V1.1 (c) Stor IT Back 2024
Um die Geschwindigkeit von SSDs weiter zu erhöhen und die Latenz zu verringern, kommt die SAS oder
SATA Schnittstelle bei SSDs schnell an ihre Grenzen.
Eine deutliche Geschwindigkeits- und Durchsatzsteigerung ist bei diesen Protokollen nicht zu erwarten. Also nutzt man ein
vorhandenes Protokoll (bzw. eine Schnittstelle), den PCI-Express Bus. Daher auch der Name NVM Express (NVMe), Non Volatile Memory über PCI Express.
Die SSD wird also zu einer PCI-Express-Karte. Warum denn dies?
Der PCI Express Bus ist in jedem Server, PC und Notebook enthalten und er ist extrem schnell und direkt an der CPU. Also warum diese Schnittstelle nicht direkt nutzen, warum den
Umweg über SAS- oder SATA-Controller gehen?
Gerade für Server und Power-PCs werden diese SSDs angeboten, aber auch im Consumer Segment nimmt diese Schnittstelle immer mehr Raum ein.
Aber was ist im Storage-Bereich? Da dort sehr viele Platten angeschlossen
werden müssen, kann dort nicht so einfach auf SAS als Bussystem verzichtet werden. Ein Umbau von SAS auf PCI Express wäre ähnlich komplex wie die Umstellung von
Fibre Channel auf SAS bei den
Festplatten vor einigen Jahren. Und es fehlt bei PCI-Express die Erweiterbarkeit auf einige hundert Schnittstellen pro System.
Im Enterprise oder Rechenzentrumsbetrieb können die NVMe SSDs eingesetzt werden und zwar bei der Storage-Virtualisierung. Dort werden normale Server
mit PCI Express Bus eingesetzt. Dort können diese SSDs direkt als extrem schneller Cache verbaut werden.
Auch bei der Neuentwicklung von Storage Systemen setzen immer mehr Hersteller auf NVMe, dort wird zwar nicht SAS komplett ersetzt,
sondern nur das Tier 0 im Storage-Tiering oder
der Flash-Cache mit den schnellen NVMe SSDs aufgebaut. Damit wird der schnellste Speicher auch dort verwendet, wo er auch am Besten genutzt wird. Also maximale Performance für
Daten die auch die maximale Performance benötigen.
NVMe Geräte sind PCIe Geräte, sprechen also direkt das PCIe Protokoll und benötigen keine Protokollübersetzer (zum Beispiel ein SAS HBA oder ein RAID Controller). Damit sind
sie extrem schnell und extrem gut an die CPU angebunden. Um den Zugriff noch weiter zu optimieren wurde ein sehr kleiner Befehlssatz für diese Geräte entwickelt, deutlich weniger Befehle
als bei SCSI oder SAS.
Features wie Hot Swap sind durch PCIe Funktionen realisiert worden, so dass ein Austausch oder eine Aufrüstung im laufenden Betrieb möglich ist. Auch wurde Multipathing für dieses
Protokoll definiert, so dass auch der Einsatz in redundanten Storage-Systemen möglich ist.
Bei Servern ist der Boot von einer NVMe SSD nur über native UEFI möglich, ein Legacy BIOS Mode ist nicht verfügbar.
Die Bauform M.2, früher als Next Generation Form Factor (NGFF) bezeichnet, ist die gängigste im Server und Desktop Bereich. Bei dieser Bauform ist aber nicht nur NVMe definiert,
sondern auch SATA 3 und USB 3. Bei der NVMe sind bis zu 4 PCI-Express-Lanes möglich. Je nach Mainboard teilen sich zum Beispiel PCIe Slots die Leitungen mit den M.2 Steckplätzen. Dies sollte
bei der Bestückung beachtet werden.
Eine weitere Bauform ist U.2 bzw. früher SFF-8639. Dies bezeichnet die Steckverbindung und ist für SAS, SATA und PCI-Express definiert. Eine neuere Definition ist U.3. Insgesamt sind dort Controller verfügbar, die entweder SAS und SATA beherrschen, oder eben NVMe. Wichtig ist also bei der Auswahl der Komponenten, was denn an SSDs genutzt und welche Protokolle bevorzugt werden sollen.
Ein Teil ist die Nutzung von NVMe SSDs in Storage-Systemen, der andere Teil ist der Anschluss von Servern an diese Storage-Systeme. Wenn innerhalb des
Storage jetzt alles auf NVMe aufgebaut ist, also der Anschluss der SSDs an das Storage. Dann muss doch auch der Server mit maximaler Performance (maximaler Durchsatz und minimaler Latenzzeit)
angeschlossen werden.
Wie wird das realisiert?
Einmal sind natürlich die bekannten Protokolle wie Fibre Channel und iSCSI möglich. Aber der Vorteil von NVMe ist ja gerade die Umgehung von
SAS oder Fibre Channel für die bessere Performance. Dafür wird auf Netzwerkebene auf Techniken des Remote Direct Memory Access zurückgegriffen. Im Falle von Ethernet ist
es dann RDMA over Converged Ethernet (kurz RoCE). Bei Fibre Channel dann NVMe oder Fabrics (kurz NVMe-oF). Vom Design her wird zwischen NVMe Device und dem PCI-Express-Bus des
Servers eine Netzwerkebene eingezogen.
Aber was ist dort nun der Vorteil?
Es geht ja trotzdem über Ethernet oder Fibre Channel. Das ist richtig, aber es wird nur das PCIe Protokoll genutzt. Es muss also nicht
wie bei SAS oder Fibre Channel das Protokoll übersetzt werden. Also direkt die PCIe Daten zwischen Server und Storage übertragen.
Aber wer braucht den jetzt ein NVMe-oF oder RoCE Storage System?
Alle Anwendungen, bei denen es auf die Latenzzeit ankommt. Also Applikationen in Echtzeit, gerade in den Bereichen Finanzen, künstliche Intelligenz (KI) und maschinelles Lernen (ML).
Aber natürlich auch Datenbanken und Applikationen in anderen Bereichen.