Objektspeicher (auch bekannt als objektbasierter Speicher oder Objektmassenspeicher) ist eine Speicherarchitektur, die Daten als Objekte verwaltet, im Gegensatz zu anderen Architekturen wie Dateisystemen, die Daten als Dateihierarchie oder Blockspeicher, die Daten als Datenblöcke in Sektoren und Spuren verwalten. Typischerweise enthält jedes Objekt selbst die Nutzdaten, eine variable Menge an Metadaten, und einen global eindeutigen Identifikator. Objektspeicher können auf vielen Ebenen umgesetzt werden: einschließlich der Geräteebene (Objektspeichergerät), der Systemebene oder der Schnittstellenebene. In jedem Fall versucht Objektspeicher Fähigkeiten bereitzustellen, die von anderen Speicherarchitekturen nicht berücksichtigt werden, wie von Anwendungen direkt programmierbare Schnittstellen, ein Namensraum der mehrere Instanzen physischer Geräte überspannen kann und Datenverwaltungsfunktionen wie Datenreplikation und -verteilung mit Unterteilung auf Objektebene.

Objektspeichersysteme ermöglichen die Aufbewahrung riesiger Mengen unstrukturierter Daten. So werden Objektspeicher beispielsweise für die Speicherung von Fotos bei Facebook, Liedern bei Spotify oder Dateien bei Online-Kollaborationsdiensten wie Dropbox verwendet.

Geschichte Anfänge 1995 führten Forschungsarbeiten von Garth Gibson zu erstmals das Konzept der Trennung weniger gebräuchlicher Operationen, wie Namensraummanipulationen von häufigeren Operationen, wie Lese- und Schreibzugriffen ein. Dies sollte sowohl Leistung als auch Skalierbarkeit verbessern. Im selben Jahr wurde das belgische Unternehmen FilePool gegründet, um die Grundlage für Archivierungsfunktionen zu schaffen. Objektspeicher wurden 1996 in Gibsons Labor an der Carnegie Mellon University als Forschungsprojekt vorgeschlagen. Ein weiteres Schlüsselkonzept war die Abstrahierung der Schreib- und Lesevorgänge von Daten in flexiblere Datencontainer (Objekte). Die feinkörnige Zugriffskontrolle durch die Objektspeicherarchitektur wurde von einem Mitglied des NASD-Teams, Howard Gobioff, beschrieben, der später zu den Erfindern des gehörte. Zu den weiteren verwandten Arbeiten gehört das Coda-Dateisystem-Projekt an der Carnegie-Mellon-Universität, das 1987 begann und aus dem das Lustre-Dateisystem hervorging. Ein weiteres Projekt war das -Projekt an der UC Berkeley, das 1999 begann, und das an der University of Tennessee in Knoxville, das 1998 begann. 1999 gründete Gibson Panasas, um die von der NASD-Gruppe entwickelten Konzepte zu vermarkten.

Entwicklung Seagate Technology spielte eine zentrale Rolle bei der Entwicklung von Objektspeichern. Laut der Storage Networking Industry Association SNIA, “entstand Objektspeicher in den späten 1990er Jahren: Seagate-Spezifikationen aus dem Jahr 1999 stellten einige der ersten Befehle vor und zeigten, wie das Betriebssystem effektiv von der Nutzung des Speichers ferngehalten werden kann.”Object Storage: What, How and Why?, NSF (Networking Storage Forum), SNIA (Storage Networking Industry Association), Live Webcast 19. Februar 2020

Eine vorläufige Version des vom 25. Oktober 1999 wurde von Seagate unter der Leitung von Dave Anderson eingereicht und war das Ergebnis der Arbeit des mit Beiträgen der Carnegie-Mellon-Universität, Seagate, IBM, Quantum und StorageTek. Diese Abhandlung wurde dem INCITS T-10 (Internationalen Komitee für Informationstechnikstandards) mit dem Ziel vorgeschlagen, einen Ausschuss zu bilden und eine Spezifikation auf der Grundlage des SCSI-Schnittstellenprotokolls zu entwickeln. Darin wurden Objekte als abstrahierte Daten mit eindeutigen Bezeichnern und Metadaten definiert, und es wurde dargelegt, wie Objekte mit Dateisystemen zusammenhängen, zusammen mit vielen anderen innovativen Konzepten. Anderson stellte viele dieser Ideen auf der SNIA-Konferenz im Oktober 1999 vor. Die Präsentation enthüllte eine Vereinbarung über geistiges Eigentum, die im Februar 1997 zwischen den ursprünglichen Kooperationspartnern unterzeichnet worden war (wobei Seagate durch Anderson und Chris Malakapalli vertreten wurde) und die Vorteile von Objektspeichern, skalierbarem Computing, Plattformunabhängigkeit und Speichermanagement umfasste.Object Based Storage: A Vision, slide presentation, Dave Anderson and Seagate Technology, 13. Oktober 1999

