Der Unterschied zwischen Object- und Datei- sowie Block-Storage
Datei- und Block-Storage bieten in der Regel höhere Leistung. Die Vorteile von Object Storage liegen in den Metadaten und der hohen Skalierbarkeit.
Die Anwendungsfälle für Datei- oder Block-Storage sind klar definiert und finden seit langem Einsatz. Relativ neu ist dagegen Object Storage. Viele Anwender fragen sich aber: Was ist bei Object Storage anders? Wann sollte ich diesen Storage einsetzen? Welche Anwendungsfälle bieten sich? Wie nutze ich ihn in meiner IT-Infrastruktur? Über die Fragen wurde bereits viel geschrieben, sie tauchen aber immer wieder auf.
Datei- und Block-Storage definiert
Bevor wir Object Storage definieren, werfen wir einen Blick auf Datei- und Block-Storage. Wir wissen, dass eine Datei normalerweise in ein Dateisystem eingegliedert ist. Das ist nichts anderes als eine hierarchische Organisation von Dateien, damit man individuelle Dateien über einen definierten Pfad findet. Weiterhin beinhaltet das Dateisystem nützliche Metadaten für diese Dateien, wie zum Beispiel Beschreibung, Besitzer, Zugriffsrechte und Größe. Wir wissen auch, dass sich mit NAS-Systemen (Network-attached Storage) Dateien in einem Netzwerk gemeinsam nutzen lassen. Das funktioniert in einem LAN hervorragend, bei einem WAN wird es schon schwieriger. Die Verwaltung eines einzelnen oder weniger Rechner ist einfach. Sollte die Anzahl aber höher sein, wird es ein Alptraum. Das Dateisystem ist für die Platzierung der Daten auf dem NAS verantwortlich. Für die Verwaltung, also das Sperren oder Freigeben der Dateien, trifft das ebenfalls zu. Dateisysteme funktionieren gut mit Hunderttausenden oder gar Millionen Dateien. Sie sind aber nicht so gestaltet, dass Sie mit Milliarden Dateien umgehen können. Bisher wusste man nicht viel über die Grenze, da viele IT-Abteilungen nicht in diese Sphären vorgedrungen sind. Einfach gesagt, funktioniert Datei-Storage gut für das Teilen von Dateien im LAN - wenn die Anzahl der Dateien und Metadaten übersichtlich bleibt. Unter den richtigen Umständen bietet ein NAS die beste Performance für das gemeinsame Bearbeiten von Dateien.
Block-Storage funktioniert ähnlich. Wir wissen, dass ein Block ein Datenbereich ist. Kombiniert man entsprechende Blöcke, bilden sie eine Datei. Ein Block besitzt eine Adresse und eine Anwendung erhält einen Block, indem sie einen SCSI-Aufruf an diese Adresse macht. Das ist ein kleinteiliges Verfahren, um Storage zu kontrollieren. Anders als bei einem NAS entscheidet die Anwendung, wohin die Daten gelegt werden und wie die Organisation abläuft. Wie die Blocks kombiniert werden und wie darauf zugegriffen wird, organisiert die Software.
Es gibt keine Storage-seitigen Metadaten, die diesem Block zugeordnet sind. Eine Ausnahmen ist die Adresse, wobei diese nicht zu den Metadaten eines Blocks gehört. Einfach ausgedrückt: Ein Block ist ein Datensegment ohne Beschreibung, ohne Assoziation und ohne Besitzer. Dieser hat nur dann eine Bedeutung, wenn ihn die kontrollierende Software mit anderen Blöcken kombiniert. Durch diese genaue Kontrolle lässt sich die beste Performance aus dem Storage herausholen. Das ist der Grund, warum Block-Storage bei leistungsintensiven Anwendungen bevorzugt wird. Dazu gehören in erster Linie Transaktionen und Datenbanken. Je weiter Anwendung und Storage voneinander entfernt sind, desto mehr schrumpft dieser Vorteil. Aus diesem Grund setzt man Block-Storage häufig nur lokal ein. Block-Storage zeichnet sich schließlich durch Granularität, hohe Performance, wenig Metadaten und lokale Einsatzgebiete aus.
Charakteristika von Object Storage
Nachdem wir uns Datei- und Block-Storage ins Gedächtnis gerufen haben, sehen wir uns Object Storage an. Zunächst sind Objekte gebündelte Daten (eine Datei) mit zugehörigen Metadaten. Diesem Objekt wird eine ID zugewiesen, die man normalerweise aus den Inhalten (sowohl Datei als auch Metadaten) berechnet. Anwendungen identifizieren das Objekt mit der ID. Anders als bei Dateien und Dateisystemen werden Objekte in einer flachen Struktur gespeichert. Sie haben einen Pool an Objekten und fragen anhand der Objekt-ID nach einem bestimmten. Es macht nichts, ob sich ein Objekt am gleichen oder einem anderen Ort befindet. Sie erhalten es immer auf dem gleichen Weg. Die Metadaten-Typen oder -Menge sind nicht begrenzt. Metadaten lassen sich auf diese Weise hinterlegen:
- Assoziierte Anwendungen;
- Die Wichtigkeit einer Applikation;
- Grad des Datenschutzes;
- ob eine Replikation in ein anderes Data Center nötig ist;
- ob das Objekt in ein anderes Tier migrieren soll (lokal oder getrennt);
- ob das Objekt gelöscht werden soll.
Diese Flexibilität bei den Metadaten ist den ACLs (Access Control Lists) von Dateisystem überlegen. Anwender können sogar eigene Metadaten-Typen definieren, was erhebliche Möglichkeiten für Analysen eröffnet. Object Storage ist allerdings nicht so leistungsfähig. Suchen Sie nach einer Option, um Storage standortunabhängig zu verwalten und möchten zugleich die Vorteil der Metadaten genießen, führt an Object Storage kein Weg vorbei.
Viele Object-Storage-Konzepte wurden von Cloud- und Internetfirmen entwickelt. Sie haben versucht, unendliche groß Storage-Infrastrukturen zu günstigen Preisen zu erhalten. Die meisten Object-Storage-Systeme basieren somit auf handelsüblichen Servern, die mit Direct-attached Storage (DAS) ausgestattet sind. Natürlich gibt es Ausnahmen, wie zum Beispiel DataDirect Networks. Sie können ein Object Storage auch aus teuren RAID-Arrays erstellen. In der Regel kommt aber normale Hardware zum Einsatz. Mit weiteren Nodes lässt sich Object Storage sehr hoch skalieren. Den Schutz der Daten gewährleistet man in der Regel durch die Replikation von Objekten auf einen oder mehrere Servern. Auch hier gibt es Ausnahmen: Cleversafe und EMC Atmos verwenden Erasure Coding, um die Daten entsprechend zu schützen.
Es gibt noch weitere Merkmale von Object Storage, die wichtig für das Verständnis der Technologie ist. Anders als bei einer Datei oder einem Block, können Sie auf Objekte mit einer HTTP-basierten REST-API zugreifen. Allerdings müssen Sie die verwendeten Anwendungen umschreiben. Sie wurden möglicherweise so programmiert, dass Sie mit SCSI-, CIFS- oder NFS-Aufrufen arbeiten, was ein Problem ist. Es gibt aber Lösungen dafür. Am saubersten ist es, den Code so zu ändern, dass dieser direkte REST-basierte Aufrufe verwendet. Letztlich ist Object Storage einfach zu verwalten, lässt sich fast unendlich skalieren, ist nicht lokal begrenzt und kann sehr viele Metadaten beinhalten. Allerdings ist die Leistung geringer und Sie müssen den Softwarecode ändern.