NVDIMM als Basis für (hyper-)konvergente Storage Server Infrastrukturen

Starnberg, 29. Aug. 2018 - Near-DRAM Performance mit der Persistenz von nicht-flüchtigem NAND Speicher und gleichzeitig hohen Kapazitäten kombinieren...

Um was es hier geht: Flash Storage ist auf dem Weg, Festplatten-basierenden Arrays massiv Konkurrenz zu machen und die Gründe dafür sind offensichtlich: Geschwindigkeit, kompakter Formfaktor, Energieverbrauch, Robustheit, Wartungskosten, vereinfachter Betrieb (OPEX), immer anspruchsvollere IOPS-Anwendungs-Workloads und nicht zuletzt der Anschaffungspreis (CAPEX), der inzwischen mit kapazitäts-optimierenden Maßnahmen HDD-Niveau erreicht hat.

Die Entwicklung bei Flash führte aber auch dazu, dass die Technologie verstärkt im Bereich des Hauptspeichers bei Serversystemen eingesetzt werden kann. NVDIMM (Non-Volatile Dual Inline Memory Module) nennt sich dieser Ansatz der Halbleiterindustrie, um das flüchtige DRAM mit NAND-Speicherzellen zu ergänzen und damit einen zusätzlichen, nicht-flüchtigen Storage-Tier - näher an der CPU - hinzuzufügen.

Flash und Storage Class Memory

Noch vor nicht allzu langer Zeit waren die Randbedingungen für Applikationsentwickler und IT-Architekten in Bezug auf den Speicherzugriff (I/O) klar definiert: Neben der CPU waren es vor allem Hauptspeicher, Cache und Festplatten, die eine relativ übersichtliche Struktur aus bekannten Variablen ergab. Die Festplatte als klassisches Speichermedium persistent und robust, die Daten im Memory flüchtig, sehr schnell und kapazitätsmäßig begrenzt. Aus den Vorgaben dieser „klassischen“ Speicher-Hierarchie beruht dann auch das gängige Anwendungsdesign (Ausnahme: In-Memory-Apps) und Latenzen auf Grund des I/O-Performance Gaps müssen Systemseitig je nach Anwendung intelligent behandelt werden.

Zwischenzeitlich sind jedoch massive Fortschritte im Bereich der Halbleiterspeicher-Entwicklung (z.B. Micron / Intel 3D XPoint / Optane, NVMe(f) etc.) zu verzeichnen. Die daraus resultierende Konvergenz von Memory und Storage - also der Speicher rückt näher an die CPU - führt zu hochgradig virtualisierten Server „SANs“ und I/O-Architekturen, die parallel mit der ständig steigenden Menge an zu verarbeitenden Daten und neuen Anwendungen mit Echtzeit-Anforderungen einhergehen. Eine der Fragen für Entwickler lautet damit: wie können Applikationen damit sinnvoll umgehen und am besten profitieren?

Ein weiterer Begriff in diesem Umfeld für die nächsten Jahre ist Storage Class Memory (SCM): dieser umfasst ein breites Entwicklungsspektrum innerhalb der Halbleiterspeicher-Industrie wie RRAM, STT-RAM, FeRAM, MRAM, Enterprise PCM (Phase Change Memory); künftig aber auch mit neuen Technologien (post-CMOS Ärea), inkl. Memristor (HP) und für die weitere Zukunft (15+ Jahre ??) vielleicht Nano-Tubes, Atomic-scale-Memory (IBM), usw...

Der Kern dieser Entwicklungen ist, die Geschwindigkeit von DRAM mit der Persistenz von nicht-flüchtigem Speicher bei gleichzeitig hohen Kapazitäten zu kombinieren. In diesem Zusammenhang findet meist auch der Begriff Persistent Dynamic Random Access Memory Verwendung, um nicht-flüchtige, granular skalierbare, energieeffiziente und latenzarme Speicher- und Verbindungsoptionen für Server-basierte virtual SANs, hyperkonvergente Systeme und Software Definierte Infrastrukturen zur Verfügung zu stellen.

Hochleistungs-Serversysteme besitzen können künftig nicht nur über eine hohe n-Core-Density, sondern auch eine Vielzahl unterschiedlicher Low-latency - Technologien als erweiterte Speicherhierarchie (memory tiering) verfügen, die im Zusammenspiel mit Betriebssystemen und Anwendungen einen effizienteren, aber auch differenzierten Ansatz des Zugriffs auf ihre Daten ermöglichen können (falls es die Software unterstützt).

Typische Einsatzgebiete für NVDIMM

NVDIMM (Non-Volatile Dual Inline Memory Module) ist eine relativ junge Entwicklung und erste Varianten wurden 2015 angekündigt. Sie soll nach Meinung der Industrie (sowohl Halbleiter- als auch Systemanbieter) im Zuge der gestiegenen Anforderungen an leistungsfähige Speicheroptionen nahe der CPU (memory channel) eine wichtige Rolle spielen, hauptsächlich bei virtuellen Cluster-Umgebungen, hyperkonvergenten Compute-Storage-Architekturen sowie Scale-out virtuellen Server-SANs, die mit Verbund mit neuen, aber auch bestehenden Anwendungen nach kosteneffizienten und skalierbaren latenzarmen Systemarchitekturen verlangen. Typische Anwendungsszenarien für NVDIMM-N sind:

  • Virtualisierung: höhere Memory-Dichte zur VM-Konsolidierung

  • Datenbanken: Log acceleration, Caching

  • In-Memory Datenbanken: Journaling, reduzierte Recovery-Zeiten

  • Enterprise Storage: Caching-/ Storage Tiering, Write-Buffering, Object stores, Real-time Transaktionen, Metadaten


In einem der nächsten Blogs hier werde ich näher auf NVDIMM und die einzelnen Varianten (es gibt drei davon) eingehen und diese vergleichen. Bis dahin alles Gute!


Abb. 1: Die Performance-Lücke schließt sich (Quelle: In-Memory Computing Summit US / HPE, SNIA, u.w.)