Architektur mini

Abstraktion des Speichers Eines der Entwurfsprinzipien der Objektspeicherung besteht darin, einige der unteren Ebenen der Speicherung von Administration und Anwendungen zu abstrahieren. So werden Daten als Objekte, anstelle von Dateien oder Blöcken bereitgestellt und verwaltet. Objekte enthalten zusätzliche beschreibende Eigenschaften, die für eine bessere Indizierung oder Verwaltung verwendet werden können. Administratoren müssen keine Speicherfunktionen auf unterer Ebene ausführen, wie z. B. die Erstellung und Verwaltung logischer Volumes zur Nutzung der Festplattenkapazität oder die Einrichtung von RAID-Levels für den Fall eines Festplattenausfalls vornehmen.

Die Objektspeicherung ermöglicht auch die Adressierung und Identifizierung einzelner Objekte durch mehr als nur Dateinamen und Dateipfad. Die Objektspeicherung fügt einen eindeutigen Bezeichner innerhalb eines Objektbehälters () oder im gesamten System hinzu, um erheblich größere Namensräume zu unterstützen und Namenskollisionen zu vermeiden.

Einbezug von umfangreichen benutzerdefinierten Metadaten in das Objekt Bei der Objektspeicherung werden die Dateimetadaten ausdrücklich von den Nutzdaten getrennt, um zusätzliche Funktionen zu unterstützen. Im Gegensatz zu festen Metadaten in Dateisystemen (Dateiname, Erstellungsdatum, Typ usw.) bietet die Objektspeicherung voll funktionsfähige, benutzerdefinierte Metadaten auf Objektebene, um: Erfassen anwendungsspezifischer oder benutzerspezifischer Informationen für eine bessere Indizierung Unterstützung von Datenverwaltungsrichtlinien (z. B. eine Richtlinie für die Verschiebung von Objekten von einer Speicherebene zur anderen) Zentralisierung der Speicherverwaltung über viele einzelne Knoten und Verbünde hinweg Optimierung der Metadatenspeicherung (z. B. gekapselte, datenbankgestützte oder Schlüssel-Wert-Speicherung) und der Zwischenspeicherung/Indizierung (wenn maßgebliche Metadaten mit den Metadaten innerhalb des Objekts gekapselt sind) unabhängig von der Datenspeicherung (z. B. unstrukturierte binäre Speicherung)

Darüber hinaus gibt es in einigen objektbasierten Dateisystem-Implementierungen: Die Dateisystemnutzerteile kontaktieren den Metadatendienst nur einmal, wenn die Datei geöffnet wird und erhalten den Inhalt dann direkt über die Objektspeicherdienste (im Gegensatz zu blockbasierten Dateisystemen, die einen ständigen Zugriff auf die Metadaten erfordern würden). Datenobjekte können auf Dateibasis konfiguriert werden, um eine adaptive Stripe-Breite zu ermöglichen, sogar über mehrere Objektspeicher-Server hinweg, was Optimierungen bei Bandbreite und E/A ermöglicht.

Objektbasierte Speichergeräte (engl. OSD) wie auch einige Software-Implementierungen (z. B. Caringo Swarm) verwalten Metadaten und Nutzdaten auf Ebene des Speichergerätes: Anstelle einer blockorientierten Schnittstelle, die Datenblöcke fester Größe liest und schreibt, werden die Daten in Datencontainern flexibler Größe organisiert, die als Objekte bezeichnet werden. Jedes Objekt hat sowohl Nutzdaten (eine uninterpretierte Folge von Bytes) als auch Metadaten (eine erweiterbare Menge von Attributen, die das Objekt beschreiben); die physische Kapselung beider zusammen verbessert die Wiederherstellbarkeit. Die Befehlsschnittstelle enthält Befehle zum Erstellen und Löschen von Objekten, zum Schreiben und Lesen von Bytes in und aus einzelnen Objekten sowie zum Setzen und Abrufen von Attributen für Objekte Sicherheitsmechanismen bieten Zugriffskontrolle pro Objekt und pro Befehl

