macrovector - Fotolia

Für diese Einsatzgebiete eignet sich Computational Storage

Das Internet of Things und Scale-Out-Serverarchitektur sind mögliche wichtige Einsatzgebiete für Computational Storage, aber diese Anwendungen befinden sich noch in der Entwicklung

Die Prämisse, die Computational Storage zugrunde liegt, ist, dass es zu viel Zeit und Mühe und zu viele Ressourcen benötigt, um Daten von dort, wo sie gespeichert sind, dahin zu verschieben, wo sie verarbeitet werden. Insbesondere die Zeitverzögerung trägt zur Latenzzeit bei - dem Feind der Reaktionszeit. Die Annäherung der Verarbeitung an die Daten erhöht die Effizienz, verkürzt die Reaktionszeit und reduziert die Latenzzeiten.

Theoretisch sollten Computational Storage für IoT und andere Anwendungen die Verarbeitung beschleunigen, aber Theorie und Realität stehen oft im Widerspruch. Es kommt darauf an, welche Anwendungsfälle von Computational Storage sinnvoll sind. Erzeugt dieser Speicher zusätzliche Kosten, und kann ein Leistungsgewinn diese Kosten rechtfertigen? Diese Fragen müssen beantwortet werden, wenn der Computational Storage wirklich zu einem Standardprodukt wird.

Es kommt natürlich auch die Frage auf, ob dieses Speicherkonzept nicht schon einmal unter einem anderen Namen ausprobiert wurde? Das bringt uns zum Storage Offload. Warum ist dieser Ansatz fehlgeschlagen?

Die Storage-Offload-Saga

Storage Offload versuchte, die begrenzte Rechenleistung der CPUs zu adressieren. Es wurde angenommen, dass das Offload einiger der Probleme bei der Speicherverarbeitung die CPU entlasten würde. Allerdings verdoppelte die CPU-Hersteller die Transistoren alle 18 bis 24 Monate und erhöhten so die Rechenleistung exponentiell, also wer brauchte Storage Offload?

Shared Storage entlastete auch einen Großteil der CPU-intensiven Speicherverarbeitung von Servern. Die CPUs, die auf Speichermedien platziert werden konnten, waren entweder unterversorgt oder zu teuer. Und ASICs waren zu teuer und brauchten zu lange, um auf den Markt zu kommen. Betriebssysteme waren zu groß, umständlich und ineffizient, um mit der verfügbaren Offload-Verarbeitungsleistung zu arbeiten, oder zu proprietär. Und die Speichermedien waren in erster Linie Festplatten, und die direkte Verarbeitung auf einer Festplatte hat inhärente Probleme, die sie schwierig machen.

Unnötig zu erwähnen, dass Storage Offload nicht wirklich erfolgreich wurde.

Was ist heute anders?

Moore's Law stößt an seine Grenzen, und die CPUs verdoppeln die Transistorzahl nicht alle 18 bis 24 Monate. Eigenständige Shared-Speicher-Arrays sind nicht mehr die einzige Option zur Speicherverteilung. Software-Defined Storage (SDS) hat den serverseitigen Speicher für die gemeinsame Nutzung sowohl in Scale-Up- als auch in Scale-Out-Konfigurationen verfügbar gemacht.

Es gibt kleine, preiswerte CPUs mit viel Leistung. Die meisten sind ARM-Prozessoren, aber auch preiswerte, leistungsstarke, FPGAs werden eingesetzt. Die Medien sind im Allgemeinen in schnelle und nichtflüchtigen Speicher übergegangen -- NVMe-Laufwerke, SATA-Flash-SSDs und Storage Class Memory -- anstatt rotierender Speichermedien. Und schließlich haben Linux und Container die Ausführung von Anwendungen in ARM-Prozessoren oder FPGAs akzeptabel effizient gemacht.

Das bringt uns zurück zu den Anwendungsfällen. Wo ist es sinnvoll, Computational Storage einzusetzen? Der größte Anwendungsfall ist Computational Storage für IoT. Diese Geräte verbreiten sich mit beeindruckender Geschwindigkeit. Laut Statistik wird es bis 2025 mehr als 75,44 Milliarden geben. Die meisten sind relativ klein und generieren laufend Daten. Für die traditionelle Von-Neuman-Computerarchitektur gibt es nicht viel Platz. Und doch müssen die meisten dieser Geräte Daten in Echtzeit erfassen, speichern und analysieren.

Computational Storage für IoT

