Object Storage: Speicher für Cloud und hybride Umgebungen
Object Storage ist flexibel und wird vor allem in Cloud-Umgebungen und hybriden Netzwerken eingesetzt, insbesondere für unstrukturierte Daten. Wir geben einen Überblick.
Object Storage gehört sicherlich zu den Speicherlösungen, die in den letzten Jahren im professionellen Umfeld am meisten Verbreitung gefunden haben. Durch die immer stärker wachsenden Datenmengen, vor allem an unstrukturierten Daten, müssen Speichersysteme diese Informationen schnell in großer Menge ablegen können und auf Anforderung auch wieder finden. Auch die Hochverfügbarkeit spielt in diesem Zusammenhang eine wichtige Rolle.
Object Storage unterscheidet sich von Block Storage und File Storage in erster Linie darin, dass die Daten nicht nur als Datei an irgendeiner Stelle im Dateisystem abgelegt werden, sondern auch Metadaten berücksichtigt werden. Bei File Storage werden die Daten auf Basis von Dateien gespeichert. Block Storage nutzt wiederum die Aufteilung der Daten in Blöcke. Object Storage definiert die zu speichernden Daten als ein Objekt.
Zusammen mit den Metadaten und den eigentlichen Daten, die im Object Storage gespeichert werden, lassen sich Daten optimal strukturieren.
Bei Metadaten handelt es sich um Eigenschaften von Daten, zum Beispiel dem Erstellungsdatum einer Datei, oder dem Aufnahmeort eines Fotos. Im Gegensatz zur herkömmlichen Datenspeicherung im File Storage oder Block Storage, kann im Object Storage nahezu beliebig mit Metadaten umgegangen werden.
Entwickler können für ihre Anwendungen eigene Metadaten definieren, die im Objektspeicher zusammen mit den eigentlichen Daten gesichert werden.
Object Storage wird vor allem dann eingesetzt, wenn viele Daten gespeichert werden müssen. Leider ist die Speichertechnik nicht so leistungsstark beim Ändern von Daten, wie es zum Beispiel Block Storage ist. Daher wird Object Storage vor allem zur Datensicherung (Backup), Archivierung und Speicherung von Daten eingesetzt, die nicht häufig geändert werden müssen. Daten lassen sich durch ihre ID schnell finden.
Die Änderung der Daten dauert allerdings länger als in anderen Systemen. Einfach ausgedrückt: Je statischer Daten sind und je mehr Daten gespeichert werden sollen, desto besser ist Object Storage geeignet. Das gilt gerade für unstrukturierte Daten, die in jedem möglichen Format erstellt werden und normalerweise schwierig zu verwalten sind. Beispielsweise Medieninhalte, Videos, Audiodateien oder Bilder sind eher statisch, da sie nach ihrer Erstellung und Ablage kaum oder gar nicht verändert werden. Dies sind zudem Inhalte, die in Cloud-Umgebungen oft genutzt und geteilt werden, wofür sich Objektspeicher sehr gut eignet.
Object Store speichert Daten als Paket mit Metadaten
Die Metadaten und die Daten des entsprechenden Objektes, das gespeichert werden sollen, bilden beim Einsatz von Object Store das eigentliche Objekt, und sie werden gemeinsam gespeichert. Es handelt sich dabei also um ein Paket, das die unterschiedlichen Subdaten zusammenfasst. Die zu speichernde Datenmenge ist also etwas größer als bei anderen Speichermethoden, da die Metadaten berücksichtigt werden.
Zusätzlich erhalten die Objekte eine ID, über die sie im System identifiziert werden. Der Vorteil bei der Verwendung von Object Storage besteht in dieser Hinsicht auch darin, dass keine Ordnerstruktur notwendig ist, sondern die Daten nebeneiner gespeichert werden können. Auch die Hinterlegung des eigentlichen Speicherortes spielt keine Rolle. Für Object Storage ist es nicht von Belang, ob eine Datei auf Server 1 oder 2 gespeichert ist, oder im Rechenzentrum 1 oder 2. Wichtig ist für den Speicher nur, dass die Daten mit Metadaten und einer ID im System vorhanden sind.
File Storage benötigt als Zwischenschicht ein Dateisystem. Das ist beim Einsatz von Object Storage nicht notwendig.
Object Storage ist oft dann sinnvoll, wenn Daten strukturiert abgelegt werden müssen. Spielen also Daten eine Rolle, die durch eine Anwendung gespeichert werden sollen, ist es wichtig zu wissen, wie die Daten strukturiert und auch indexiert werden, damit sie im System wiedergefunden werden. Oft werden hier Datenbanken genutzt. Allerdings sind Datenbanken nicht unbedingt dafür geeignet Objekte wie Bilder oder größere Dokumente zu speichern.
In einem solchen Szenario werden die Dateien dann in einem Dateisystem abgelegt, und die dazugehörigen Metadaten in einer eigenen Datenbank. Das mach die Datenspeicherung wiederum komplexer. Objektspeicher ist für die Daten optimiert und kann die gespeicherten Daten nach der Integration in sein System optimal ablegen und auf Anforderung auch replizieren.
Object Storage beim Backup nutzen
Ein bekanntes Protokoll für die Speicherung von Objekt-Daten ist sicherlich S3 von Amazon, das mittlerweile auch von vielen anderen Speicheranbietern genutzt wird. Dieses Protokoll basiert auf HTTP(s) und wird vor allem zur Speicherung von großen Datenmengen, wie bei der Datensicherung genutzt.
Die meisten Programmiersprachen verfügen mittlerweile über ein SDK, mit dem Object Storage direkt angesprochen werden kann. Durch die Verwendung von HTTP lassen sich Daten aus dem Object Storage durch Clients sehr einfach auslesen. Das ermöglicht auch das Verwenden von Kommandos wie PUT (Objekte erstellen), GET (Objekte auslesen), DELETE (Objekte löschen) und LIST (Objekte auflisten).
Über die letzten Jahre hinweg hat sich S3 als De-facto-Standard durchsetzen können. Der Gegenentwurf der SNIA, das Cloud Data Management Interface (CDMI) konnte bislang nicht die gleiche Bedeutung und Marktdurchdringung gewinnen.
Generell lassen sich RESTful APIs für die Integration nutzen. Auch S3 ist eine solche Schnittstelle, ebenso wie Swift, ein Protokoll, das unter OpenStack konzipiert wurde. Zudem lässt sich auch SOAP über HTTP(S) für Objektspeicherimplementierungen verwenden.
In einem Szenario mit den Befehlen GET und PUT wird das Backup durch die entsprechende Anwendung im Object Storage-System abgelegt. Das System selbst optimiert im Hintergrund die Speicherung und kann Aktionen wie das redundante Speichern oder Replikationen starten. Unterstützt eine Sicherungssoftware oder eine andere Anwendung kein Object Storage, können Schnittstellen die Kommunikation übernehmen.
Im Backup-Bereich und hyperkonvergenten Umgebungen wird häufig auf Object Store gesetzt, da der Datenspeicher sehr kostengünstig skaliert werden kann. Durch das schnelle Lesen von Daten ist die Wiederherstellung von Daten schnell durchgeführt. Durch die Speicherung direkt auf Festplatten lassen sich Daten schneller einlesen, als mit Bandlaufwerken. Durch die Möglichkeit von Object Storage, die Daten zu replizieren, auch zwischen Rechenzentren, wird darüber hinaus eine optimale Hochverfügbarkeit erreicht.
Vorteile von Object Storage im Vergleich zu File Storage und Block Storage
Einer der wichtigsten Vorteile von Object Storage besteht darin, dass der Datenspeicher extrem schnell auch große Datenmengen speichern und lesen kann. Das Speichersystem organisiert seine Daten selbst. Die Anwendungen müssen keine Verzeichnisse oder Dateinamen festlegen und verwalten. Die Daten werden dem System übergeben, danach kümmert sich das Object Storage um alles weitere.
Ein weiterer Vorteil von Object Storage besteht darin, dass der Speicher skalierbar ist schnell erweitert werden kann. Es reicht aus dem System weitere Knoten hinzuzufügen. Diese werden sofort eingebunden und stehen zur Speicherung zur Verfügung.
Object Storage ist auch sehr flexibel. Durch die Möglichkeit, eigene Metadaten zu definieren, kann jeder Entwickler steuern, welche Daten zusammen mit den eigentlichen Daten des Objektes gespeichert werden sollen, damit die Daten optimal strukturiert aufbewahrt werden.
Im Vergleich zu File Storage ist Object Storage sehr viel flexibler und deutlich besser skalierbar. Aber auch Block Storage ist optimal skalierbar.
Der Nachteil von Block Storage gegenüber Object Storage ist meistens der Preis. Speichersysteme, die auf Block Storage setzen, sind in den meisten Fällen wesentlich teurer als Object Storage.
Object Storage ist stark darin, Metadaten zu speichern. Das geht eingeschränkt auch für File Storage, hier aber nur für ausgewählte Metadaten. In Block-Storage-Systeme lassen sich nahezu keine Metadaten speichern.
Der größte Nachteil von Objektspeicher ist die Performance, die sich nicht so einfach an wachsende Anforderungen anpassen lässt. Hier suchen Hersteller nach Optimierungsoptionen wie beispielsweise eine Kombination mit Flash-Speicher.