Computational Storage
Computational Storage ist eine IT-Architektur, bei der Daten auf Speichermedienebene verarbeitet werden, um die Datenmenge zu reduzieren, die sich zwischen der Speicherebene und der Compute-Ebene bewegen muss. Diese Transferreduzierung erleichtert die Echtzeitdatenanalyse und verbessert die Leistung, indem er Input/Output-Engpässe reduziert.
In vielerlei Hinsicht kann ein Computational Storage wie jedes andere Solid State Drive (SSD) aussehen. Einige Produkte verfügen über eine große Anzahl von NAND-Flash-Speicher, der die Daten tatsächlich speichert, einen Controller, der das Schreiben der Daten in die Flash-Geräte verwaltet, und Random Access Memory (RAM), um einen Lese-/Schreibpuffer bereitzustellen. Das Besondere an Computational Storage ist die Einbindung eines oder mehrerer Multicore-Prozessoren. Diese Prozessoren können verwendet werden, um viele Funktionen auszuführen, von der Indizierung der Daten beim Eintritt in das Speichermedium über die Suche nach bestimmten Einträgen bis hin zur Unterstützung anspruchsvoller künstlicher Intelligenz (KI)-Programme.
Produkte und Dienstleistungen im Bereich Computational Storage kommen erst langsam auf den Markt, und die Fähigkeit, sie zu integrieren, befindet sich noch in einem frühen Entwicklungsstadium. Mit dem wachsenden Bedarf, Daten in Echtzeit zu speichern und zu analysieren, wird jedoch erwartet, dass der Markt sehr schnell wächst. Zum jetzigen Zeitpunkt kann Computational Storage unter Verwendung von zwei Schlüsselprodukten implementiert werden, die derzeit von der Storage Networking Industry Association (SNIA) Computational Storage Technical Working Group (TWG) definiert werden:
- Computational Storage Drive (CSD): ein Gerät, das Compute-Ressourcen im Speichersystem bereitstellt und persistenten Speicher unterstützt - einschließlich NAND-Flash oder anderen nichtflüchtigen Speichern (non-volatile Memory).
- Computational Storage Processor (CSP): ein Produkt, das Compute im Speichersystem bereitstellt, aber keine Daten auf irgendeiner Form von persistentem Speicher speichern kann.
Die Möglichkeit, Compute auf Geräteebene bereitzustellen, war erst nach der Einführung von SSDs wirklich verfügbar, da traditionelle Speichergeräte wie Festplatten (HDD) und Bandlaufwerke nicht in der Lage sind, die Daten lokal zu verarbeiten, wie es intelligentes Computational Storage kann.
Warum Computational Storage wichtig ist
Traditionell gab es immer eine Diskrepanz zwischen der Speicherkapazität und der Memory-Größe, die die CPU zur Datenanalyse verwendet. Diese Diskrepanz erfordert, dass alle gespeicherten Daten zur Analyse phasenweise von einem Ort zum anderen verschoben werden, was wiederum verhindert, dass die Datenanalyse in Echtzeit erfolgt. Mit solchen Produkten ist die Host-Plattform in der Lage, Anwendungsleistung und Ergebnisse aus dem Speichersystem zu liefern, ohne dass alle Daten von den Speichermedien in den Speicher zur Analyse exportiert werden müssen.
Computational Storage ist heute in modernen Architekturen wichtig, da die Rohdaten von Sensoren und Geräten im Internet der Dinge (IoT) weiter wachsen. Traditionell gab es immer ein Missverhältnis zwischen der Speicherkapazität (TB der Speicherdaten) und der Memory-Größe (GB des DRAM), die die CPU zur Datenanalyse verwendete. Diese Diskrepanz erfordert, dass alle gespeicherten Daten von einem größeren Produkt wie SSDs an einen kleineren Ort im Speicher oder DRAM phasenweise verschoben werden. Aufgrund dieses phasenweisen Ansatzes war die für die vollständige Analyse der Daten benötigte Zeit nicht mehr in Echtzeit. Durch die Bereitstellung von Computational Storage kann die Analyse der Rohdaten abgeschlossen werden, und die Menge der in den Speicher verschobenen Daten wird in eine überschaubare und leicht zu verarbeitende Teilmenge der Daten reduziert.
Die Möglichkeit, den Speicher zu skalieren, ohne sich Gedanken über die Latenz machen zu müssen, ist ein wichtiger Aspekt für Hyperscale-Rechenzentren, Social Media-Rechenzentren sowie für Data Center, die Streaming-Dienste anbieten.
Weitere Anwendungsfälle für Computational Storage sind Edge Computing oder Industrial IoT-Umgebungen, in denen zu viel Latenz buchstäblich zu einem Unfall führen kann, und bei denen die Notwendigkeit, Platz und Energie zu sparen, noch wichtiger ist.