Ceph – eine praktische Speicherlösung für Unternehmen jeder Größe

Ceph ist eine umfassende Speicherlösung, die mit dem Ceph-Filesystem (CephFS) über ein eigenes Dateisystem verfügt. Mit Ceph ist es möglich, Daten auf diversen Komponenten im eigenen Netzwerk verteilt abzulegen. Zudem können die Daten mehrfach in physisch unterschiedlichen Speicherbereichen gesichert werden. Ceph gewährt eine große Flexibilität bei der Wahl der Speichergeräte und eine hohe Skalierbarkeit.

Wissenswertes zu Ceph und die wichtigsten Merkmale

Das Konzept von Ceph geht auf Sage A. Weil zurück, der es während seiner Dissertation entwickelte und 2006 veröffentlichte. Danach führte er das Projekt mit seiner Firma Intank Storage fort. 2014 wurde die Firma von RedHat übernommen, wo Weil als Chefarchitekt weiterhin für die Entwicklung verantwortlich ist.

Ceph läuft nur auf Linux-Systemen. Unterstützung bieten beispielsweise CentOS, Debian, Fedora, RedHat/RHEL, OpenSUSE und Ubuntu. Der Zugriff von Windows-Systemen aus ist nicht direkt, jedoch unter Nutzung von iSCSI (Internet Small Computer System Interface) möglich. Daher eignet sich Ceph besonders für den Einsatz in Rechenzentren, die ihren Speicherplatz über Serverdienste zur Verfügung stellen, sowie für Cloud-Lösungen aller Art, die eine Software zur Bereitstellung des Speichers nutzen.

Wir haben die wichtigsten Merkmale von Ceph für Sie zusammengefasst:

  • Quelloffene Bereitstellung (Open Source)
  • Hohe Skalierbarkeit
  • Datensicherheit durch redundante Speicherung der Daten
  • Ausfallsicherheit durch verteilte Ablage der Daten
  • Softwarebasierte Erhöhung der Verfügbarkeit durch eigenen Algorithmus zum Auffinden der Daten
  • Darstellung als zusammenhängender Speicher
  • Geringe Hardware-Anforderungen (Einrichtung bereits ab 1 GB RAM auf einem Rechner mit Single-Core-Prozessor und Speicherplatz von wenigen GB möglich, je nach Aufgabe im Verbund)

Die Funktionsweise von Ceph

Ceph benötigt mehrere miteinander vernetzte Rechner. Diese werden als Cluster (wörtlich: „Haufen“, in diesem Kontext: Verbund von mehreren Rechnern) bezeichnet. Jeder eingebundene Rechner wird als Node (Knotenpunkt)bezeichnet.

In diesem Verbund müssen folgende Aufgaben unter den Nodes verteilt werden:

  • Monitor Nodes: Verwalten den Status der einzelnen Nodes im Cluster, insbesondere die Übersicht der Komponenten Manager-Dienst, Object-Storage-Dienst und Metadaten-Server (MDS); um für Ausfallsicherheit zu sorgen, werden mindestens drei Monitor-Nodes empfohlen.
  • Manager: Verwalten den Status der Speichernutzung, der Systemlast und Auslastung der Nodes.
  • Ceph OSDs (Object Storage Devices): Die Hintergrunddienste für die eigentliche Dateiverwaltung; sie sind für die Speicherung, Duplizierung und Wiederherstellung von Daten zuständig. Im Cluster werden mindestens drei OSDs empfohlen.
  • Metadaten-Server (MDSs): Speichern die Metadaten, also Speicherpfade, Dateinamen und Zeitstempel der im CephFS abgelegten Dateien aus Performance-Gründen zusätzlich; sie sind POSIX-konform und können mittels Unix-Kommandozeilen-Programmen wie ls, find und like abgefragt werden.

Herzstück der Datenablage ist ein Algorithmus mit der Bezeichnung CRUSH (Controlled Replication Under Scalable Hashing). Dieser ist in der Lage, anhand einer Zuordnungstabelle, der CRUSH Map, einen OSD mit der angeforderten Datei zu finden.

Die Verteilung der Dateien erfolgt bei Ceph pseudozufällig. Das bedeutet, dass sie scheinbar wahllos abgelegt werden. Tatsächlich errechnet CRUSH aber anhand festgelegter Kriterien den geeigneten Speicherort. Im Zuge dessen werden die Dateien auch dupliziert und auf physisch getrennten Medien abgelegt. Die entsprechenden Vorgaben kann der Administrator des Netzes bestimmen.

Die Dateien werden in sogenannte Placement Groups eingeteilt. Hierbei wird der Dateiname als Hashwert verarbeitet, weiteres Einteilungsmerkmal ist z. B. die Anzahl der Duplikate einer Datei.

Hinweis

