pressmaster - stock.adobe.com

Computational Storage: Was es leistet und wo es nutzt

Mit Computational Storage könnte der inhärente Engpass herkömmlicher IT-Systeme mit separaten Komponenten überwunden werden – durch eine Verarbeitung an der Edge.

Unternehmen haben mit wachsenden Datenmengen und der Notwendigkeit, Informationen schnell zu verarbeiten, zu kämpfen. Der Umgang mit Daten am Rand (Edge) des Netzwerks ist keine neue Idee, aber er wird immer wichtiger. Computational Storage – wörtlich Rechenspeicher – ist jedoch ein relativ neuer Weg, um diese Herausforderung zu bewältigen. Doch mit Computational Storage zur Verarbeitung von Daten am Rand der Infrastruktur könnte der inhärente Engpass herkömmlicher IT-Systeme mit separaten Komponenten überwunden werden.

Eine Option ist die hyperkonvergente Infrastruktur (HCI) – bei der Verarbeitung, Storage und Vernetzung in Knoten integriert sind – die zu Clustern zusammengefasst werden können.

Computational Storage geht einen Schritt weiter. Die Verarbeitung von Daten wird auf das Speichersubsystem selbst verlagert. Dies, so die Protagonisten dieser Technik, bietet eine weitaus größere Effizienz, wenn das Datenwachstum aus der Verbreitung von Sensoren und dem Internet der Dinge (Internet of Things, IoT) resultiert oder eine schnelle Verarbeitung für Anwendungsfälle der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) benötigt wird.

Die Technik ist jedoch noch relativ unausgereift. Nur eine Handvoll Anbieter bietet Hardware für Computational Storage an, obwohl eine größere Anzahl der Arbeitsgruppe der Storage Network Industry Association (SNIA) angehört.

Was treibt den Bedarf an Computational Storage?

Laut SNIA (Storage Networking Industry Association) zielen „Computational-Storage-Lösungen typischerweise auf Anwendungen ab, bei denen die Nachfrage nach der Verarbeitung ständig wachsender Speicher-Workloads die traditionellen Compute-Server-Architekturen übersteigt“. Der Branchenverband nennt KI (künstliche Intelligenz), Big Data, Content Delivery und ML (Machine Learning) als solche Workloads. Weitere Anwendungen sind Ver- und Entschlüsselung, Datenkomprimierung und Deduplizierung sowie Speichermanagement.

Das Wachstum der Datenvolumina ist sicherlich ein Treiber. Doch der Schub kommt nicht nur daher, sondern resultiert auch aus der Notwendigkeit einer schnelleren Verarbeitung. Ein wichtiger Schritt ist dabei die Vermeidung eines Wasserkopfs für die Verwaltung der Daten und der vielen sich wiederholenden Aufgaben.

„Wir sehen eine allmähliche Zunahme der Fähigkeiten – es ist keine Revolution, sondern eine evolutionäre Veränderung“, sagt Andrew Larssen, Experte für IT-Transformation bei PA Consulting. „Je mehr sich solche Ideen in der Masse durchsetzen, desto häufiger werden wir sehen, dass die Technik noch breiter eingesetzt wird: bei der Vorverarbeitung, Komprimierung, Verschlüsselung und Deduplizierung oder beim Durchsuchen von Daten. Fast immer bietet es sich an, die Daten an Ort und Stelle zu verarbeiten, anstatt sie in eine CPU zu laden.“

Auf dem Papier ist ein System, das mit rechenintensivem Speicher ausgestattet ist, weniger CPU- und energieintensiv als herkömmliche Architekturen. Dies hilft am Rand der Infrastruktur, wo die lokale Verarbeitung Daten filtern kann, bevor sie an einen konventionellen Server weitergeleitet werden. Die hilft ebenso im Rechenzentrum, wo computergestützte Speichermodule einige Arbeitslasten von der CPU übernehmen.

