Java Magazin 10/14

Mächtig flexibel. Grundlagen und Konzepte des Ceph Storage Clusters

Autoren: ,

Ceph ist ein Storage-Cluster, der auf handelsüblicher Serverhardware läuft und problemlos Speichermengen von wenigen hundert Gigabyte bis hin zu Peta- oder gar Exabytegröße bereitstellen kann. Dabei sorgt eine intelligente Peer-to-Peer- Kommunikation dafür, dass alle abgelegten Daten redundant und hochverfügbar gespeichert werden.

Dieser Artikel beleuchtet die grundlegenden Konzepte von Ceph am Beispiel unserer Installation. Diese stellt derzeit insgesamt 175 TB Speicherplatz – verteilt über 48 Festplatten in vier Servern – als hochperformanter Object Store und verteiltes Dateisystem zur Verfügung. Abgrenzung zu SANs. Wenn schnelle Speicherkapazität in großer Menge benötigt wird, richten sich die Blicke traditionell in Richtung Storage Area Networks (SAN). Diese oft via Fibre Channel angebundenen Speichernetzwerke bieten den angeschlossenen Rechnern virtuelle Block-Devices zum Beispiel über das iSCSI-Protokoll an. Im Hintergrund sorgen sie für eine automatische Verteilung der Daten auf eine Anzahl individueller Festplatten. SANs sind weit verbreitet, haben aber einige Nachteile. Neben dem hohen Anschaffungspreis für die benötigten Komponenten begibt man sich in ein Abhängigkeitsverhältnis vom jeweiligen Hersteller, da trotz Bestrebungen in dieser Richtung eine Interoperabilität zwischen Systemen verschiedener Anbieter nicht gewährleistet ist. Soll ein SAN hochverfügbar ausgelegt werden, bedeutet dies normalerweise eine Verdopplung der Hardware, einhergehend mit den entsprechenden Kosten. Eine nachträgliche Aufrüstung ist nur im Rahmen dessen möglich, was der Hersteller des Systems dafür an kompatiblen Optionen vorsieht. Im Gegensatz dazu basiert Ceph vollständig auf handelsüblicher Serverhardware mit dazugehörigen einfachen, zum Beispiel via SAS verbundenen, Speichermedien. Diese können flexibel zu einem Storage-Cluster zusammengeschlossen werden.
Die Kommunikation zwischen den Komponenten erfolgt über 1-GBit- oder 10-GBit-Ethernet und kommt ohne zentrale Komponenten – wie zum Beispiel SAN-Controller – aus. Damit gibt es keinen Single Point of Failure. Die einzelnen Knoten tauschen sich untereinander über Peer-to-Peer-Kommunikation aus, um abgelegte Daten zuverlässig und schnell abzulegen bzw.
darauf zugreifen zu können.

RADOS

Kernbestandteil von Ceph ist RADOS, das Reliable Autonomic Distributed Object Storage. Hierbei handelt es sich um einen verteilten Object Store, der die Intelligenz aller beteiligten Knoten nutzt, um die Notwendigkeit einer zentralen Verwaltungsinstanz zu vermeiden. RADOS skaliert durch die horizontale Verteilung aller anfallenden Aufgaben nahezu beliebig und trägt dabei Sorge dafür, dass gespeicherte Daten dynamisch verteilt und bei Bedarf möglichst schnell und effizient reorganisiert werden, gleichzeitig aber jederzeit zugreifbar sind. Ein Objekt im Sinne von RADOS ist eine beliebige Menge von Daten, die unter einem eindeutigen Schlüssel abgelegt werden. Dabei spielt die Größe dieser Objekte keine wesentliche Rolle. Es kann sich dabei um einen nur wenige Bytes langen Text handeln oder um ein hunderte Gigabyte großes Disk Image.

Object Storage Devices

Ungeachtet aller logischen Strukturen müssen auch in Ceph letztlich Daten auf physischen Speichermedien abgelegt werden. In der Ceph-Terminologie handelt es sich hierbei um so genannte Object Storage Devices (OSDs). Im Normalfall sind dies Festplatten. Es kann sich jedoch auch – insbesondere zu Testzwecken – um Loopback Devices oder einzelne Verzeichnisse in einem existieren den Dateisystem handeln. Für den Produktionseinsatz werden in jedem Fall dedizierte Platten empfohlen. Jede Platte wird im Rahmen der Installation von Ceph mit dem XFS-Dateisystem formatiert. In unserem Cluster ergeben sich dadurch 48 OSDs mit je ca. 3,7 TB formatierter Kapazität; insgesamt also etwa 175 TB Speicherplatz. Zu beachten ist, dass Struktur und Inhalt der in diesen Dateisystemen gespeicherten Daten vollständig Ceph obliegen. Jeder manuelle Eingriff würde
die Konsistenz des Systems gefährden und sollte daher dringend unterlassen werden. (…)

Vollständiger Artikel