monsitj - stock.adobe.com

Object Storage: Vorteile und Unterschiede zu File und Block

Neben File und Block Storage hat mit Object Storage eine dritte Technologie an Boden gewonnen. Doch was sind die genauen Unterschiede und wofür lässt es sich einsetzen?

Die Anwendungsfälle für File und Block Storage sind genau festgelegt und schon seit Jahrzehnten vorhanden. Object Storage präsentiert eine dritte Option für Data Storage. Übliche Fragen rund um Object Storage sind zum Beispiel: „Was ist anders bei Object Store? Wann sollte ich es einsetzen? Welche Anwendungsfälle lohnen sich? Wie sollte ich bei der Einführung in meine spezifische IT-Infrastruktur vorgehen?“ Obwohl schon sehr viel zu diesen Themen geschrieben worden ist, sind diese Fragen noch immer auf dem Tisch. Was sind also die wirklichen Vorteile von Object Storage?

Object Storage verarbeitet Daten in der Form von separaten Einheiten oder Objekten. Diese Objekte werden in einem Behälter (Repository) aufbewahrt, und nicht verschachtelt als Dateien in verschiedenen Verzeichnissen (Folder) oder separaten Blöcken von Daten, um dann wieder zusammengesetzt zu werden. Indem allen Dateien Metadaten hinzugefügt werden, eliminiert Object Storage die hierarchische Struktur eines Dateisystems und verleiht so jeder Datei einen einzigartigen Identifikator (Identifier). Das macht es relativ einfach, die einzelnen Dateien oder Objekte innerhalb großer Datenmengen zu lokalisieren.

Sich noch einmal File und Block Storage klarzumachen, kann dabei helfen, Object Storage zu präzisieren. Die drei Systeme miteinander zu vergleichen, wird den IT-Abteilungen helfen, die noch unentschlossen und nicht in der Lage sind zu entscheiden, welches das richtige für ihr Rechenzentrum ist. Während die Vorteile auf der Hand liegen, können die konkreten Leistungen von Object Storage vielleicht doch nicht jene der Alternativen übertrumpfen. Aber zuallererst ist es wichtig, die Feinheiten von Object Storage zu verstehen.

Die Besonderheiten von Object Storage

Ein Objekt ist definiert als Daten (in der Regel eine Datei) mit all ihren Metadaten, alles zusammengepackt an einer Stelle. Dieses Objekt erhält eine ID, die in der Regel aus dem Inhalt des Objekts selbst (Datei und Metadaten) errechnet wird. Ein Objekt wird immer von einer Anwendung abgerufen, indem die Objekt-ID dem Object Storage präsentiert wird. Ein Objekt ist nicht begrenzt auf jede Art oder Menge von Metadaten.

Im Fall einer Auswahl von Metadaten gibt es verschiedene Möglichkeiten:

  • man kann sie nach Art der Anwendung zuweisen, mit der das Objekt verbunden ist
  • je nach Wichtigkeit einer Anwendung
  • je nach dem Niveau von Datenschutz, das man dem Objekt verleihen will
  • falls das Objekt zu einer oder mehreren anderen Sites repliziert werden soll
  • falls das Objekt zu einem verschiedenen Storage Tier oder zu einem anderen Ort verschoben werden soll
  • und falls das Objekt gelöscht werden soll

Diese Art von Metadaten geht über die Access Control Lists hinaus, die in File-Systemen benutzt werden, und stellt einen der größten Vorteile von Object Storage dar. Die Freizügigkeit für Anwender, Metadaten nach ihren Wünschen zu definieren, ist einzigartig bei Object Storage. Dies eröffnet riesige Möglichkeiten für Analytics, die man sich bis jetzt nicht vorstellen konnte. Angesichts der oben beschriebenen Natur von Objekten gehört Performance nicht unbedingt zu den besonderen Eigenschaften von Object Storage. Aber wenn man ein einfaches Storage-Management und einen Service wünscht, der geographische Grenzen überbrückt und reichhaltige (vom Anwender frei definierbare) Metadaten liefert, dann führt kein Weg an Object Storage vorbei.

Die wichtigsten Fakten zu Object Storage
Abbildung 1: Die wichtigsten Fakten zu Object Storage

Weil viele Object-Storage-Konzepte in Web-2.0-Unternehmen entwickelt wurden, die unbegrenzt große Speicherinfrastrukturen zu sehr niedrigen Kosten bauen wollten, basieren die meisten Object-Storage-Systeme auf Clustern von Commodity-Servern mit internem Direct-Attached Storage. Es gibt aber auch Ausnahmen zu diesem Ansatz, die wohl bekannteste kommt von DataDirect Networks (DDN), und man kann sicher teure RAID Arrays für Object Store nutzen, aber die Faustregel besteht im Einsatz von Commodity Hardware. Skalierung wird in diesem Fall zu einer einfachen Sache, indem man zusätzliche Nodes hinzufügt. Die Datensicherung erfolgt im Allgemeinen durch Replizierung von Objekten zu einem oder mehreren Nodes im Cluster, aber es gibt sicher auch Ausnahmen davon (zum Beispiel Cleversafe und EMC Atmos, die beide Erasure Coding für Datensicherung verwenden).

Object versus File

Wie schon File Storage so ist auch Object Storage für unstrukturierte Daten konzipiert, während Block Storage in der Regel für strukturierte Daten gebraucht wird wie zum Beispiel Informationen in einer Datenbank. Aber während sich File und Object Storage beide um den gleichen Datentyp kümmern, tun sie dies in unterschiedlicher Weise.

