Ich arbeite mit der Solid-State-Disk-Technologie bereits seit 2006. Damals verwendeten wir RAM-basierte Speichergeräte mit aktiver Festplattensicherung und einer integrierten USV gegen Stromausfall. Zu der Zeit sprachen wir von Kapazitäten von bis zu 128 GB. Die Konnektivität wurde über 4Gbit Fibre Channel oder DDR InfiniBand mit 20 Gbit/s (16 Gbit/s net throughput) bereitgestellt. Der Controller basierte auf einem FPGA und einem benutzerdefinierten Betriebssystem.

Das Unternehmen baute auch eigene FC-Controller, die eine geringere Latenz als herkömmliche Adapter von Qlogic und Emulex ermöglichten. Der Ansatz war gut und einfach mit einer hohen Leistung und sehr geringen Latenzzeiten. Allerdings fehlten mir zwei Hauptmerkmale.

  • Redundanz
  • Skalierbarkeit

Ein redundantes Setup über zwei Storage-Speicher war nur möglich, indem zusätzliche Layer im Datenpfad von DataCore und IBM SVC hinzugefügt wurden. Dies war für Redundanz und transparentes Failover. Die Skalierung wurde vorgenommen, indem mehr Storage-Speicherziele zum Speichervirtualisierungsserver hinzugefügt wurden, wodurch gleichzeitig ein Leistungsengpass entstand.

Dies wurde zum Preis zusätzlicher Komplexität und zusätzlicher Latenzzeit im Kauf genommen. Für mich, nicht gerade sehr ansprechend. Viele Jahre sind vergangen. Viele neue Lösungen kamen auf und verschwanden. Einige sprachen wiederhollt das Redundanzproblem an. Ich denke nicht, dass einer der Lösungen das Thema Skalierbarkeit ansprach, zumindest nicht gleichzeitig damit eine geringe Zugriffslatenz, hohe Iops und einen hohen Durchsatz zur garantieren.

NVMe over fabrics ist heutzutage der Hype. Zugriff auf NVMe-Laufwerke über eine RDMA-Fabric mit niedriger Latenz. Dies kann ein Standard von Ethernet oder InfiniBand sein. Einige verwenden auch PCI-Express- und FibreChannel-basierte Netzwerke.

Durch die Verwendung von 100Gbit Ethernet können wir einen Durchsatz von über 10GB/s und eine Zugriffslatenz im fast Nanosekundenbereich (auf der Netzwerkseite) erreichen. In der Realität erhöht NVMe over fabrics die Wartezeit der NVMe-Laufwerke um etwa 5μs (Mikrosekunden). Je nach NVMe-Laufwerk liegen wir also irgendwo im Bereich von 25μs Zugriffslatenz. Und das über ein standardmäßiges (RDMA-fähiges) Ethernet-Netzwerk.

Das ist wirklich großartig und ich liebe es. Endlich bekommt meine geliebte RDMA-Technologie etwas Aufmerksamkeit.

Aber moment, was ist mit Skalierbarkeit? Hier kommt ein neuer Anbieter ins Spiel. ** Was machen sie anders? ** Sie adressieren vier Schlüsselanforderungen.

  • Skalierbarkeit
  • Redundanz
  • Niedrige Latenz, hohe IOPS und Durchsatz
  • Software Defined (d.h. Sie können es auf jeder Standard-Hardware ausführen)

Das Erstaunliche ist, dass sie aus dem Nichts gestartet sind und bereits Kunden haben, die sie in der Produktion betreiben. Sie haben zwei wichtige Technologien kombiniert.

RDMA welche Remote-Speicherzugriff ohne Verwendung der CPU ermöglicht, und NVMe mit dem das Betriebssystem die CPU beim Zugriff auf das NVMe-Flash-Gerät umgehen kann.

Das Ergebnis heißt RDDA (Remote direct disk access). Die Festplatte ist das NVMe-Flash-Gerät. Mit den beiden Vorteilen von RDMA und NVMe kann auf das Flash-Gerät über das Netzwerk zugegriffen werden, ohne die CPU des Speicherziels zu verwenden. Alles wird zentral mit einem modernen Web-UI verwaltet. Das Management ist auch skalierbar und redundant.

Sie haben ihre eigene Client-Software mit integriertem Multipathing. Sie können sich vorstellen, dass ich es kaum erwarten konnte, dies in die Finger zu bekommen. Die Installation war sehr einfach und unkompliziert. Einmal installiert, wurde ich von einer modernen Web-Benutzerschnittstelle begrüßt. Durch die Art und Weise, in der das Web-UI entworfen wurde, ist es leicht zu erkennen, dass es unter Berücksichtigung von Skalierbarkeit erstellt wurde. Der Verwaltungsserver selbst ist unabhängig vom Datenpfad und Sie können einen Cluster mit mehreren Verwaltungsservern ausführen.

  • Die Konfiguration ist in Zielknoten, Client-Knoten und Volume-Konfiguration unterteilt.
  • Volumes können mehrere Ziele umfassen und Sie können zwischen RAID 0, RAID 1, RAID und JBOD Richtlinien wählen.
  • Sie können auch verschiedene Klassen für Ziele, Clients und Flash-Laufwerke erstellen.
  • Es entsteht der Eindruck, dass Tausende von Zielen und Kunden problemlos verwaltet werden können.

Ich muss zugeben, dass meine Testumgebung nicht dem Stand der Technik entsprach.

Ein Ivy-Xeon-Server mit zwei älteren HGST-1.6TB-NVMe-Laufwerken für das Ziel. Mellanox Connect-X 3 Pro 40 GB nics, ein älterer Mellanox SX1024 Switch und einige Sandy Bridge Xeon Clients.

Es war also eine Sache, 1,2 Millionen IOPS von zwei NVMe-Flash-Laufwerken zu sehen, aber gleichzeitig keine CPU-Auslastung auf dem Ziel zu haben, war absolut verblüffend.