Beim Hashwert handelt es sich um eine Zeichenfolge, die das Ergebnis einer durch Rechenoperationen verarbeiteten Eingabe ist. Ein einfacheres Vorgehen wäre, die Quersumme aus den Rohdaten zu generieren. Tatsächlich kommen jedoch hochkomplexe Algorithmen zum Einsatz, die aus beliebig langen Daten einen einzigartigen digitalen Fingerabdruck erstellen. Die Ausgabe hat immer dieselbe kompakte Länge und enthält keine unerwünschten Zeichen. Daher eignet sie sich auch zur Verarbeitung von Dateinamen.

Um die Datensicherheit zu gewährleisten, kommt auf der Ebene der OSDs ein Journaling zum Einsatz. Jede Datei, die gespeichert werden soll, wird dort zwischengespeichert, bis sie auf allen vorgesehenen OSDs ordnungsgemäß abgelegt wurde.

Zugriff auf die abgelegten Daten

Die Basis der Datenablage unter Ceph wird als RADOS bezeichnet (a reliable, distributed object store comprised of self-healing, self-mapping, intelligent storage nodes), also als ein verlässlicher, verteilter, sich selbst regenerierender und organisierender, intelligenter objektorientierter Speicher.

Es gibt verschiedene Methoden des Zugriffs auf die abgelegten Dateien:

  • librados: Ein nativer Zugriff ist unter Verwendung der Bibliothek librados über die Programmierschnittstellen (API) mit Programmier- und Skriptsprachen wie C/C++, Python, Java und PHP möglich.
  • radosgw: Über das Gateway können Daten mittels des Internetprotokolls HTTP gelesen oder geschrieben werden.
  • CephFS: Ist das POSIX-konforme, eigene Dateisystem; es bietet ein Kernel-Modul für zugreifende Rechner und unterstützt FUSE (Dateisystem-Einbindung ohne Administratorrechte).
  • RADOS Block Device: Einbindung als blockorientierter Speicher durch Kernel-Module oder virtuelle Systeme wie QEMU/KVM.

Alternativen zu Ceph

Die anerkannteste Alternative ist GlusterFS, das ebenfalls zum Linux-Distributor RedHat/RHEL gehört und kostenfrei verfügbar ist. Gluster verfolgt einen ähnlichen Ansatz mit dem Zusammenfassen des verteilten Speichers zu einem einheitlichen Speicherplatz im Netzwerk. Natürlich haben die beiden Lösungen GlusterFS und CephFS jeweils ihre eigenen Vor-und Nachteile. Diese finden Sie in unsererm Artikel GlusterFS vs Ceph.

Zudem gibt es weitere kostenfreie Alternativen, beispielsweise XtremFS und BeeGfs. Microsoft bietet für Windows-Server kommerzielle softwarebasierte Speicherlösungen, darunter Storage Spaces Direct (S2D).

Vor- und Nachteile von Ceph

Ceph ist in vielen Szenarien die richtige Wahl, doch die Speichermethode bringt nicht nur Vorteile mit sich.

Vorteile von Ceph

Ceph ist kostenfrei und gilt inzwischen als etabliert – trotz seiner noch vergleichsweise jungen Entwicklungsgeschichte. Im Netz finden sich zahlreiche Hilfestellungen für die Einrichtung und Wartung. Zudem ist die Anwendung sehr gut vom Hersteller dokumentiert. Die Übernahme durch RedHat spricht dafür, dass die Weiterentwicklung auf absehbare Zeit fortgeführt wird. Die Skalierbarkeit und die integrierte Redundanz sorgen für Datensicherheit und Flexibilität im Netzwerk. Überdies ist die Verfügbarkeit durch den CRUSH-Algorithmus gewährleistet.

Hinweis

Redundanz bedeutet „Überfluss“. In der Informationstechnik sind damit also Daten gemeint, die zusätzlich und überschüssig vorhanden sind. Hier sorgt man häufig absichtlich für Redundanz, um Daten- und Ausfallsicherheit zu garantieren. Dies ist auf Software- und auf Hardware-Ebene möglich: Zum einen können Daten oder zur Rekonstruktion notwendige Informationen mehrfach im Speicher abgelegt werden; zum anderen können Speicherkomponenten, physisch getrennt, mehrfach vorhanden sein, um den etwaigen Ausfall einzelner Rechner zu kompensieren.

Nachteile von Ceph

Durch die Vielzahl an vorgesehenen Komponenten ist ein umfangreiches Netzwerk notwendig, um die Stärken von Ceph nutzen zu können. Zudem ist die Einrichtung relativ aufwendig und dem Anwender erschließt sich nicht unbedingt, wo genau die Daten physisch abgelegt werden.


Auf dem Laufenden bleiben?

Jetzt für unseren Newsletter anmelden und gratis Online-Marketing Whitepaper für lokale Anbieter sichern!