archy13 - stock.adobe.com
Mit Computational Storage drei IT-Kernprobleme lösen
Computational Storage ist eine relativ neue Weiterentwicklung der Storage-Technologie, die aber viele bislang kritische Themen positiv beeinflussen könnte.
Computational Storage ist eine Weiterentwicklung der Storage-Technologie mit potentiell weitreichenden Auswirkungen. Das Grundkonzept besteht darin, die Datenverarbeitung näher zu den zu verarbeitenden Daten zu bringen und dabei drei Kernprobleme von Storage anzugehen.
Ein Vorteil dieser neuen Technologie ist ihre Fähigkeit, Latenzen in diversen Storage-Szenarien zu verringern. Sie kann auch helfen, Leistungsprobleme zu beheben, die durch CPU-intensive Prozesse ausgelöst werden, und die Applikationsleistung verbessern.
So arbeitet Computational Storage
Computational Storage sieht meist aus wie jede andere SSD. Allerdings kann die NAND-Flash-Kapazität für die Datenspeicherung größer als bei normalen SSDs sein. Weiter verwenden entsprechende Geräte meist Mehrkernprozessoren. Derartige Prozessoren werden unter anderem für die Indexierung von Daten bei der Übergabe an das Storage-System genutzt, bei der Suche nach spezifischen Daten und als Unterstützung für ausgefeilte KI-Programme.
Mit einer Storage-Architektur, die auch Rechenleistung umfasst, werden die Daten auf der Ebene des Storage-Systems verarbeitet. Das verringert die Datenmenge, die zwischen der Storage- und der Compute-Ebene bewegt werden müssen. So wird die Analyse von Echtzeitdaten effektiver und Flaschenhälse im I/O-Bereich verschwinden, was jeweils zu Leistungssteigerungen beiträgt.
Computational Storage schafft Abhilfe
Diese drei Schlüsselprobleme kann Computational Storage lösen:
1. Lichtgeschwindigkeit als Grund für Latenzen. Die Lichtgeschwindigkeit bildet nicht nur eine beliebige Grenze, die man überwinden könnte, sie ist ein Naturgesetz. Die Verzögerung steigt auch bei optischem Datentransport in direktem Verhältnis zur Entfernung. Diese Verzögerung ergibt sich unabhängig von der Bandbreite, sie kumuliert und hat einen überproportionalen Einfluss auf die Antwortzeit.
Der einzige Weg, die durch die auf 300.000 km/s begrenzte Lichtgeschwindigkeit hervorgerufene Verzögerung zu verringern ist – zumindest bis wir irgendwann Technologien rund um physikalische Konzepte wie Wurmlöcher zur Anwendungsreife gebracht haben –, die physische Distanz zwischen rechnenden und speichernden Einheiten zu verkürzen. Beim heutigen Cloud Computing ist das ein wichtiges Problem, da Daten und die Anwendung, die sie verarbeiten soll, unter Umständen weit voneinander entfernt liegen.
Bei IoT-Anwendungen ist das besonders problematisch, weil die IoT-Endgeräte in der Regel breit in der Fläche verteilt sind. Andere Beispiele bilden die Fernüberwachung im Gesundheitswesen und die Fernadministration von Geräten, Verkehrskameras in Smart Cities, Fotoradar-Kameras und Straßensensoren oder die Film- und Fernsehbranche, wo Petabytes von Daten vor Ort gespeichert und dann an einen anderen Ort zur Verarbeitung gebracht werden.
Dieses Problem kann Computational Storage potentiell lösen. Sie ermöglicht es, die rechen-, speicher- und datenintensiven Prozesse näher zu den gespeicherten Daten zu verlegen. Manchmal werden diese Prozesse auf x86- oder ARM-Prozessoren durchgeführt, die sich in Kolokation mit NVMe-SSD Drives befinden oder mit ihnen verbunden sind. In anderen Fällen finden sie auf einem eingebetteten ARM-Prozessor auf einem NVMe-SSD-Controller statt. Die Anwendung oder Teilapplikation kann dann die Daten ganz oder teilweise direkt auf dem Storage verarbeiten. Die Ergebnisse werden in die zentrale Cloud oder den Kernbereich der Lösung zur weiteren Verarbeitung geschickt. Die Menge der verarbeiteten Daten, die letztlich verschickt werden müssen, ist, verglichen mit der Originaldatenmenge marginal.
2. CPU-Leistungsengpässe. Das zweite Problem, das Computational Storage potentiell lösen kann, hängt vor allem mit den Eigenschaften des Storage zusammen. Flash, NVMe und SSDs mit Storage Class Memory sind weit verbreitet. Die I/O-Performance, der Durchsatz und die Kapazität, kombiniert mit rasant fallenden Preisen, sind wirklich bemerkenswert.
Allerdings hat sich die Gesamtleistung von Storage-Systemen um Größenordnungen langsamer weiterentwickelt, als die Zahl der verbauten Laufwerke nahelegen würde. Das liegt am CPU-Leistungsengpass, der wiederum auf die zunehmende Entschleunigung von Moore's Law in Bezug auf die CPUs und die schnelle Durchdringung mit CPU-intensiven Storage-Prozessen zurückzuführen ist.
Laut Moore's Law verdoppelt sich die Prozessorleistung im Schnitt rund alle zweieinhalb Jahre. Dieser Abstand verlängert sich nun. Zu den CPU-intensiven Storage-Prozessen gehören beispielsweise Erasure Coding, Deduplizierung, Kompression, das Erstellen von Snapshots und Ver-/Entschlüsselung. Diese Prozesse verbrauchen enorme Mengen von CPU- und Memory-Ressourcen.
Computational Storage ermöglicht, dass die CPU-intensiven Prozesse vom primären Storage-Server oder Controller auf Computational Storage verlagert werden, Das macht die primäre CPU frei, die nun mehr I/O- und Durchsatzleistung erbringt.
3. Leistungsprobleme bei Anwendungen. So wie Storage-Prozesse können auch einige Applikationsprozesse die Leistung der CPU-Ressourcen aufzehren. Das gilt besonders für viele Datenbankprozesse, KI und (tiefes) maschinelles Lernen (Deep/Machine Learning). Einige dieser Prozesse auf Computational Storage zu verlegen, kann einen großen und sofort positiven Einfluss auf die Anwendungsleistung haben.
Bei Datenbankverarbeitung werden die CPU des Datenbankservers und der Memory-Speicher entlastet und können so mehr Transaktionen und Analysen sowie mehr Durchsatz in weniger Zeit bewältigen. Bei KI-Anwendungen verkleinert sich die riesige Menge der Daten, die analysiert werden muss. In beiden Fällen stehen brauchbare Informationen schneller zur Verfügung.
Welche Firmen offerieren Computational Storage?
Diese Potentiale werden von großen Herstellern, Startups und Standardisierungsgremien aufgegriffen. Einige entwickeln Computational Storage Devices oder entsprechende Systeme. Andere gehen Entwicklungspartnerschaften ein oder streben danach, solche Geräte oder Systeme in ihre Produkte zu integrieren. Zu den Herstellern, die Computational Storage nutzen oder entwickeln, gehören Alibaba, AT&T, ARM, AWS, Azure, Dell, Facebook, Google, Hewlett Packard Enterprise, Intel, Lenovo, Micron Technology, Microsoft, NetApp, Oracle, Quanta, Samsung, SK Hynix, Super Micro, Western Digital und Xilinx. Viele dieser Unternehmen sehen in Computational Storage das ideale Edge-Device beim Fog, Core oder Cloud Computing.
Auch einige Startups widmen sich dem Thema. Dazu gehören Burlywood, Eideticom, NGD Dystems, Syriad, ScaleFlux und andere, die aktuell noch abseits der Öffentlichkeit entwickeln. Das Standardisierungsgremium Storage Networking Industry Association (SNIA) hat eine Arbeitsgruppe gegründet, die Interoperabilitätsstandards zwischen Computational Storage Devices entwickeln soll. Dasa OpenFog-Konsortium entwickelt ebenfalls Standards für Computational Storage.
Doch wo sind die Beweise für die Fähigkeiten der Technologie? Es gibt einige. NGD behauptet, mit zwei nicht benannten bekannten Serverherstellern zusammenzuarbeiten, mit drei Herstellern von OEM-Produkten und einer Reihe von Hyperscalern. ScaleFlux hat seine Leistungen bei der Verarbeitung diverser Datenbanken signifikant verbessert, beispielsweise Aerospike, Apache HBase, Hadoop und MySQL. Das Unternehmen hat auch die geringere CPU-Nutzung demonstriert und die Kompressionsleistung mit OpenZFS Gzip gesteigert. Eideticom hat eine Hochleistungs-SSD mit Computational Storage zusammen mit IBM und Rackspace vorgeführt. Und Pliops erhöht die Leistung bei der Verarbeitung von MySQL, Percona, MariaDB, RocksDB, InnoDB und anderen erheblich.
Nun zu den großen Herstellern und Anbietern von Cloud Services. Oracle verwendet Computational Storage schon viele Jahre lang für sein Datenbanksystem, Oracle Exadata Database Machine. Oracle lädt SQL, JSON, XML, Ver- und Entschlüsselung, die Backup-Filterung seines Recovery-Managers und die schnelle Erstellung von Datenfiles von seinen Datenbankservern automatisch auf die Storage Server herunter. Dadurch hat Exadata die beste IOPS-Leistung und den höchsten analytischen Durchsatz aller vergleichbaren Datenbanken. Dieselbe Leistung steht hinter Oracles Datenbankservice aus der Cloud.
Der Kostenfaktor
Wie bei den meisten vielversprechenden Technologien gibt es auch einen nachteiligen Aspekt, in diesem Fall die Kosten. Wie viel mehr Computational Storage kostet, variiert. Es wird bestimmt durch die verwendete CPU, den dynamischen RAM (DRAM) und NAND, mehr ist es aber auf jeden Fall. Allerdings werden diese Kosten sehr wahrscheinlich durch Leistungszuwächse und die übrigen angesprochenen Vorteile von Computational Storage kompensiert.
Eine Schlussbemerkung: Computational Storage Devices sind nicht die einzige mögliche Lösung für die oben erwähnten Probleme. So haben einige Hersteller, etwa StorOne, Storage-Software geschrieben, die um Größenordnungen effizienter ist und dadurch weniger CPU- und Memory-Ressourcen verbraucht. Andere wie Excelero haben intelligente Scale-Out-Technologien entwickelt, die dieselben Vorteile wie Computational Storage bieten. Doch das näher zu erklären, würde den Rahmen dieses Artikels sprengen.