Blog zum Einsatz vom NVMe im Rechenzentrum

Starnberg, 25. Okt. 2017 - Zukunftsorientiertes Speicherprotokoll für Low-latency Anwendungen und NVM Solid State Storage...

Non-Volatile-Memory Express ist eine moderne und hochleistungsfähige Speicherprotokoll- und Interface - Alternative zu SCSI- und ATA, konzipiert zur latenzarmen Verbindung / Übertragung von Daten zwischen Server und Speichermedium. Der ATA-Befehlssatz, wie er heute überwiegend mit Serial ATA SSDs verwendet wird, sowie der SCSI-Befehlssatz für Serial attached SCSI (SAS) SSDs, wurde zu einer Zeit entwickelt, als mechanische Speichergeräte wie Festplattenlaufwerke (HDDs) und Tapes die zentrale Speicherhierarchie bildeten. NVMe hingegen ist gezielt für die Verwendung mit leistungsfähigem Flashspeicher wie SSDs / Solid State Arrays sowie weitere kommende Entwicklungen designed (s.a. unten).

Die Hauptvorteile von NVMe PCIe-SSDs gegenüber SAS-/SATA SSDs sind geringere Latenzzeiten auf Grund des optimierten Software-Stacks auf der Hostseite, mehr I/O-Operationen pro Sekunde sowie der potenziell geringere Stromverbrauch, allerdings abhängig vom Formfaktor sowie der Anzahl der verwendeten PCIe-Lanes.

NVMe unterstützt SSD-Drives, die verschiedene nichtflüchtige Speichertypen verwenden, darunter NAND-Flash sowie die von Intel und Micron entwickelte neue 3D XPoint Technologie. NVMe-Treiber sind für gängige Betriebssystem-Plattformen vorhanden.

Wie arbeitet NVMe?

