Vasyl - stock.adobe.com

Storage-Class-Memory verändert das Rechenzentrum

Mit persistentem Speicher und enger integrierten Netzwerken werden neue Rechnerarchitekturen möglich, die die Leistung von Rechenzentren in ungeahnte Dimensionen heben.

Derzeit scheint sich die Technologie rückwärts zu entwickeln. Erst vor einigen Jahren tauchte die Virtualisierung plötzlich auf und senkte die Kosten des Rechenzentrums.

Aber sie machte es auch zum Unding, direkt angebundenes Storage (DAS), also Storage innerhalb des Servers, zu betreiben, weil das Virtualisierungs-Modell die gemeinsame Nutzung aller Ressourcen erfordert – einschließlich Prozessoren, Storage, Code und Daten.

2008 tauchten dann plötzlich mit großem Getöse PCIe-SSDs auf dem Markt auf, und der Versuch, DAS abzuschaffen, verlor an Schwung.

Fusion-io war der erste Hersteller, der Anwendern zeigte, dass sie mit schnellem Flash-Storage im Server weit mehr tun konnten, sogar in einem virtualisierten System. Bald lernten System-Administratoren, dass das auch für langsamere, günstigere SATA-SSDs galt.

Heute ist Storage daran, noch viel tiefer in den Server integriert zu werden. Direkt am Memory-Bus wird Storage-Class Memory implementiert, während anspruchsvolle Anwender sich in Richtung In-Memory-Computing bewegen. Warum passiert das und welche Veränderungen resultieren aus dem Einsatz dieser „neuen“ Storage-Technologie?

Aus der Geschichte lernen

Vor mehr als einem Jahrzehnt stellten Halbleiterexperten die Hypothese auf, dass konventionelle Speichertypen wie dynamischer RAM (DRAM) und NAND-Flash kurz vor ihren Skalierungsgrenzen standen.

Ihre Kosten würden sich an diesem Punkt nicht mehr dadurch reduzieren lassen, dass die Transistoren verkleinert werden. Das war der Halbleiterwelt immer ein Anliegen.

Jeder macht sich heute Sorgen über das „Ende von Moore's Law“, einen Moment, in dem die fundamentale Dynamik des Chip-Business zum Stehen kommt, was bedeutet, dass Chips nicht mehr jedes Jahr billiger werden.

Nach ausgiebigem Nachdenken entschieden sich einige Vordenker der Industrie dafür, neue Materialien und Technologien zu suchen, die diese Barriere durchbrechen könnten. Sie sollen eine neue Memory-Klasse erschaffen, von der wir heute als neuartigem Memory (emerging Memories) sprechen.

Diese Technologien hätten auch gut funktioniert, wenn man von einem kleinen Problem absieht: Andere große Geister der Industrie, die ihre Anstrengungen auf DRAM und NAND-Flash fokussierten, fanden Wege, um die lange prognostizierten Skalierungsgrenzen zu sprengen.

Sie schafften es, diese Technologien in einem Maß weiter zu verkleinern, zu verdichten und ihre Kosten zu senken, wie man es sich nur wenige Jahre früher nicht vorstellen konnte. Sie taten das nicht nur einmal, sondern seit dem Auftauchen neuer Memory-Technologien haben besonders diese Vordenker immer wieder Möglichkeiten gefunden, Probleme zu umgehen, die zuvor als unlösbar galten.

Ist das Thema also falsch gewählt? Auf keinen Fall. Die Veränderungen, die diese Forscher vorhersahen, haben das aktuelle Interesse an In-Memory-Datenbanken und anderen Computing-Technologien stimuliert. Die neuartigen Memory-Technologien – und es gibt deren viele – haben gegenüber DRAM zwei Vorteile:

  1. Sie kennen keine Skalierungsgrenzen, oder diese sind weit größer als die von DRAM. Das bedeutet, dass, wenn die DRAM-Preise nicht weiter verringert werden können, die neuartigen Memory-Technologien diese Rolle übernehmen werden, was über lange Zeit hinweg zu weiteren Preissenkungen führen wird.
  2. Sie sind nichtflüchtig. Sie verlieren also ohne Strom nicht ihre Daten.