In einer konventionellen Server-Storage-Architektur fordert die CPU Daten an, führt die Aufgabe aus und sendet die Daten zurück an den Speicher. In einem Computational-Storage-Modell sendet die CPU eine Aufgabe, zum Beispiel die Entschlüsselung, an das „intelligente“ Speicher-Subsystem. Ein weiterer Vorteil ist die Sicherheit, da die Daten nie das Laufwerk verlassen müssen.

Technologien und Einsatzmöglichkeiten

Computational Storage wird durch Technologien ermöglicht, die hochleistungsfähige Solid-State-Medien, kostengünstige programmierbare Arrays oder Prozessorkerne und effiziente Schnittstellen umfassen. Die aktuelle Generation von Computerspeichersystemen verwendet Flash-Speicher, obwohl, da Verarbeitung und Speicherung getrennt sind, jede ausreichend leistungsstarke Speichertechnologie funktionieren könnte.

Das System selbst ist typischerweise ein U.2 oder M.2 NVMe-Laufwerk oder eine PCIe-Karte. Einige Anbieter bieten auch EDSFF an. Die Ausnahme ist Samsungs SmartSSD, die, wie der Name schon sagt, auf einem Standard-2,5-Zoll-SSD-Mechanismus basiert. Die Roadmap der SNIA favorisiert NVMe für CSDs (Computational Storage Drives). Um die Rechenleistung bereitzustellen, verwenden Anbieter entweder feldprogrammierbare Gate-Arrays (FPGAs) oder ARM-basierte System-on-Chips (SoCs).

Die FPGA-Technologie ist derzeit weit verbreitet. IT-Abteilungen können ein „festes“ FPGA-System kaufen, in das bestimmte Funktionen einprogrammiert sind, typischerweise allgemeine Speicherverwaltungsfunktionen. Bei benutzerdefinierten oder programmierbaren Systemen können Benutzer ihre eigenen Funktionen hinzufügen, und zwar über Low-Level-FPGA-Sprachen oder eine High-Level-Programmiersprache wie Xilinx Vitis.

FPGAs können allerdings nicht im laufenden Betrieb programmiert werden. Dies hat einige Anbieter dazu veranlasst, stattdessen ARM-Core-SoCs zu verwenden. Diese können Linux ausführen und haben das Potenzial, die Möglichkeiten der Computing-Storage-Technologie noch zusätzlich zu erweitern.

Die SNIA geht beispielsweise davon aus, dass die Anbieter Ethernet oder andere Netzwerke hinzufügen, um eine Peer-to-Peer-Kommunikation zwischen Computational Storage Devices herzustellen. Bislang stellt jedoch nur ein Anbieter, NGD, ARM-basierte Rechenspeichergeräte her.

Da es so viele Anwendungen für Computational Storage gibt, ist der Markt für diese Technologie nicht homogen. Stattdessen entwickeln die Anbieter Geräte, die auf die jeweilige Anwendung, die Schnittstelle und die Art und Weise, wie sie programmiert und verwaltet werden, zugeschnitten sind. Einige Anbieter haben sich auf dedizierte Subsysteme konzentriert, während andere Computational Storage als potenzielles Upgrade für bestehende Speicherhardware positionieren.

Die Branche definiert Computational-Storage-Geräte derzeit wie folgt:

  • Computational Storage Drives (CSDs), das heißt Speicher mit zusätzlichen Rechendiensten;
  • Computational Storage Processors (CSPs), das heißt Hardware ohne eigenen Speicher, die jedoch die Verarbeitung in ein Speicher-Array einbringt; und
  • Computational Storage Arrays (CSAs), die mehrere CSDs oder gewöhnliche Laufwerke mit einem zusätzlichen CSP für Berechnungen bieten.

SNIA beschreibt außerdem Computational Storage Services (CSS) als Dienste-Ebene, die die Erkennung, den Betrieb und möglicherweise die Programmierung von Computational Storage-Geräten übernimmt.

Anwendungsfälle für Computational Storage

