Unstrukturierte Daten effizient speichern

Die unterschiedlichen SDS-Ansätze

von - 28.12.2015
Verschiedene Storage-Arten: Die Speichertechnologien unterscheiden sich in Kapazität und Performance.
(Quelle: Quelle: Red Hat)
Ein skalierbarer Ansatz für SDS erfordert die Entkopplung der Datenservices von den zugrunde liegenden Datenstrukturen. Bezüglich der Datenservices gilt es, zwischen File-Systemen, Blockspeicher, Objektspeicher und Shared-File/Object-Storage zu unterscheiden.
Herkömmliche File-Systeme: Diese sind aufgrund ihrer hie­rarchischen Struktur nur begrenzt skalierbar. Blockbasierte Speicher, wie ihn Storage Area Networks verwenden, verwalten die Daten als Blöcke mit Sektoren und Tracks. Im Cloud-Bereich ist das OpenStack-Projekt Cinder ein weitverbreiteter Blockspeicher.
Objektorientierte Speichersysteme: Sind historisch als Alternative zu den datei- und blockbasierten Systemen entstanden und enthalten zusätzlich zu den eigentlichen Informationen auch Metadaten, die sich einfacher in­dizieren lassen als unstrukturierte Daten. Sie nutzen die Representational-State-Transfer-Architektur (REST) zur Abstraktion der Daten von der Applikation. Das OpenStack-Projekt Swift ist ein typischer Vertreter eines objekt­orientierten Speichersystems.
SDS – objektbasiert
Typischer Vertreter eines objektbasierten SDS-Speichersystems ist Red Hat Ceph Storage, das auf der Open-Source-Lösung Ceph basiert.
Object Stores speichern die Daten als binäre Objekte, die sich in viele Teile aufspalten lassen. Die einzelnen Teile des binären Objekts können verteilt – zum Beispiel über mehrere Festplatten – gespeichert werden. Damit umgehen Objektspeicher den größten Schwachpunkt klassischer Storage-Lösungen: die starre Einteilung in Blöcke.
Kernkomponente von Ceph ist der Objektspeicher, vormals Rados (Redundant Autonomic Distributed Object Store). Dieser besteht aus Object Storage Device (OSD) und Monitoring-Server. Ein OSD ist praktisch die einzelne Festplatte in einem Ceph-Verbund. Die OSDs speichern als Datensilos die binären Objekte. Um Daten in einen Cluster zu laden, kommunizieren Anwender mit diesen OSDs, die sich etwa auch um die Replikation kümmern. Über die Monitoring-Server können Clients und OSDs feststellen, welche OSDs zu einem Cluster gehören. Der Objektspeicher arbeitet mit dem Crush-Algorithmus (Controlled Replication Under Scalable Hashing) und verteilt die Daten über die verfügbaren Speichersysteme. Die Platzierung der Daten erfolgt über Regeln, in denen zum Beispiel auch definiert wird, wie viele Kopien aus Gründen der Ausfallsicherheit anzu­legen sind.
Ceph Storage stellt seine Speicher-Pools üblicherweise über objektbasierte Protokolle wie S3 oder Swift zur Verfügung. Weitere Integrationsmöglichkeiten bieten eigene APIs wie die objektbasierte Librados-Schnittstelle, die blockbasierte librbd/kRBD-Schnittstelle oder die direkte Anbindung an die OpenStack-Speicherschnitt­stellen Cinder und Glance.
Shared-File-/Objektspeicher-Lösungen: Sie verwenden die Stärken der weitverbreiteten dateibasierten Applikationen. Gleichzeitig machen sie die Daten auch für objektbasierte Applika­tionen zugänglich, nutzen dazu REST-basierte Methoden und bieten so eine hohe Flexibilität.
Verwandte Themen