8 Kommen wir gleich zur Sache – meine einfache Definition von softwaredefiniertem Speicher (Software-Defined Storage, SDS) lautet: Eine hardwareunabhängige Anwendung, die auf einem standardmäßigen (weitgehend unveränderten) Betriebssystem installiert ist, als Speichersystem fungiert und über einen Funktionsumfang verfügt, der ausreicht, um heutige Anwendungen und Dienste im großen Maßstab zu betreiben. Alle paar Jahre taucht in der Datenspeicherbranche ein neues Schlagwort auf. Das ist unser Stichwort, um über die genaue Definition zu streiten, dabei hoffentlich interessante Diskussionen anzustoßen, den Begriff zu etablieren und die beteiligten Anbieter zu klareren Roadmaps zu bewegen. Vor zehn Jahren lautete das Wort der Stunde „Virtualisierung“. Vor fünf Jahren war es „Cloud“. Heute ist es meiner Meinung nach „softwaredefiniert“. Schauen wir uns nun die wichtigsten Punkte der Definition von softwaredefiniertem Speicher an. Hardwareunabhängig Dieser Punkt ist entscheidend, um zu bestimmen, was SDS ist und was nicht, und alle anderen definierenden Merkmale beruhen im Grunde auf diesem einen zentralen Wert. Die Software sollte auf jedem modernen x86-Server eines Hardwareherstellers Ihrer Wahl laufen. Software, die nur auf bestimmter Hardware ausgeliefert wird und es dem Endnutzer nicht erlaubt, sie auf Hardware seiner Wahl zu installieren, ist kein softwaredefinierter Speicher. Das ist eine Speicher-Appliance. Eines möchte ich klarstellen: SDS ist nicht automatisch gleichbedeutend mit „Whitebox“-Servern. Es gibt eine Handvoll Kunden weltweit, die ihre Lösungen immer selbst bauen werden, von der Hardware bis zur Software. Denken Sie an Amazon und Google. Der Rest der Welt sucht jedoch eine zuverlässige Plattform, die einfach zu verwalten ist und ohne großen bürokratischen Aufwand durch den Einkauf kommt. Diese Kunden sehen in der „Hardwareunabhängigkeit“ die Möglichkeit, den kommerziellen Server ihrer Wahl einzusetzen – in Umgebungen mit gemischten Hardwaregenerationen und gemischten Konfigurationen, etwa wenn die Festplattenkapazitäten mit der Zeit steigen. Wesentlicher geschäftlicher Nutzen: Geringere Anschaffungskosten durch Standardserver und die Freiheit, Kaufentscheidungen bei jedem Upgrade je nach Geschäftsanforderungen und Produktverfügbarkeit neu zu treffen. Höhere geschäftliche Agilität und kürzere Time-to-Market durch die Bereitstellung neuer Anwendungen auf einer bekannten Plattform. Standardmäßiges (weitgehend unverändertes) Betriebssystem Punkt zwei ermöglicht erst Punkt eins. Erinnern Sie sich, wie wir vor zehn Jahren anfingen, über Hypervisoren als „Abstraktionsschicht“ zwischen Hardware und Software zu sprechen? Genau darum geht es hier. SDS sollte ein Standardbetriebssystem nutzen (Linux ist hier die naheliegende Wahl), um Hardware und Software logisch voneinander zu trennen. Der Betriebssystemkernel übernimmt Aufgaben wie die Adressierung von Blockgeräten, und die SDS-Schicht nutzt einfach die Speicher-, Rechen- und Netzwerkressourcen, die im User Space bereitgestellt werden. Die Begriffe „standardmäßig“ und „weitgehend unverändert“ verwende ich hier bewusst. Je mehr am Betriebssystem herumgeschraubt wird, desto näher kommen wir an herkömmlichen Speicher und das Konzept von Firmware auf proprietären Controllern heran. Der Wert von SDS liegt in der Software, und diese Software muss zwischen Hardwareplattformen portierbar sein, die stark angepasste Betriebssysteme unterstützen können oder auch nicht. Wesentlicher geschäftlicher Nutzen: Geringere OpEx-Kosten und weniger Komplexität, weil ein vertrautes Betriebssystem als Basis für viele Dienste im Unternehmen dient, möglicherweise auch für Server, Speicher und Netzwerk. Fungiert als Speichersystem und verfügt über einen Funktionsumfang, der ausreicht, um heutige Anwendungen und Dienste im großen Maßstab zu betreiben. Der erste Teil dieses Satzes sollte ziemlich selbsterklärend sein. Der nächste ist etwas unklarer. Server stellen Clients schon seit geraumer Zeit Speicherdienste bereit. Ein kurzes Beispiel ist eine NFS-Freigabe (Network File System) auf einem Linux-Server oder auch der neuere Windows Storage Server von Microsoft. Ist das SDS? Ich würde sagen: nein. Diese Lösungen sind weiterhin auf darunterliegende Speichergeräte angewiesen, die Daten im großen Maßstab schützen und verwalten können. Auch hier komme ich auf Punkt eins zurück: Hardwareunabhängigkeit. Um diesen zentralen Wert zu erfüllen, muss SDS die Verantwortung für den Schutz aller von ihm verwalteten Speicherressourcen übernehmen. Moderne Systeme, insbesondere Scale-out-Systeme, nutzen dafür meist Replikation und Erasure Coding. Ich bin jedoch der Meinung, dass sich jedes System, das Verfügbarkeit und Dauerhaftigkeit auf oder über dem heutigen Niveau (fünf Neunen und mehr) garantieren kann, zu Recht SDS nennen darf. Es gibt noch viele, viele weitere Funktionen, die je nach den Zielen des Endnutzers „nice to have“ sind. Darüber können wir in einem anderen Beitrag diskutieren. Wesentlicher geschäftlicher Nutzen: Höhere Zuverlässigkeit, weil der Datenschutz über herkömmliche physische Grenzen hinweg verteilt wird. Je nach Funktionsumfang höhere Agilität, weil Unternehmen neue Anwendungen ohne individuelle Programmierung auf einem gemeinsamen Datenpool bereitstellen können. Fazit Kurz gesagt: Eine moderne Plattform für softwaredefinierten Speicher sollte dem Endnutzer die Freiheit geben, eigene Entscheidungen zu treffen, und ihn dennoch ruhig schlafen lassen. Was meinen Sie? Fehlen mir wichtige Punkte, oder liegt etwas von dem, was ich sage, völlig daneben im Vergleich zu dem, was Sie heute im Markt sehen? Foto von Vitaly Taranov (auf Englisch) auf Unsplash (auf Englisch)