Programmatische Datenverwaltung Objektspeicher bieten programmatische Schnittstellen, die es Anwendungen ermöglichen, Daten zu manipulieren. Auf der Basisebene umfasst dies Funktionen zum Erstellen, Lesen, Aktualisieren und Löschen (engl. CRUD) für grundlegende Lese-, Schreib- und Löschvorgänge. Einige Objektspeicherimplementierungen gehen darüber hinaus und unterstützen zusätzliche Funktionen wie Objektversionierung, Objektreplikation, Lebenszyklusverwaltung und die Bewegung von Objekten zwischen verschiedenen Speicherebenen und -typen. Die meisten API-Implementierungen sind REST-basiert und ermöglichen die Verwendung vieler Standard-HTTP-Aufrufe.

Das Aktualisieren und Löschen von Objekten kann Auswirkungen auf andere Objekte oder Metadaten haben, die Referenzen zu dem geänderten oder entfernten Objekt haben. Die Zusammenhänge können so komplex sein, dass es für Programmierer und Anwender nicht möglich ist, mit vertretbarem Aufwand zuverlässig zu entscheiden, ob ein bestimmtes Objekt im Speicher gelöscht werden darf, ohne dass es zu einer technischen Kompromittierung von anderen Objekten oder zu Speicherlecks kommen kann. Für geschlossene Systeme, in denen Objekte gelöscht werden dürfen, bietet es sich gegebenenfalls an, in regelmäßigen Abständen eine geeignete automatische Speicherbereinigung durchzuführen.Fundamentals of garbage collection, Microsoft, .NET fundamentals, 11. Mai 2022, abgerufen am 16. Juni 2022

Implementierung Datenwolke Die überwiegende Mehrheit der auf dem Markt erhältlichen Cloud-Speicher basiert auf einer Objektspeicherarchitektur. Einige nennenswerte Beispiele sind Amazon Web Services S3, welches im März 2006 debütierte, Microsoft Azure Blob Storage, Rackspace Files (dessen Code im Jahr 2010 dem Openstack-Projekt als OpenStack Swift gespendet wurde) und Google Cloud Storage, veröffentlicht im Mai 2010.

Objektbasierte Dateisysteme Einige verteilte Dateisysteme verwenden eine objektbasierte Architektur, bei der Dateimetadaten in Metadatenservern und Dateidaten in Objektspeicherservern gespeichert werden. Die Client-Software des Dateisystems interagiert mit den verschiedenen Servern und abstrahiert sie, um den Benutzern und Anwendungen ein vollständiges Dateisystem zu präsentieren.

Objektspeichersysteme Einige frühe Versionen von Objektspeichern wurden für die Archivierung verwendet, da die Implementierungen für Datendienste wie Unveränderlichkeit und nicht für Leistung optimiert waren. EMC Centera und Hitachi HCP (zuvor als HCAP bekannt) sind zwei häufig erwähnte Objektspeicherprodukte für die Archivierung. Ein weiteres Beispiel ist die Quantum Lattus Object Storage Platform.

Allgemeinere Objektspeichersysteme kamen um 2008 auf den Markt. Angelockt durch das unglaubliche Wachstum "firmeneigener" Speichersysteme in Webanwendungen wie Yahoo Mail und den frühen Erfolg von Cloud-Storage versprachen Objektspeichersysteme den Umfang und die Fähigkeiten von Cloud-Storage mit der Möglichkeit, das System innerhalb eines Unternehmens oder bei einem aufstrebenden Cloud-Storage-Dienstanbieter einzusetzen.

Hybridspeicher Einige wenige Objektspeichersysteme unterstützen Unified File and Object (UFO)-Speicher, so dass einige Clients Objekte auf einem Speichersystem speichern können, während andere Clients gleichzeitig Dateien auf demselben Speichersystem speichern. Obwohl der Begriff "Hybridspeicher" aufgrund der Verwechslung mit hybriden Festplatten- und Flash-Speichern nicht weit verbreitet ist, gibt es in einigen Objektspeicherprodukten interoperable Schnittstellen für dieselben Daten.

Unternehmenseigene Objektspeicher Einige große Internetunternehmen haben ihre eigene Software entwickelt, als Objektspeicherprodukte noch nicht im Handel erhältlich waren oder die Anwendungsfälle sehr spezifisch waren. Facebook hat seine eigene Objektspeicher-Software mit dem Codenamen Haystack entwickelt, um seine besonderen Anforderungen an die Verwaltung von Fotos in großem Maßstab effizient zu erfüllen.

Speicher virtueller Objekte