NVMe bildet I/O-Befehle auf den Speicher im Server über PCIe ab. NVMe unterstützt parallele I/Os mit Multicore-Prozessoren, um einen hohen Durchsatz zu erzielen und mögliche Engpässe bei der CPU zu vermeiden.

  • NVMe bietet einen sehr schlanken Befehlssatz zur Verarbeitung einer I/O-Anfrage: NVMe benötigt weniger als die Hälfte der CPU-Befehle gegenüber SCSI mit SAS-Geräten bzw. der ATA-Befehlssatz bei SATA-Drives.

  • NVMe unterstützt 64.000 Befehle pro Nachrichtenwarteschlange und maximal 65.535 I/O-Warteschlangen. Im Gegensatz dazu unterstützt ein SAS-Gerät typischerweise bis zu 256 Befehle; SATA unterstützt bis zu 32 Befehle in einer Warteschlange.

  • NVMe vereinfacht zusätzlich zu den geschilderten Leistungsmerkmalen den I/O auf der Grundlage von 13 spezifischen NVMe Command-Sets, die auf die besonderen Anforderungen von NVM-Devices hin entwickelt wurden. NVMe mit NAND Flash kann damit sehr hohe I/O-Werte bei niedriger Latenz bereitstellen: publizierte Latenzzeiten liegen mit 200 Mikrosekunden unter denen von 12 Gbps SAS; zudem kann sich die CPU-Belastung um bis zu 50% durch den schlanken Befehlssatz gegenüber SCSI reduzieren  (Quelle: http://www.snia-europe.org).

Ist NVMe für alle gängigen Anwendungen sinnvoll?

NVMe-basierte PCIe-SSDs sind derzeit teurer als SAS- und SATA SSDs gleicher Kapazität, d.h. die erste Frage ist, ob vorhandene Anwendungen die Leistung überhaupt benötigen; dies sollte im Vorfeld berücksichtigt werden. High-Performance SAS-SSDs haben gegenüber NVMe PCIe-SSDs derzeit noch den Vorteil einer höheren Skalierbarkeit sowie Failover- und Hot Plug-Funktionalität für Standard-Anwendungen. Dies wird sich aber mit NVMe over Fabrics (NVMeoF) als low-latency shared Storage Architektur über die nächste Zeit ändern.


Zur Geschichte von NVM Express

Die NVMe Arbeitsgruppe (NVMHCI - Non-Volatile Memory Host Controller Interface) begann 2009 mit der Entwicklung der NVMe-Spezifikation und veröffentlichte am 1. März 2011 die Version 1.0. Diese umfasste die Bedienerschnittstelle, den NVM-Befehlssatz, den Verwaltungsbefehlssatz und Sicherheitsfunktionen. Aktuell ist Version 1.3 (s.a. NVM Express revision 1.3 specification available for download at http://nvmexpress.org).


Weitere Entwicklungen wie NVMe over Fabrics

Die flexible Skalierbarkeit der I/O-Leistung unter Berücksichtigung niedriger Latenzzeiten innerhalb von Server-, Speicher- und Netzwerk-Infrastrukturen kann aus geschäftlicher Sicht entscheidend sein; derzeit ein Bereich bei dem hochkapazitative Festplatten im SAN je nach Konfiguration und Anwendung Probleme verursachen können. All-Flash und SSDs adressieren zwar den Performanceaspekt geräteseitig, allerdings mit der Folge, dass die notwendigen Durchsatzraten bzw. Latenzen auf der Speicher-Netzwerkseite als neuer potentieller Engpass auftauchen; dies gilt übrigens auch für von Cloud-Deployments, bei denen das Netzwerk einen kritschen Flaschenhals darstellen kann.

100% Flash wird unabhängig davon jedoch beliebter, da die Systeme konstant hohe Anwendungsleistung (QoS) garantieren, die Verwaltung vereinfachen und Administratoren nicht ständig aktiv eingreifen müssen, um z.B. virtualisierte Applikationen I/O-seitig zu überwachen und zu tunen (OPEX). In Verbindung mit Deduplizierung sowie Komprimierung ist es heute zudem möglich, den Preispunkt (CAPEX) von HDD-Arrays zu erreichen (diese kapazitätsreduzierenden Maßnahmen gelten zwar auch für HDDs, allerdings leidet hier die Performance bei der Deduplizierung, so dass All-Flash neben einigen weiteren Aspekten meist die bessere Wahl darstellt).

Im Zuge der geschilderten Maßnahmen und vor allem im Kombination mit neuen Hochleistungs-Speichertechnologien (Non-volatile-Memory Storage wie 3-D NAND Flash, PCM bzw. weiteren künftigen Entwicklungen wie Storage Class Memory) bremst das SCSI-Protokoll durch seinen designbedingen Overhead die mögliche System- und Anwendungsleistung. NVMe als logischer Nachfolger wird hier verstärkt zum Zug kommen als standardisiertes Schnittstellen-Protokoll für SSD Flash über PCI Express. Weitere Entwicklungen wie die Konvergenz von Main Memory und Storage über alternative Bus-Interconnect-Konzepte wie der Memory-Semantic-Fabric werden gerade vom Gen-Z-Consortium vorangetrieben (siehe auch HPE "The Machine").


Querverweis: Blogpost > Entwicklungstrends bei Flash: NAND Storage rückt näher an die Server-CPU: Geringere Latenzzeiten auf Basis neuer, nichtflüchtiger Halbleiterspeicher-Module mit NVDIMM (DRAM mit NAND Flash)


Kurzes Fazit

NVMe und der neue NVMe over Fabrics (NVMe-oF) Standard sind Infrastrukturseitig in der Lage, Applikationen, Server, Netzwerke, Software-defined Storage (SDS) und externe NVMe Flash Storage Arrays extrem latenzarm zu betreiben. Dabei ist die neue Technik aber nicht nur für SSDs, sondern für neue Compute-Modelle, Fabrics oder Analytics Anwendungen (z.B. Appliances) interessant und die Anzahl der Anbieter am Markt wächst: eine Marktuntersuchung von G2M Research schätzt den NVMe Market auf rund $57 Mrd. US-Dollar im Jahre 2020 bei einer Wachstumsrate von 95% CAGR.