Computational Storage eignet sich für alle Anwendungen, bei denen das Verschieben von Daten vom Speicher zur CPU einen Flaschenhals darstellt. Dies deutet eher auf datenintensive als auf rechenintensive Anwendungen hin. Die in einem FPGA oder SoC verfügbare Rechenleistung ist begrenzt. Da nur wenige Anbieter SoC-basierte Systeme anbieten, auf denen ein komplettes Betriebssystem laufen kann, eignen sich feste CSDs für vorgegebene, feste Arbeitslasten wie Deduplizierung, Speicherverwaltung oder Verschlüsselung. Programmierbare CSDs finden ihren Platz in KI- und Business-Intelligence-Anwendungen, ebenso wie SoC-basierte Systeme. Sie können auch zur Datenbankbeschleunigung eingesetzt werden.

Nur SoC-basierte Systeme können direkt von einer CPU mit Code beladen werden, und selbst dort bedeutet dies eine Cross-Kompilierung von X86- zu ARM-Code. Aber das gibt den Anwendern die größte Flexibilität, da die Anwendungen die Verarbeitung nach Bedarf auf die CSDs verlagern können. Wenn die CSDs ihr eigenes natives Netzwerk bekommen, könnten sie auch Aufgaben direkt teilen und die CPUs weiter entlasten oder komplexere Arbeiten, die für eine einzelne CSD zu groß wären, am Rande erledigen lassen.

„Storage ist im Moment billig, und es gibt Anwendungen mit vielen Wiederholungen, besonders wenn man zu ‚Data Lake‘-Mengen übergeht“, so Andrew Larssen von PA Consulting. „Wenn man also Komprimierung und Deduplizierung [in der Speicherebene] durchführen kann, wird man große Gewinne daraus ziehen.“

Larssen geht davon aus, dass Streaming-Dienste, Videokomprimierung und Content Delivery Networks (CDNs) den Einsatz von Computational Storage nutzen werden. Er sagt auch ein Wachstum bei Datenbankbeschleunigern für Postgres und MySQL voraus.

„Die Technologie ist immer noch eine Nische“, sagt er. „Wenn sie nicht grundlegend besser für Ihr Geschäft ist, werden Sie sie wahrscheinlich nicht einsetzen. Es könnte billiger sein, die Menge der allgemeinen Rechenleistung zu verdoppeln, die Sie bislang verwenden. Wenn das nicht realistisch ist, können Sie ja über den Tellerrand schauen.“

Anbieter von Computer-Storage

Pliops vermarktet einen Storage-Prozessor als Hardwarebeschleuniger für Datenbanken und andere datenintensive Workloads. Er ist auf Postgres und MySQL ausgerichtet. Der Anbieter hat eine Compute- und Storage-Node-Acceleration mit einer auf NVMe basierenden Technologie entwickelt.

Samsung bietet eine Smart SSD an, die einen Xilinx-FPGA-Chip verwendet. Die Technologie ist über Samsung oder Xilinx erhältlich. Samsung positioniert die Technologie derzeit für BI (Business Intelligence), Finanzportfolio-Intelligenz und für die Luftfahrtindustrie.

NGD ist derzeit der einzige Anbieter, der ein SoC verwendet, auf dem ein Betriebssystem laufen kann, um das Computational Storage zu betreiben. Es sagt, dass sein System NAND-Flash-agnostisch ist und 64-Bit-Linux ausführt.

Eideticom bietet einen NoLoad-Computational-Storage-Prozessor an. Er soll der erste NVMe-CSP sein und zielt auf die Beschleunigung von Rechenzentrumsinfrastrukturen und wissenschaftliche Forschung sowie auf allgemeine Kostenreduzierung ab.

Scaleflux bietet AIC- und U.2-Laufwerke an. Die CSD-2000-Serie unterstützt bis zu 8 TB (Terabyte) 3D-Nand-Flash-Speicher mit Datenpfadkompression und -dekompression.

Erfahren Sie mehr über Storage Performance