yblaz - Fotolia
NVMe: Neue Architekturen sprengen Leistungsgrenzen
Non-Volatile Memory Express (NVMe) kann wegen einiger Altlasten sein volles Potential noch nicht entfalten. Neue Architekturen werden diese Grenzen überwinden können.
In den letzten fünf Jahren war das Aufkommen von Flash in Speicherinfrastrukturen recht transparent aus einem einfachen Grund. In den Arrays wurden einfach SAS-Festplatten durch Solid-State-Disks (SSDs) mit SAS-Anschluss ersetzt.
Dieser allmähliche Übergang stößt heute an Grenzen. Der SAS-Bus nähert sich dem Schrottplatz. Und außerdem bieten neue Technologien wie Intel Optane die Möglichkeit, Flash viel effektiver zu nutzen.
Allmählich entdecken die Hersteller die Vorteile von Non-Volatile Memory Express (NVMe) und der Netzwerkvariante NVMe over Fabric (NVMoF). Das verändert die Herangehensweise an Flash Storage völlig.
NVMe als optimiertes Protokoll
NVMe ist ein neues und optimiertes Protokoll. Es nutzt den PCIe-Bus als Interface. Die Vorzüge liegen in höheren IOPS und niedrigen Latenzen. Der Befehlssatz von NVMe ist vereinfacht mit weniger Anfragen an die CPU.
Die Schnelligkeit ist spektakulär: Eine typische Micron SSD PCIe erreicht 750.000 IOPS bei Lesevorgängen und 300.000 IOPS beim Schreiben.
Aber wenn man 24 NVMe SSDs in einen Server oder ein Array einbaut, stößt man auf ein Problem: Der Prozessor wird zum Flaschenhals. Das System bietet einfach nicht genug Bandbreite oder CPU-Zyklen, um mit der Datenflut fertig zu werden, ohne dass IOPS und Latenz negativ beeinflusst werden.
Die Situation verschlimmert sich bei NVMe over Fabric. Wie der Name schon sagt, ist NVMe over Fabric ausgerichtet auf Netzwerkprotokolle wie Ethernet, Fibre Channel oder Infiniband. Damit können Duzende oder Hunderte NVMe-Laufwerke in ein einziges System eingebunden werden.
Storage-Architektur stößt an Grenzen
Die Frage ist nun, wie man eine Storage-Architektur aufbauen kann, die Vorteile von NVMe wirklich zur Geltung bringt.
Im Moment sind die Hersteller noch nicht soweit, eine befriedigende Antwort auf diese Fragestellung zu geben. Es gibt aber bereits interessante Ansätze.
Pure Storage hat beispielsweise das Array NVMe FlashArray//X70 angekündigt. Es handelt sich um ein traditionelles Array mit zwei Controllern, das ausschließlich mit NVMe-Laufwerken bestückt ist. Dieselben Services wie mit anderen Geräten von Pure sind möglich (Thin Provisioning, Compression, Deduplication, Snapshots, Clones, Replication synchron und asynchron).
Mit 20 NVMe-Laufwerken wären theoretisch Millionen IOPS möglich. In der Praxis erreicht es aber „nur“ 175 000 IOPS.
Die Zahl zeigt, dass die Entwickler noch einen weiten Weg vor sich haben. Im Moment reichen 175.000 IOPS, um den Bedarf von mehr als 90 Prozent aller Unternehmen abzudecken. Nur in wenigen Einsatzszenarien wäre eine höhere Leistung sinnvoll.
Aber die IOPS-Anforderungen steigen jedes Jahr, und zwar laut Gartner um 70 bis 100 Prozent jährlich.
Lange wurden Festplatten als Haupthindernis für den Fortschritt von Storage angesehen, jetzt wird der Prozessor zum Sündenbock. Die Rolle der Prozessoren beschränkt sich nicht auf I/O-Abfragen, sondern sie leisten auch Services, an die sich Anwender gewöhnt haben. Kompression und Deduplikation sind eine starke Belastung für Prozessoren.
Die Alternative sind schnelle Arrays ohne Services
Um höhere Leistung herauszuholen, muss man auf Services verzichten. Einige Pioniere wie Mangstor setzen dies um und versprechen mehrere Millionen IOPS in einem Array, konkret einem Server bestückt mit NVMe-Laufwerken und mit dem Ethernet über NVMe over Fabric verbunden.
Aber diese Formel-1-Methode ist fragil. Es liegt dann an den Anwendungen, sich um Data Protection und Resilienz zu kümmern. Das mag akzeptabel sein, wenn eine Applikation diese Aufgabe bewältigen kann, wie beispielsweise die Oracle Datenbank mit ASM. Aber die meisten anderen Anwendungen scheitern an dieser Problemstellung.
Verteilte Kontrollen
Eine andere vielversprechende Methode ist es, auf Verteilung zu setzen. Wenn einige CPUs nicht ausreichen, um mit der Belastung durch NVMe fertig zu werden, warum versucht man es dann nicht einfach mit mehreren Serverknoten, also einer Scale-Out Architektur?
Der erste Anbieter, der diesen Ansatz wählt, ist der israelische Start-up E8 Storage. Die Technologie beruht auf einem Storage-Rack mit zwei Controllern und 24 NVMe-Laufwerken.
Die Kontrollfunktionen sind über alle Server verteilt, die an das Rack angeschlossen sind, bis maximal 96 Server. Damit können zehn Millionen IOPS erreicht werden.
Excelero, ein anderes Start-up, wählt einen ähnlichen Ansatz. Software wird auf traditionellen Servern implementiert, die NVMe-Laufwerken bestückt sind. Zusammen erzeugen diese Server einen Storage-Pool. Mit einem Cluster von zehn Servern und 80 NVMe-Laufwerken kann damit bis zu 20 Millionen IOPS erreichen.
Auch wenn die traditionellen Storage-Hersteller nicht auf so radikale Methoden setzen, suchen sie doch ebenfalls nach neuen Ansätzen. NetApp, Kaminario und Pure Storage haben sich bereits daran gemacht, eine neue Architektur zu konzipieren.
Im ersten Schritt entfernen sie die SAS-Controller aus ihren Arrays und ersetzen sie durch PCIe und NVMe over Ethernet für die internen Verbindungen. Für die externe Anbindung wird SAS durch NVMe over Fabric sowie einer Sammlung von JBOF-Laufwerken (Just a Bunch of Flash) ersetzt. Ein JBOF dient als minimalistischer Server mit mehreren Ethernet-Anbindungen auf der Basis von x86- oder ARM-Prozessoren. Genügend PCIe-Busse bieten genügend Leistung für sehr hohe IOPS.
Kaminario verspricht die ersten so konzipierten Produkte im Lauf des ersten Quartals 2018. Pure Storage hat eine ähnliche Ankündigung gemacht, aber im Moment unterstützt das Betriebssystem noch kein Scale-Out. NetApp will sich in eine ähnliche Richtung entwickeln. Das Betriebssystem ONTAP beherrscht bereits Scale-Out. Aber NetApp wartet wohl noch ab, bis mehr Kunden nach NVMe-Systemen fragen, bevor ein neues Array auf den Markt kommt.
Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!