spainter_vfx - stock.adobe.com

Das sollten Sie über Computational Storage wissen

Computational und Edge Storage verändert die Art der Datenverwaltung am Netzwerkrand. Die Terminologie zu dieser Technologie zu kennen, hilft, die Funktionsweise zu verstehen.

Da immer mehr Anwendungen riesige Datenmengen erzeugen, beispielsweise durch IoT, KI und Analytik, wird die Zeit, die für die Übertragung, Analyse und Verarbeitung dieser Daten benötigt wird, zu einem bedeutenden Faktor, der Speichernetzwerke und -systeme verlangsamt. Computational Storage ist eine Möglichkeit, Speicherarchitekturen zu aktualisieren und Latenzzeiten zu verringern, wodurch die Speicherberechnungsprozesse effizienter werden.

Diese aufstrebende Technologie bietet eine neue Generation von Geräten, die SSDs mit Rechenfähigkeiten (Compute) kombinieren und diesen Compute näher an die Quelle der zahlreichen Daten bringen. Viele dieser Daten sind für das Funktionieren des Unternehmens nicht lebenswichtig oder werden nicht dringend benötigt. Da die Rechenfunktionen näher an den Quellen dieser Daten liegen, können sie vorverarbeitet und sortiert werden, so dass nur die wertvollen Daten zur weiteren Analyse oder Verarbeitung über das Netzwerk gesendet werden.

Wie Salil Raje, Executive Vice President und General Manager der Xilinx Data Center Group, in einer Präsentation auf dem Flash Memory Summit 2019 sagte, „arbeitet man an den Daten in der inneren Schleife des SSD, wodurch die Latenz und die Leistung für alle nicht so wichtigen Funktionen verbessert wird, so dass die wirklich kritischen Funktionen in den CPUs ausgeführt werden können“. Die CPUs werden für die Verarbeitung der wichtigsten Daten freigegeben.

Das Endergebnis: Diese Speichertechnologie erleichtert das parallele Rechnen, reduziert den Netzwerkverkehr und mildert andere Einschränkungen beim Computing, den I/Os, dem Storage und dem Memory. Und sie wird bald auch für Enterprise-Speichersysteme verfügbar sein.

Der Unterschied zwischen den Architekturen von traditionellem und Computational Storage.
Abbildung 1: Der Unterschied zwischen den Architekturen von traditionellem und Computational Storage.

Im Folgenden finden Sie die Terminologie zu Computational Storage, die Sie kennen müssen, um die selbige und ihre Funktionsweise zu verstehen, bevor sie Teil Ihres Arbeitslebens wird.

Computational Storage Array

Die Storage Networking Industry Association (SNIA) definiert ein Computational Storage Array (CSA) als ein Gerät, das Computerspeichergeräte wie zum Beispiel CSDs (Computational Storage Drives) und CSPs (Computational Storage Processors) mit anderen optionalen Speichergeräten und Steuersoftware kombiniert.

In diesen Arrays fungiert das Field Programmable Gate Array (FPGA) als Beschleuniger (Accelerator), der zwischen der CPU und den SSD-Arrays sitzt. Diese Arrays können SSDs beliebiger Hersteller verwenden, und die Beschleuniger und SSDs können unabhängig voneinander skalieren. Die Bandbreite kann zwischen dem Beschleuniger und den SSDs optimiert werden.

Computational-Storage-Laufwerk

Ein CSD (Computational Storage Drive) ist ein Baustein mit einem FPGA oder einem Application-Specific Integrated Cicruit (ASIC), der in ein SSD eingebettet ist und als Beschleuniger fungiert. CSDs bieten Rechendienste und dauerhafte Datenspeicherung, wie zum Beispiel NAND-Flash.