Nehmen wir das Beispiel des autonomen Fahrzeugs. Es muss bestimmen, ob der sensorische Input, den es empfängt, eine Reflektion, ein Schatten oder ein Mensch ist, und zwar in Mikrosekunden. Das ist möglicherweise ein guter Anwendungsfall für Computerspeicher.

Ein weiteres Beispiel ist die Notwendigkeit der Öl- und Gasindustrie, die Vibrationen von Bohrern im Feld zu analysieren. Dies in Echtzeit zu tun, kann Feldlecks, Schäden und andere unerwartete Probleme verhindern.

Es gibt auch CCTV-Kameras, die immer kleiner werden und mit wenig Platz für Client-Server-Architekturen mehr leisten. Die Kameraauflösung wird immer besser, was zu noch mehr Daten führt. Das Verschieben dieser Daten an einen zentralen Ort, an dem sie analysiert werden können, erfordert Zeit. Die Echtzeitverarbeitung in der Kamera ist heute ein Muss, insbesondere für Anwendungen wie Gesichtserkennung, Kennzeichenlesen und Schmuggel oder Identifikation von Sprengstoffen. Informationen, die Reaktionen auslösen, sind zeitkritisch und können nicht darauf warten, dass die Daten verschoben werden. Die Analyse von Daten im Feld erfordert Verarbeitung und Speicherung, so dass Computational Storage ideal geeignet ist.

Theoretisch sollten Computational Storage für IoT und andere Anwendungen die Verarbeitung beschleunigen, aber Theorie und Realität stehen oft im Widerspruch. Es kommt darauf an, welche Anwendungsfälle von Computational Storage sinnvoll sind.

Dies sind nur einige der Anwendungen, bei denen Computational Storage für das IoT sinnvoll ist. Es gibt noch viele andere. Im Allgemeinen, wenn es sich um ein IoT-Gerät handelt, ist Computational Storage wahrscheinlich eine Möglichkeit.

Scale-Out-Serverarchitekturen

Ein weiterer Anwendungsfall für Computational Storage kommt aus dem Server und der Speicherarchitektur selbst. Wie bereits erwähnt, hat sich das Moore'sche Gesetz verlangsamt. Das ist einer der Gründe, warum CPUs seit mehr als einem Jahrzehnt nicht mehr schneller werden und mehr Kerne hinzufügen. In der Folge haben sich Scale-Out-Serverarchitekturen stark entwickelt. Scale-Out ist der Kern einer hyperkonvergenten Infrastruktur. Aber was wäre, wenn Scale-Out innerhalb des Servers umgesetzt würde? Mit anderen Worten, was wäre, wenn wir eine interne Scale-Out-Serverarchitektur hätten?

Bei diesem Ansatz werden die wichtigsten CPU-Kerne für die Anwendungsverarbeitung und die Computational Storage-Kerne für CPU-intensive Speicher-Workloads wie Snapshots, Replikation, Deduplizierung, Kompression,Verschlüsselung, Entschlüsselung, Virenscanning, Metadatensuche und sogar Inhaltssuche verwendet. Der Server würde zu einem Inside-Scale-Out-Cluster werden. Es gibt noch keine Server mit dieser Architektur. Es ist eine von vielen Möglichkeiten, die Computational Storage ermöglichen könnte.

Ein Wort der Vorsicht: Die Welt des Computational Storage ist neu; mehrere Anbieter produzieren bereits Produkte, darunter Burlywood, Eideticom, NGD Systems, Nyriad, Samsung und ScaleFlux. Aber es gibt keinen Standard für Computational Storage. SNIA und das OpenFog-Konsortium haben Arbeitsgruppen eingerichtet, um einen Computational Storage Standard zu erstellen, aber bis man sich auf einen entschieden hat, gilt es die Angebote mit Vorsicht zu genießen.

Es gibt noch andere Probleme, auf die man achten sollte. Computational Storage-Systeme werden mehr kosten als Standard-Speichergeräte. Und ein Durchbruch in der CPU-Verarbeitung könnte dazu führen, dass Computational Storage aus den Augen verloren wird. Es ist schon einmal passiert; es kann wieder passieren.

Es gibt ein enormes Potenzial im Bereich Computational Storage für IoT und andere Anwendungsfälle. Aber, wie bei allen neuen Technologien, gehen Sie mit Vorsicht vor.

Nächste Schritte

Wie Computational Storage drei Hauptprobleme der IT lösen könnte

Storage Class Memory kann hohe Kapazitäten und Leistung zugleich bieten

Wo sich Storage-Class-Memory-Systeme einsetzen lassen

Erfahren Sie mehr über Storage-Hardware

ComputerWeekly.de
Close