Der letztgenannte Vorteil erregte das Interesse noch größerer Geister, die vor mehr als zehn Jahren in IBMs Almaden-Forschungslabor in San Jose wirkten. Die Forscher dort entschieden sich, Programmierer zum Schreiben von Code zu ermuntern, der das Auftauchen von Memory antizipierte, dessen Volumen sich als Storage verdoppeln könnte, und gaben diesem Memory sogar einen Namen: Storage-Class Memory.

Nach der Definition von IBM Research kombiniert Storage-Class Memory die Vorteile von Solid-State-Memory wie hohe Leistung und Robustheit mit den Archivierungsfähigkeiten und den niedrigen Kosten von konventionellem magnetischen Harddisk-Storage.

Nun wissen wir alle, dass Memory Memory und Storage Storage ist. Wichtige Daten vertraut man nun einmal nicht dem Memory an. Aber Storage ist wirklich langsam. Wie also holt man das Leistungsoptimum aus einem System mit dieser schrecklichen Geschwindigkeitsbegrenzung?

Hier haben SSDs geholfen. Eine SSD ist etwa tausendmal schneller als eine Festplatte. Andererseits jedoch sind SSDs tausendmal langsamer als Memory. Da wäre es doch toll, wenn man nicht entweder SSD oder eine Harddisk einsetzen müsste, sondern ganz einfach Datenmanipulationen im Memory vornehmen könnte und es dabei beließe.

Wie wäre es also, wenn man einige der neuartigen Memory-Technologien als Storage verwenden würde? Das klingt gut, oder nicht? Das Problem liegt hier in deren exorbitant hohem Preis.

Wenn man bedenkt, dass diese Technologien entwickelt wurden, um die Kosten von Memory zu senken, sobald die Preise von DRAMs nicht mehr fallen würden, klingt das verdammt ironisch.

Das hängt mit den noch relativ geringen Produktionsmengen zusammen. Zudem verwendet jede dieser Technologien neue Materialien, die noch nicht so gut verstanden werden wie die das heutige Hauptstandbein der Massenproduktion bildenden Siliziumtechnologien.

Um den DRAM- und NAND-Flash-Preisen auch nur nahezukommen, muss die Industrie herausfinden, wie sie eine oder mehrere dieser Memory-Technologien in großen Mengen produzieren kann. Das Problem ist, dass es kaum mehr Nachfrage nach einer von ihnen geben wird, bevor die Preise bis in die Nähe derer von DRAM oder NAND-Flash gesunken sind.

Was ist mit Optane?

Doch was ist mit Intels neuem 3D XPoint Memory, das unter der Marke Optane angeboten wird? Es kommt 2018 in DIMM-Form (Direct Inline Memory Module) auf den Markt. Wird es nicht billiger sein als DRAM?

Ich weiß viel über Optane, immerhin habe ich 2015 den ersten Marktbericht darüber geschrieben. Damit die Implementierung von Optane in einem System sinnvoll ist, muss die Technologie billiger sein als DRAM. Intel wird dafür sorgen.

Aber das bedeutet, dass Intel mit Optane keinen Gewinn macht. Vielmehr steht es beinahe fest, dass Intel beim Verkauf von Optane in deren ersten Jahren auf dem Markt große Verluste einfahren wird.

Der Grund, sie trotzdem anzubieten, liegt darin, dass Optane den Verkauf teurerer Prozessoren stimuliert. Intel kann niemandem eine leistungsstärkere CPU verkaufen, wenn die Hauptplatine, auf der dieser Prozessor arbeitet, dessen Leistung bis auf die Werte seiner langsameren Gegenstücke drückt.