Die Anzahl der FPGAs oder ASICs in einem CSD kann mit der Anzahl der SSDs skalieren, mit zunehmender Kapazität kommen auch zusätzliche Beschleuniger hinzu. Es gibt eine dedizierte Verbindung zwischen der SSD und dem Beschleuniger, die eine Optimierung der Bandbreite zwischen dem Beschleuniger und dem Flash-Speicher ermöglicht. Dieser Ansatz bietet eine viel höhere Bandbreite als die traditionell für SSDs verfügbare. CSDs können für spezifische Arbeitslasten angepasst werden.

Ein Computational Storage Drive von NGD Systems: Newport U.2.
Abbildung 2: Ein Computational Storage Drive von NGD Systems: Newport U.2.

Computaional-Storage-Prozessor

Ein Computational-Storage-Prozessor (CSP) stellt einem Speichersystem Rechendienste (Compute Services) zur Verfügung, bietet aber keinen persistenten Datenspeicher an. Bei einem CSP befinden sich der Beschleuniger und das Storage auf demselben PCIe-Subsystem.

Das als Beschleuniger verwendete Laufwerk wird in den Standard-SSD-Steckplatz eingesteckt und kommuniziert mit den SSDs über das PCIe-Subsystem mittels PCIe-Peer-to-Peer-Transfers. Dieser Aufbau bietet auch eine hohe Bandbreite. CSPs verwenden herstellerunabhängige SSDs.

Computational Storage Service

Ein Computational Storage Service (CSS) bezieht sich auf eine Rechenaufgabe (Compute Task) oder einen Dienst, den ein CSD, CSP oder CSA anbietet. Laut SNIA kann ein CSS ein fester Speicherdienst sein, der eine bestimmte Funktion, wie Komprimierung, RAID, Erasure Coding oder Verschlüsselung, bereitstellt. Ein CSS kann auch so programmiert werden, dass es mehrere Dienste bereitstellt, zum Beispiel ein Betriebssystem-Image, einen Container, einen Berkeley-Paketfilter oder einen FPGA-Bitstrom.

Edge Computing

Beim Edge Computing handelt es sich um eine verteilte Technologie, die es ermöglicht, Daten in der Nähe ihres Entstehungsortes zu verarbeiten und an der Netzwerkperipherie zu sammeln. Mobile Geräte waren der ursprüngliche Antrieb für die Entwicklung des Edge Computing. Die Verbreitung von IoT-Sensoren und -Geräten hat es zu einem noch kritischeren Element der IT-Infrastruktur gemacht.

Das Edge Computing hat eine Vielzahl von Architekturen. Zeitkritische Daten am Edge können mit einem intelligenten Gerät dort verarbeitet werden, wo die Daten entstehen. Oder die Daten können zur Erstverarbeitung an einen nahe gelegenen Server gesendet werden.

Bei den riesigen Datenmengen, die von IoT-Geräten erzeugt werden, ist es sinnvoll, Edge Computing und Computational Storage für die Erstverarbeitung am Rand (Edge) einzusetzen und nur die wertvollsten Daten an das zentrale Rechenzentrum zu senden. Dieser Ansatz schont die Netzwerkressourcen und reduziert die Antwortzeiten.

Edge-Gerät

Ein Edge-Gerät (Edge Device) ist jedes Stück Hardware, das den Datenfluss an der Netzwerkperipherie oder an dem Punkt, an dem zwei Netzwerke aufeinander treffen, steuert. Diese Geräte dienen in der Regel als Netzwerkein- und -ausgangspunkte und bieten Funktionen wie Übertragung, Routing, Verarbeitung, Überwachung, Filterung und Speicherung. Beispiele für Edge-Geräte sind Edge-Router, Routing-Switches, Firewalls sowie IoT-Sensoren, -Aktor (Actuators) und -Gateways.

Edge Storage

Bei Speicher am Netzwerkrand handelt es sich um Geräte wie CSDs, die zur Erfassung und Speicherung von Daten am Netzwerkrand und in der Nähe der Ursprungsquelle verwendet werden. Frühe Beispiele für dieses Edge Storage waren Speichergeräte in externen Büros und DAS für Laptops, die vor Ort eingesetzt wurden. Die Automatisierung von Backups war das Hauptanliegen der frühen Edge-Speicheradministratoren.

