In der Echtzeit-Datenverarbeitung stoßen herkömmliche Storage-Architekturen zunehmend an ihre Grenzen. Das Verschieben von Daten zwischen Speicher und Rechner wird zum Flaschenhals. Computational-Storage bringt Prozessoren in den Speicher und gilt als Zukunft in diesem Bereich.
Antwort Doc Storage:
Speichersysteme für Echtzeit-Datenverarbeitung werden in den meisten Fällen als Computational-Storage bezeichnet. Solche Systeme bringen Prozessoren in den Speicher und steigern damit die Gesamtleistung durch die Bewältigung eigentlicher Verarbeitungsaufgaben. Sie sind damit eine Antwort auf die Tatsache, dass die Entwicklung »herkömmlicher« Speichersysteme nicht mit den immer höher werdenden Anforderungen an deren Leistung Schritt halten konnten. Das Verschieben von Daten zwischen Speichern und Rechnern ist grundsätzlich ineffizient, so »breit« und damit schnell deren Kopplung auch sein mag. Mit zunehmendem Datenvolumen entstehen hier immer schmalere Flaschenhälse.
Die SNIA hat bereits vor längerem festgestellt, Speicherarchitekturen seien größtenteils unverändert geblieben und gehen auf die Zeiten noch vor dem Band und die Floppy zurück. Das mag zwar etwas übertrieben sein, aber im Prinzip bleibt die Verarbeitung der Daten in den meisten Unternehmen immer noch von deren Speicherung getrennt. Allerdings stellt dies bei Big-Data, maschinellem Lernen, Advanced-Analytics, künstlicher Intelligenz und Streaming ein Problem dar. Zum Glück sind immer mehr Lösungen in diesem Bereich verfügbar. Beispielsweise reduzieren In-Memory-Datenbanken die Notwendigkeit, Daten zwischen Speicher und Rechner zu verschieben. Zusätzlich können Flash- und NVMe-Medien die herkömmlichen SAS-, SATA-, SCSI- oder Fibre-Schnittstellen zwischen Laufwerk und CPU umgehen, indem Controller und Speicher direkt mit einem internen Bus des Rechners verbunden werden.
Computational-Storage verarbeitet im Speichermedium
Computational-Storage geht noch einen Schritt weiter. Mit dieser Technologie wird die Verarbeitung auf die Seite der Speichermedien verlagert. Da SSD-Speicher ausreichend schnell sind, bringt die Verlagerung der Verarbeitung näher an den Speicher einen großen Leistungssprung mit sich. Viele heute bereits verfügbare Anwendungen haben sich durch verteilte Verarbeitung bereits in diese Richtung bewegt. Durch die Entlastung der Server-Prozessoren und die Abschaffung der bekannten Engpässe wird eine deutliche Leistungssteigerung erreicht. Untersuchungen in der Industrie weisen bis zu zehnfache Verbesserungen der Verarbeitungs- und Antwortzeiten und in der Folge auch extreme Energieeinsparungen nach, der Durchschnitt liegt bei einer 3-5fachen Reduzierung dieser Zeiten.
In Computational Storage werden Speicher, Controller und Prozessoren in einer Einheit zusammengefasst. Die Idee dahinter ist wie schon beschrieben, Verarbeitung zu den Daten zu verlagern und nicht umgekehrt wie in all den Jahrzehnten vorher. Man nimmt den Server-Prozessoren einige der Arbeitslasten ab, so dass weit weniger Daten überhaupt den Weg vom Speicher in den Rechner antreten müssen. So kann in einem mit künstlicher Intelligenz ausgestattetes Überwachungssystem beispielsweise grundsätzliche Aufgaben wie die Analyse aufgenommener Bilder übernehmen. Somit würden nur noch relevante Bilder bzw. Sequenzen überhaupt an einen zentralen Rechner weitergeleitet. Diese könnten dann beispielsweise an eine Gesichtserkennung übergeben werden.
Da in herkömmlichen Systemen für Berechnungen an einem Datensatz die entsprechenden Daten aus einem Speicher in den Hauptspeicher gelesen und dann verarbeitet werden müssen, und die schiere Menge der Daten die Größe des Hauptspeichers bei weitem übersteigt, müssen die Daten in Blöcken gelesen werden. Dies verlangsamt Analysen und macht eine Verarbeitung in Echtzeit für die meisten Operationen unmöglich. Durch eine Verlagerung der Verarbeitungsfunktionen in die Speicherschicht wird dieses Problem beseitigt.
FCSS und PCSS
Computational-Storage basiert normalerweise auf eingebetteten Prozessoren, die sich aus der Sicht der Verarbeitung vor dem Speicher-Controller befinden und in den meisten Fällen mit NVMe-Medien arbeitet. Manche Systeme verwenden jedoch integrierte Rechenmodule und einen Controller. Das Rechenspeichersystem kann je nach beabsichtigter Anwendung auch ASICs oder FPGA-Beschleuniger enthalten. Die SNIA unterteilt aktuelle Computational-Storage-Systeme in zwei große Kategorien – Fixed Computational Storage Services (FCSS) und Programmable Computational Storage Services (PCSS).
FCSS sind für eine bestimmte rechenintensive Aufgabe wie Komprimierung oder Verschlüsselung optimiert. PCSS kann beispielsweise ein General-Purpose-Betriebssystem ausführen, typischerweise Linux, manchmal aber auch proprietäre Codes. Natürlich, wie immer, haben beide Typen ihre Vor- und Nachteile. FCSS bietet typischerweise ein besseres Kosten-Nutzen-Verhältnis bieten, wogegen PCSS wesentlich flexibler ist. Die Architektur bestimmt auch, ob Treiber oder Anwendungsprogrammierschnittstellen (APIs) benötigt werden, oder ob eine Anwendung direkt auf dem System ausführbar ist. Im Ende kann ein solches System nur spezialisierte Moduln, oder eben eine Mischung aus solchen und herkömmlichem Speicher verwenden. Momentan tendieren die meisten Hersteller zu einer Mischung beider Optionen.
Computational-Storage: Schnelle Entwicklung erwartet
Als erste Anwendungen für Computational Storage wurden solche herangezogen, in denen schon ein einzelner Prozessor zur Beseitigung von Flaschenhälsen beitragen kann, also Datenkomprimierung, Verschlüsselung und das Management von RAID-Systemen. Die Technologie entwickelt sich jedoch rapide weiter und schafft eine immer breitere Palette an Anwendungsfällen. Die deutlichsten Leistungssteigerungen werden durch Verbesserungen der Software und der APIs erzielt, welche verteilte Arbeitslasten über eine Reihe von Speichern ermöglichen. Analysten sagen dem Computational-Storage ein schnelles Wachstum voraus.
In den kommenden zwei Jahren werden sich diese Systeme über die Hälfte der Unternehmen ausbreiten, und dies obwohl diese Technologie noch im Entstehen begriffen ist, hat sie das Potenzial, erheblich zu wachsen. Gartner prognostiziert, dass sich in den kommenden zwei Jahren mehr als die Hälfte der von Unternehmen generierten Daten außerhalb des Rechenzentrums, also meistens in Cloud-Umgebungen befinden werden. Und dort müssen sie immer schneller auch verarbeitet werden, ohne sie langwierig zurück ins Rechenzentrum transportieren zu müssen. Darüber hinaus ist das Streaming von Daten ist eine weitere sich immer weiter etablierende Anwendung für Computational-Storage.
Leistungssteigerung bei datenintensiven Anwendungen
Zusammenfassend lässt sich feststellen, dass der Hauptvorteil von Computational-Storage die allgemeine Leistungssteigerung ist. Eher datenintensive Anwendungen profitieren mehr als rechenintensive von der Beseitigung des Speicher-zu-Prozessor-Nadelöhrs. Für verteilte Verarbeitung geeignete Anwendungen schneiden ebenfalls besser ab, genau wie auf eine kurze Antwortzeiten angewiesene. Wie bereits angeführt, lassen sich durch richtig platzierte Systeme auch erhebliche Mengen Energie einsparen.
Als Nachteile werden heute (noch) die zunehmende Komplexität der Architekturen, die Notwendigkeit von APIs und die Notwendigkeit eines genauen Zusammenspiels zwischen Rechen- und Speicherdiensten gesehen. Hinzu kommen zusätzliche Kosten durch das Hinzufügen von Prozessoren in Speichergeräten oder Speichercontrollern. Computational-Storage ist bei allen Vorteilen eben auch kein Heilmittel für sämtliche Leistungsprobleme.
So bietet Computational-Storage in einer einzigen Instanz eben nur sehr begrenzte Leistungsvorteile. Für den Betrieb auf mehreren Knoten ausgelegte Anwendungen, werden die beste Leistung erzielen. Einige Analysten rechnen damit, dass Computational-Storage in den kommenden Jahren so alltäglich wie Server und Speichersysteme werden wird. Hierzu wird auch ein gewisser Zwang führen, da die durch immer schneller wachsende Datenmengen die Leistungsvorteile so gut wie aufgezehrt haben, die durch die Umstellung auf Flash erzielt wurden.
Gruß
Doc Storage
Weiterführende Links
- Doc Storage: Was ist Computational-Storage?
- Doc Storage: Echtzeit-Datenverarbeitung: Wenn es mal schneller gehen soll
- Doc Storage: Datensicherheit: Schutz von Endgeräten
- Doc Storage: Datensicherheit durch Data-Loss-Prevention
- Doc Storage: Datensicherheit durch Datenverschlüsselung
- Doc Storage: Datensicherheit durch Zugriffskontrolle