Intel sieht Optane als notwendige Antwort auf diese Herausforderung, und das Unternehmen ist durchaus bereit, zehn Dollar pro Optane-Memory an jeder Hauptplatine zu verlieren, so lange das Unternehmen deswegen einen Prozessor verkaufen kann, dessen Preis um 50 Dollar höher ist.

Das bedeutet, dass Systementwickler demnächst eine ausgezeichnete Chance haben werden, Software und Systeme rund um persistentes Memory zu bauen – der aktuelle Begriff für Storage-Class-Memory.

Intel wird demnächst seine Optane-DIMMs zu Preisen unterhalb derer von DRAMs verkaufen. Und weil es sich um nichtflüchtigen Speicher handelt, muss sich die Software nicht mehr auf langsamen Storage verlassen, um sicherzustellen, dass das Memory nach einem Stromausfall intakt ist.

Industrieorganisationen arbeiten schon hart daran, angemessenen Support sogar schon vor der eigentlichen Markteinführung der Hardware verfügbar zu machen. Die SNIA (Storage Networking Industry Association) hat Standards durch die diversen Standardisierungsgremien gebracht, damit Programmierer nicht das Rad noch einmal erfinden müssen.

Das Persisent Memory Programming Model der SNIA wurde in die Linux-Revisionen 4.4 und höher genau wie in alle Microsoft-Windows-Systeme auf NTFS-Basis einbezogen. Bestimmte Datenbanken wie Microsoft SQL Server und SAP HANA werden auf Storage-Class Memory vorbereitet.

Das ist ein guter Anfang. Aber zweifellos sind noch mehr Programme in Arbeit, die diese Technologie unterstützen. Microsoft hat eine Version seiner Windows 10 Workstation präsentiert, die nichtflüchtige DIMMs (NVDIMMs) unterstützt. Wahrscheinlich wird diese Plattform viele neue Anwendungen für persistentes Memory befeuern.

Ohne Hardware programmieren

Noch sind DIMMs mit persistentem Memory nicht zu konkurrenzfähigen Preisen erhältlich. Wie also testet und verifiziert ein Programmierer die neue Software für persistentes Memory? Vielleicht haben Sie noch nie von NVDIMMs gehört.

Doch sie sind eine wunderbare Methode, heute Software für die Systeme von morgen zu schreiben. Ein NVDIMM – insbesondere ein NVDIMM-N – ist eine intelligente Methode, die Vorteile eines DIMM mit persistentem Memory zu replizieren, bevor diese Memory-Klasse tatsächlich verfügbar wird.

Dieser DIMM nutzt den üblichen DRAM, enthält aber auch NAND-Flash-Chips und einen Controller. Er besitzt ein dediziertes integriertes Notstromversorgungspaket, das die Versorgung direkt nach einem Stromausfall übernimmt. Damit sieht er von außen persistent aus.

Sofort nachdem ein Stromausfall festgestellt wurde, isoliert sich der NVDIMM vom Rest des Systems und erhält seinen Strom vom Notstromversorgungspaket. Der Controller übernimmt die Steuerung und befiehlt dem NAND-Flash, alle Daten im DRAM zu kopieren. Nach Abschluss dieses Schritts fährt sich der NVDIMM selbst herunter. Erhält der Computer wieder Strom, sorgt der Controller dafür, dass der DRAM wieder alle Daten vom NAND-Flash lädt und präsentiert sich dem Prozessor mit einem DRAM voller valider Daten.

Natürlich ist das stark vereinfacht. Der NVDIMM kann sich nicht vom Prozessor isolieren, bevor alle Register und beschriebenen Cache-Zeilen auf ihn übertragen wurden, genau wie der Prozessorstatus.

All das muss wiederhergestellt werden, wenn der Betrieb weiterläuft. Aber die DIMM-Anbieter haben zusammen mit den Software- und BIOS-Communities bereits an den Details gearbeitet. Es ist nicht schwer, von einem von ihnen zu profitieren.