Heute dreht sich beim Edge-Speicher alles darum, was mit all den von IoT-Geräten kommenden Daten zu tun ist, wie man mit der begrenzten Konnektivität zu einigen IoT-Geräten umgeht und wo die zu archivierenden Rohdaten abgelegt werden sollen. Da die von IoT-Geräten und anderen Anwendungen generierte Datenmenge explodiert, verwenden Unternehmen Methoden und Tools des Computational Storage, um Daten nahe an ihrem Ursprungsort zu sortieren und sie dorthin zu senden, wo sie für die Verarbeitung oder Speicherung im nächsten Schritt am sinnvollsten sind.

Hyperscale Computing

Hyperscale Computing ist ein Ansatz, der in Rechenzentren verwendet wird, die große Datenmengen verarbeiten und einen wechselnden Bedarf an IT-Ressourcen haben. Eine verteilte, flexible Infrastruktur wird verwendet, um schnell auf einen Anstieg der Nachfrage nach Rechenressourcen zu reagieren, ohne dass zusätzliche Latenzzeiten entstehen oder zusätzliche Platz- und Leistungsressourcen benötigt werden.

Hyperscale Computing und Computational Storage sind miteinander verbunden, da Ersteres die Fähigkeit erfordert, den Speicher unabhängig von der Compute-Ressource zu skalieren. Diese Unabhängigkeit von Speicher und Compute bietet die Flexibilität, die Hyperscale-Rechenzentren benötigen, um schnell auf sich ändernde Anforderungen an die Datenspeicherung zu reagieren.

Multicore-Prozessoren

Computerspeichergeräte verwenden den einzigartigen Ansatz der Verwendung von Mehrkernprozessoren (Multicore-Prozessoren), die Daten beim Eintritt in ein Speichergerät indizieren können. Multicore-Prozessoren können nach bestimmten Einträgen suchen, ein Ansatz, der bei der KI und anderen fortgeschrittenen Anwendungen hilfreich sein kann.

Diese Speichertechnologie erleichtert das parallele Rechnen, reduziert den Netzwerkverkehr und mildert andere Einschränkungen beim Computing, den I/Os, dem Storage und dem Memory.

Datenanalyse in Echtzeit

Da am Netzwerkrand mehr Daten von IoT-Sensoren und -Geräten gesammelt werden, ist die Schnittstelle zwischen dem Speicher-Controller und dem Speicherbus zu einem Engpassfaktor geworden. Computational Storage löst dieses Problem mit Rechenfunktionen, die direkt auf dem Speichergerät platziert sind. So können Daten in Echtzeit dort verarbeitet oder analysiert werden, wo sie sich befinden, und nur eine Teilmenge wird zum Host verschoben.

SNIA Computational Storage Technical Working Group

Die SNIA hat im November 2018 die Technische Arbeitsgruppe für Computational Storage (Computational Storage Technical Working Group) gegründet, um den Einsatz dieser neuen Technologie in Anwendungsumgebungen zu erleichtern.

Die Arbeitsgruppe wurde beauftragt, Standards zu schaffen, um die Interoperabilität dieser neuen Geräte zu ermöglichen, und Schnittstellenstandards und -protokolle für den Einsatz, die Bereitstellung, das Management und die Sicherheit des Systems zu definieren. Im Dezember 2019 veröffentlichte die Gruppe einen Entwurf ihrer Computational-Storage-Architektur und ihres Programmiermodells zur öffentlichen Stellungnahme. Die SNIA hat auch eine Computational Storage Special Interest Group, die die Arbeit der technischen Arbeitsgruppe hervorhebt.

Nächste Schritte

Das Wichtigste zu Computational Storage

So lässt sich Computational Storage einsetzen

So nützlich kann Computational Storage sein

Erfahren Sie mehr über Storage Performance