Ein File Storage System ist hierarchisch aufgebaut, so dass ein einzelnes File über den Pfad zu ihm beschrieben werden kann. Wir wissen, dass bestimmte Eigenschaften - Informationen, die eventuell eine Datei und ihre Inhalte wie zum Beispiel ihre Besitzer oder Autoren, die Zugang zu der Datei haben, und ihre Größe beschreiben - bequem als Metadaten in einem File System gespeichert werden können. Wir wissen auch, dass Network-Attached Storage (NAS) die beste Art und Weise ist, um Files sicher zwischen den Benutzern eines Netzwerks zu teilen. Es funktioniert sehr gut lokal in einem LAN, aber nicht so gut, wenn die User über ein WAN verteilt sind. Ein einzelnes oder nur ein paar NAS-Systeme zu verwalten ist trivial, aber das Management von Hunderten von ihnen ist ein Albtraum.

Das File System ist für die Platzierung der Daten auf dem NAS-System verantwortlich sowie für die Implementierung von File Sharing durch das Verschließen und Öffnen der Files je nach Anforderung. Und letztlich arbeiten File Systeme gut mit Hunderttausenden und vielleicht Millionen von Files, sie sind aber nicht für den Umgang mit Milliarden von Files geeignet. Diese Begrenzungen sind nicht gut verstanden worden, weil viele IT-Abteilungen diese großen Mengen erst gar nicht getestet hatten - zumindest bis vor kurzem. Zusammengefasst lässt sich sagen, dass File Storage hervorragend für lokales File Sharing geeignet ist - solange die Anzahl der Files und der mit ihnen verbundenen Metadaten begrenzt ist. Aber unter den richtigen Umständen liefert NAS eine exzellente Performance für das Teilen von Files.

Object Storage ist dadurch gekennzeichnet, dass es bei unstrukturierten Daten nicht auf die gleichen Beschränkungen stößt. Anders als Dateien und Dateisysteme werden Objekte in einer flachen Struktur gespeichert. Man hat einen Pool von Objekten, und man sucht nach einem bestimmten Objekt einfach dadurch, dass man seine Objekt-ID präsentiert. Objekte können lokal oder geographisch verstreut sein, aber weil sie sich in einem flachen Adressraum befinden, werden sie alle genau auf die gleiche Weise gefunden.

Object Storage im direkten Vergleich zu File und Block Storage
Object Storage im direkten Vergleich zu File und Block Storage

Object versus Block

Bei Block Storage besteht ein Block aus einem Segment (Chunk) von Daten, und die Segmente können miteinander verbunden werden, um eine Datei zu bilden. Ein Block besitzt eine Adresse, und die Anwendung ruft einen Block ab, indem ein SCSI-Aufruf an diese Adresse passiert. Es ist eine sehr mikroskopische Art und Weise der Kontrolle von Storage. Anders als in dem Fall von NAS entscheidet die Anwendung, wo die Daten zu platzieren sind und wie der Speicher organisiert wird. Kombination und Zugang der Blöcke ist der Applikation überlassen.

Es gibt keine speicherbezogenen Metadaten, die mit dem Block verbunden sind, außer für die Adresse, und selbst das sind wohl keine Metadaten zu dem Block. Mit anderen Worten, der Block ist einfach eine Datenmenge ohne Beschreibung, ohne Verbindung und ohne Eigentümer. Er gewinnt nur dann eine Bedeutung, wenn die Kontrolle durch die Anwendung ihn mit anderen Blöcken verbindet.

Unter den richtigen Umständen, wenn der Anwendung dieses Niveau an granularer Kontrolle gewährt wird, kann das jedoch zu der besten Performance eines bestimmten Storage Arrays führen. Das ist der Grund, warum Block Storage die Spitzenposition für Performance-hungrige Anwendungen – meistens transaktional und Datenbank-orientiert – eingenommen hat. Kommt Distanz zwischen der Anwendung und Storage hinzu, eliminiert das wegen der Latenzen den Performance-Vorteil, so dass Block Storage meistens nur lokal zum Einsatz kommt. Zusammengefasst heißt das, die entscheidenden Begriffe, die mit Block Storage assoziiert werden, sind Detailgenauigkeit, starke Performance, wenige oder keine Metadaten und lokaler Einsatz.

Block Storage sowie File und Object Storage werden von den meisten Software-definierten Speicherarchitekturen unterstützt, obwohl einige Produkte eventuell individuelle Schnittstellen bevorzugen.

Wenn man Object, File und Block Storage miteinander vergleicht, gibt es verschiedene Methoden, die drei zu betrachten. Einer der Hauptvorteile von Object Storage gegenüber den beiden anderen ist sein Interface. Anders als bei File oder Block erhält man Zugang zu einem Object, indem man ein HTTP-basiertes REST Application Programming Interface (REST API) nutzt. Dabei gibt es einfache Aufrufe (Calls) wie zum Beispiel Get, Put, Delete und ein paar andere.

Ihre Einfachheit ist ein Vorteil, aber sie erfordern unbedingt Änderungen an der Applikation, die wahrscheinlich für die Nutzung von SCSI-, CIFS- oder NFS-Calls geschrieben wurde. Darin liegt das Problem. Es gibt verschiedene Arten und Weisen, das zu lösen, aber der sauberste Ansatz besteht in der Änderung des Anwendungs-Codes, um direkte REST-basierte Calls machen zu können. Kurz gesagt ist ein Object Store leicht zu managen, kann fast unbegrenzt skalieren, geographische Grenzen mit einem Single Namespace überwinden und Tonnen von Metadaten mit sich tragen, aber er verfügt im Allgemeinen nur über geringe Performance und erfordert womöglich Änderungen am Code der Applikationen.

Erfahren Sie mehr über Object Storage