Statt noch tiefer in Details einzusteigen, soll hier auf einen aktuellen Report hingewiesen werden. Sein Titel: Profiting from the NVDIMM Market (Vom NVDIMM-Markt profitieren). Es gibt zum NVDIMM und seinem entstehenden Markt viel zu sagen, und darum geht es in diesem tiefgehenden Bericht.

Gemeinsame Nutzung von persistentem Speicher

Das alles ist gut für DAS, aber die Welt ist virtualisiert, und Virtualisierung erfordert gemeinsam genutzten Storage, sogar dann, wenn dieses Storage im Memory ist. Wie können wir all dieses schnelles Storage gemeinsam nutzen?

Als DAS-basierte SSDs begonnen, wieder in die Server zurückzukehren, wurde das zum Thema, und die Vorausdenker in diversen Software-Start-ups beschäftigten sich damit. Sie schrieben Code, der DAS wie gemeinsam genutztes Storage aussehen lässt oder der nach außen den Anschein erweckte, als wäre die DAS überhaupt nicht persistent, so dass sie vom Server als Memory behandelt wird. So blieb das Storage im gemeinsam genutzten Pool, machte aber gleichzeitig viel Netzverkehr überflüssig und konnte einen größeren Anteil der fehlgeschlagenen Seitenanfragen des virtuellen Memories liefern, als das mit Memory allein möglich gewesen wäre.

Zu diesem Zeitpunkt hatte sich das Netzwerk nämlich zum wichtigsten Engpass im Rechenzentrum entwickelt. Es war definitiv schnell genug für die HDDs, für die es konzipiert worden war, aber für all die Flash-Arrays bedeutete das Netz ein großes Hindernis, und für Storage-Class Memory wäre es nichts als ein Bremsklotz. Was also tun?

So wie das Storage näher an den Prozessor herangerückt ist, gilt auch beim Netzwerk: Wenn man es näher heranführen kann, beschleunigt das nicht nur das Storage, sondern gleichzeitig bekommt man auch schnelleres gemeinsam genutztes Storage. Das kann virtualisierte Systeme stark verbessern.

Führende Entwickler arbeiten bereits an diesem Thema. Systemarchitekten haben damit begonnen, unterschiedliche Methoden für die Verbindung von CPUs, Memory und Storage über mehrere Plattformen hinweg zu entwickeln – bei Geschwindigkeiten, die herkömmliche Netze in den Schatten stellen.

Die Industrie arbeitet an verschiedenen Standards, um das zu erreichen. Gen-Z, Open Coherent Accelerator Processor Interface, Remote Direct Memory Access und NVMe over Fabrics sind die mit den meisten Anhängern. Alle beschäftigen sich mit der mühseligen Aufgabe, das Netzwerk näher an den Prozessor zu rücken, wie das schon mit dem Storage geschehen ist, und zwar mit blitzschnellen Geschwindigkeiten und ohne dadurch ernsthafte Kohärenzprobleme heraufzubeschwören. Aber wie hindert man Prozessoren daran, gegenseitig ihre Daten zu korrumpieren? Das ist nicht einfach, doch an den Lösungen wird schon gearbeitet.

Am Ende kann man Systeme erwarten, in denen Storage unterschiedlicher Preisklassen und Geschwindigkeiten über Memory, SSDs und HDDs verteilt ist. Alle Storage- und Memory-Klassen sind für jeden Prozessor über kohärente Hochgeschwindigkeitsnetzwerke zugänglich. Das sollte das Preis-/Leistungsverhältnis von Computersystemen verbessern und die Leistung des Rechenzentrums von morgen in Regionen heben, die vor wenigen Jahren noch als utopisch galten.

Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Die NVMe-Technologie könnte das Konzept der Direct-Attached-Storage wiedererwecken

Intel stellt Optane mit 3D XPoint vor: Optane DC P4800X beschleunigt Storage

NVMe und 3D XPoint

Erfahren Sie mehr über Flash Storage und SSD