Speicher war schon immer die Art von Hardware, die das Versprechen enormer Geschwindigkeiten hielt. Es gibt einige Nachteile: Es ist teuer, hat eine begrenzte Kapazität und ist nicht persistent (um die Daten zu verwalten, muss der Speicher eingeschaltet sein, was noch problematischer ist, da der Speicher regelmäßig aktualisiert werden muss). Intel und Micron haben vor etwa drei Jahren die 3DXPoint-Technologie angekündigt, die den ersten Schritt in Richtung persistenten Speicher darstellen würde. Diese Technologie war zwar nicht annähernd so schnell wie Speicher, aber viel schneller als Flash-Speicher und viel kostengünstiger. MemVerge erkannte das Potenzial für persistenten Speicher und wurde ins Leben gerufen, um dieses Potenzial auszuschöpfen.
Speicher war schon immer die Art von Hardware, die das Versprechen enormer Geschwindigkeiten hielt. Es gibt einige Nachteile: Es ist teuer, hat eine begrenzte Kapazität und ist nicht persistent (um die Daten zu verwalten, muss der Speicher eingeschaltet sein, was noch problematischer ist, da der Speicher regelmäßig aktualisiert werden muss). Intel und Micron haben vor etwa drei Jahren die 3DXPoint-Technologie angekündigt, die den ersten Schritt in Richtung persistenten Speicher darstellen würde. Diese Technologie war zwar nicht annähernd so schnell wie Speicher, aber viel schneller als Flash-Speicher und viel kostengünstiger. MemVerge erkannte das Potenzial für persistenten Speicher und wurde ins Leben gerufen, um dieses Potenzial auszuschöpfen.
Die ersten 3D-XPoint-Geräte, die wir sahen, waren eher auf die Speicherung ausgerichtet. Im Laufe der Zeit nutzte Intel den 3D XPoint Persistent Memory (PMem), um eine schnellere SSD zu entwickeln. Später kündigte Intel ein persistentes Speichermodul an, das im DIMM-Steckplatz saß und als Erweiterung des DRAM fungierte. Während wir in der Vergangenheit Speicher für schnelle Anforderungen und Speicher für große Anforderungen sahen, begann PMem, die Grenzen zu verwischen. MemVerge versucht, das Beste aus beiden Welten zu vereinen, indem es DRAM-Leistung mit großer Kapazität und Beständigkeit ermöglicht.
MemVerge hat die Landschaft des persistenten Speichers untersucht und Software entwickelt, mit der PMem sein Potenzial voll ausschöpfen kann, anstatt es als Cache, Geschwindigkeitsstufe oder Speichererweiterung zu nutzen. Das Unternehmen nutzt das sogenannte Big Memory Computing, um reine DRAM-Umgebungen in kostengünstigere und, was noch wichtiger ist, Speicherumgebungen mit höherer Dichte umzuwandeln, die sowohl DRAM als auch PMem nutzen. Dies geschieht durch die Virtualisierung der beiden in einen Pool softwaredefinierten Speichers, der auch softwaredefinierte Dienste bereitstellt. Darüber hinaus bietet die Software eine Abstraktionsschicht, die es allen Anwendungen in einem Rechenzentrum ermöglicht, von neuen Arten von Speicher, Speicherverbindungen, Prozessoren und Speicherzuweisern zu profitieren, um moderne und neue Anwendungen und Arbeitslasten zu bewältigen.
Bereits im September letzten Jahres gab MemVerge die allgemeine Verfügbarkeit seiner Memory Machine bekannt. Die Software wird in zwei Varianten angeboten: Standardversion, die byteadressierbaren DRAM- und PMem-Speicher virtualisiert, Apps beschleunigt und die Kosten senkt, aber keine Persistenz ermöglicht; und AdvancedVersion, die alles oben Genannte mit aktivierter Persistenz bietet, sowie Speicherdienste der Enterprise-Klasse, die auf ZeroIO-In-Memory-Snapshots basieren.
ZeroIO-In-Memory-Snapshots ermöglichen, wie der Name schon sagt, Snapshots von DRAM und PMem mit ZeroIO zum Speicher. Dadurch wird DRAM, das normalerweise volatil und gering verfügbar ist, zu einer Hochverfügbarkeitsstufe. ZeroIO-Snapshots ermöglichen auch eine so genannte Zeitreise, also ein Zurücksetzen auf vorherige Snapshots. Es gibt eine AutoSave-Funktion, die Apps bei einem Absturz auf den vorherigen Snapshot zurücksetzt. Die Snapshots ermöglichen die Erstellung von Thin Clones, ohne mehr Speicherressourcen zu verbrauchen. Und die Snapshots können auf andere Server migriert und zum Erstellen einer neuen App-Instanz verwendet werden.
MemVerge-Speichermaschinenverwaltung
MemVerge Memory Machine verfügt über eine ziemlich schick aussehende Benutzeroberfläche. Das globale Dashboard zeigt Elemente, die wir im Speicher erwarten. Die Unterschiede in diesem Fall, dass DRAM und PMem die wichtigsten überwachten Elemente sind und deren Nutzung hier leicht zu erkennen sind. Oben befinden sich Registerkarten für Hosts, App-Instanzen, Snapshots und Warnungen.
Durch Klicken auf die Home-Schaltfläche auf der linken Seite werden grundlegende Informationen zum System (IP-Adresse, Betriebssystem, Kernel-Version, CPU) sowie ein tiefer Einblick in die Speicher- und PMem-Nutzung und -Leistung angezeigt.
Benutzer können einen tieferen Einblick in den Speicher erhalten, indem sie einen Speicherbericht aufrufen, um die stundenweise Nutzung anzuzeigen. Dies hebt auch den Typ PMem vs. DRAM hervor.
Und Benutzer können sich die RESTful-APIs von Memory Machine ansehen und sie konfigurieren.
Snapshots sind ein wichtiger Teil von Memory Machine, aber darauf gehen wir in unserem Leistungsabschnitt näher ein.
Konfiguration
In unserem Labor haben wir die MemVerge Memory Machine auf einem Supermicro SYS-2029U-TN24R4T mit den folgenden Spezifikationen eingesetzt:
Hardwaremodell | Supermicro SYS-2029U-TN24R4T |
CPU | 2x Intel(R) Platinum(R) 8270 CPU bei 2.70 GHz, 26 Kerne |
DRAM | DDR4 192GB |
PMem | 12x128GB |
Betriebssystem-SSD | 1 TB SATA-SSD |
OS | 8.2.2004 CentOS |
Kernel | 4.18.0-193.19.1.el8_2.x86_64 |
Leistung der MemVerge-Speichermaschine
Unsere normale Testreihe wäre hier nicht sinnvoll, da MemVerge Memory Machine auf Workloads und Anwendungen ausgerichtet ist, die im Arbeitsspeicher ausgeführt werden müssen. Unsere Benchmarks werden typischerweise als normale bis hochbelastete Arbeitsbelastungen angesehen, die im realen Leben während des IT-Betriebs auftreten würden. Stattdessen werden wir uns hier ein paar verschiedene Tests ansehen und dabei insbesondere auf Dinge wie DRAM vs. PMem vs. DRAM + PMem und deren Ergebnisse eingehen. Für diese Überprüfung verwenden wir KDB Performance sowohl für Masseneinfügungs- als auch Lesetests sowie Redis Quick Recovery mit ZeroIO Snapshot und Redis Clone mit ZeroIO Snapshot.
KDB-Leistungstests
Kxs kdb+ ist eine Zeitreihen-In-Memory-Datenbank. Es ist für seine Schnelligkeit und Effizienz bekannt und daher in der Finanzdienstleistungsbranche sehr beliebt. Eine große Einschränkung für kdb ist die Begrenzung der DRAM-Kapazität. MemVerge Memory Machine passt hier perfekt, sodass kdb PMem voll ausnutzen kann, um den Speicherraum mit ähnlicher Leistung wie DRAM zu erweitern. Für den Bulk-Insert-Test haben wir uns einen einzelnen Insert, 10, 100, 1000, 10000, 15000, 20000 und 25000 Inserts angesehen und Millionen von Bulk-Inserts pro Sekunde gemessen.
Mit der KDB-Masseneinfügung sehen wir einige interessante Ergebnisse. Bei einem einzigen Einsatz erzielten alle drei ähnliche Ergebnisse. Bei kleineren Losgrößen sehen wir DRAM als Spitzenreiter. Wenn die Batch-Größen über 10,000 ansteigen, sehen wir, dass Memory Machine die Führung gegenüber DRAM übernimmt, wobei PMem bei jedem Batch hinterherhinkt.
Als nächstes haben wir uns kdb+ mit einem Lesetest angesehen. Hier ist der Testaufbau etwas anders. Der Lesetest ist durchgehend derselbe, aber dieses Mal haben wir uns nur DRAM, nur PMem und dann PMem mit entweder 20 GB oder 40 GB DRAM-Cache angesehen. DRAM konnte nur 4.2 GB/s erreichen, PMem erreichte nur 2.9 GB/s, mit einem 20 GB DRAM-Cache, Memory Machine konnte mit nur 3.9 GB/s und 40 GB Cache fast das gleiche DRAM erreichen Wir sahen die höchste Leistung von 4.8 GB/s. Interessanter ist, dass die letzten beiden immer noch ausreichend DRAM für andere Aufgaben bieten.
Redis-Snapshot-Tests
Redis ist ein Open-Source-In-Memory-Datenspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet wird. Es ist sehr beliebt und leistungsstark und daher ein ideales Programm zum Benchmarking von MemVerge Memory Machine. Wenn Redis auf der MemVerge Memory Machine ausgeführt wird, werden DRAM und PMem Redis zugewiesen. Anschließend speichern MemVerge ZeroIO-Snapshots die Speicherseiten der Anwendung ohne Speicher-E/A-Vorgänge. Wenn Redis abstürzt, bleibt der gesamte Daten-Snapshot in PMem bestehen. Bei der Crash-Recovery wird einfach auf die vorhandenen Daten in PMem verwiesen, ohne dass Daten aus dem Speicher entnommen und verschoben werden müssen.
In diesem Abschnitt testen wir den MemVerge ZeroIO-Snapshot für eine schnelle Wiederherstellung.
Zuerst schauen wir uns Redis Quick Recovery mit ZeroIO Snapshot an. Im Gegensatz zu Leistungsbenchmarks zeigen wir hier Funktionalität und Benutzerfreundlichkeit. Sobald Redis installiert wurde und eine Datenbank ausführt, melden wir uns bei Memory Machine an und sehen beispielsweise, wie viel PMem verwendet wird.
Auf der Registerkarte „Anwendungen“ können wir sehen, dass ein Redis-Server ausgeführt wird.
Während es läuft, machen wir ein paar Schnappschüsse. Wenn keine Snapshots erstellt werden, ist eine Wiederherstellung anhand eines Snapshots natürlich nicht möglich.
Es schadet nie, auf Nummer sicher zu gehen. Überprüfen Sie noch einmal, ob wir einige Schnappschüsse gemacht haben.
Nachdem wir wissen, dass wir sie haben, lösen wir einen Redis-DB-Fehler aus. Wir machen einen Schnappschuss und stellen ihn wieder her. Nach einer kurzen Pause sind wir wieder einsatzbereit.
Redis-Klon mit ZeroIO-Snapshot
Hier führen wir mehrere der gleichen Schritte wie oben durch. Nachdem der Snapshot erstellt wurde, können wir ihn als Klon mit einem neuen Namespace und einer neuen IP-Adresse wiederherstellen. Wir verbinden uns von einem anderen Host aus mit dem Klon und können sehen, dass er ungefähr den gleichen Speicher beansprucht.
All dies kann für diejenigen, die es vorziehen, auch mit einer CLI-Eingabeaufforderung durchgeführt werden.
Schlussfolgerung
MemVerge Memory Machine ist ein SDS, das darauf abzielt, die Leistung des Speichers mit der Persistenz von PMem zu kombinieren. PMem wird normalerweise als Cache zur Beschleunigung der Speicherung verwendet. Während dies in vielen Fällen ein Segen für die Speicherung ist, benötigen In-Memory-Anwendungen Speicherleistung und keinen Cache. MemVerge virtualisiert sowohl DRAM als auch PMem in Pools von softwaredefiniertem Speicher mit softwaredefinierten Diensten. Memory Machine verwandelt DRAM mithilfe von ZeroIO-In-Memory-Snapshots in eine Hochverfügbarkeitsschicht. ZeroIO ermöglicht die Erstellung von Thin Clones, ohne Speicherressourcen zu belasten.
Wenn wir in neue Kategorien vordringen, müssen wir neue Leistungstests und Benchmarks einführen. Das Testen von In-Memory-SDS mit unseren normalen Benchmarks wäre nicht sinnvoll, da es nicht dafür gemacht ist. Stattdessen nutzten wir KDB Performance sowohl für Masseneinfügungs- und Lesetests als auch für Redis Quick Recovery mit ZeroIO Snapshot und Redis Clone mit ZeroIO Snapshot. Die Tests wurden auf einem Supermicro SYS-2029U-TN24R4T-Server durchgeführt, obwohl er auf validierten Servern funktionieren sollte, die Intel Optane PMem-Module unterstützen.
Mit KDM Bulk haben wir mehrere Chargengrößen getestet und dabei DRAM, PMem und eine Kombination aus beiden über Memory Machine untersucht. Da die Chargen zunächst klein waren, war es keine Überraschung, dass DRAM die beste Leistung aufwies. Was wirklich interessant war, ist, dass MemVerge immer besser abgeschnitten hat, je mehr die Ressourcen durch den Test beansprucht wurden. Bei der KDM-Lesung sahen wir ähnliche Trends. DRAM schnitt wirklich gut ab, keine Überraschung. PMem hat sich gut geschlagen, aber gut unter DRAM. Mit nur 20 GB Cache für DRAM mit Memory Machine lag die Leistung bei 3.9 GB/s im Vergleich zu 4.2 GB/s für DRAM allein. Wenn man MemVerge 40 GB DRAM für den Cache zur Verfügung stellt, erzielt man insgesamt die beste Leistung mit 4.8 GB/s, während dennoch genügend DRAM für andere Aufgaben übrig bleibt.
Der zweite Teil des Leistungstests war Redis Quick Recovery mit ZeroIO Snapshot und Redis Clone mit ZeroIO Snapshot. Hier ging es eher um Funktionalität als um quantifizierbare Leistung. Im Wesentlichen haben wir schnell Schnappschüsse gemacht, einen Fehler ausgelöst und waren schnell wieder einsatzbereit.
Intels PMem ist eine äußerst interessante Technologie, deren Einführung aufgrund der begrenzten Möglichkeiten, die Module einfach zu übernehmen und richtig zu nutzen, etwas langsam voranschreitet. Mit MemVerge können Unternehmen die Vorteile von PMem in einer Lösung nutzen, die speziell für diese Technologie entwickelt wurde. Für diejenigen mit Anwendungen, die vom großen und stabilen Speicherbedarf von PMem profitieren können, ist MemVerge auf jeden Fall eine Prüfung wert.
Beteiligen Sie sich an StorageReview
Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS Feed