Was ist Ceph?

3. April 2024

Ceph ist ein Open-Source Softwareplattform, die hoch skalierbare objekt-, block- und dateibasierte Speicherung unter einem einheitlichen System bietet. Es ist zum Laufen gebaut Standardhardwareund bietet eine รคuรŸerst zuverlรคssige und einfach zu skalierende Speicherlรถsung fรผr groรŸe Datenmengen. Das System ist so konzipiert, dass es sich selbst repariert und verwaltet, mit dem Ziel, den Verwaltungsaufwand und andere Kosten zu minimieren.

Was ist Ceph?

Geschichte von Ceph

Ceph wurde von Sage Weil im Rahmen seiner Doktorarbeit in Informatik an der University of California, Santa Cruz (UCSC) entwickelt. Das Projekt begann 2004 unter der Leitung von Professor Scott Brandt als Teil des Storage Systems Research Center an der UCSC.

Das Hauptziel von Ceph bestand darin, ein verteiltes Speichersystem zu entwerfen, das auf die Exabyte-Ebene und darรผber hinaus skaliert werden kann und gleichzeitig eine hohe Leistung und Zuverlรคssigkeit beibehรคlt. Sage Weil und sein Team versuchten, die Einschrรคnkungen bestehender Speicherlรถsungen zu รผberwinden, die hรคufig Probleme mit der Skalierbarkeit hatten, anfรคllig fรผr Engpรคsse waren oder teure proprietรคre Hardware erforderten.

Hier sind einige wichtige Meilensteine โ€‹โ€‹in der Entwicklung und Weiterentwicklung von Ceph:

  • 2006 Der erste Ceph-Prototyp wurde รถffentlich verรถffentlicht und demonstrierte seinen innovativen Ansatz fรผr verteilten Speicher, einschlieรŸlich der Verwendung des Reliable Autonomic Distributed Object Store (RADOS), um eine hohe Skalierbarkeit und Verfรผgbarkeit zu erreichen.
  • 2007 Ceph wurde unter der LGPL 2.1 (Lesser General Public License) verรถffentlicht und lรคdt eine breitere Entwicklergemeinschaft ein, zu seiner Entwicklung beizutragen.
  • 2010 Die erste stabile Version von Ceph mit dem Namen Argonaut stellte einen wichtigen Meilenstein fรผr das Projekt dar und demonstrierte dessen Reife und Stabilitรคt fรผr Produktionsumgebungen.
  • 2011 Inktank Storage wurde von Sage Weil gegrรผndet, um kommerziellen Support und Dienstleistungen fรผr Ceph bereitzustellen und so dessen Einfรผhrung in Unternehmensumgebungen zu beschleunigen.
  • 2014 Red Hat, Inc. erwarb Inktank Storage, investierte weiter in die Entwicklung von Ceph und integrierte es in seine Suite cloud und Speicherlรถsungen. Diese รœbernahme war fรผr Ceph von entscheidender Bedeutung, da sie die Ressourcen und das Fachwissen von Red Hat mit der innovativen Technologie von Ceph kombinierte.
  • 2015 und darรผber hinaus. Ceph entwickelte sich stรคndig weiter, indem regelmรครŸige Releases neue Funktionen hinzufรผgten, die Leistung verbesserten und seine Fรคhigkeiten erweiterten. Die Community rund um Ceph ist erheblich gewachsen und Entwickler, Benutzer und Unternehmen haben zu seiner Entwicklung und Bereitstellung in verschiedenen Branchen beigetragen.

Ceph-Architektur

Die Architektur von Ceph ist auf Skalierbarkeit, Zuverlรคssigkeit und Leistung ausgelegt und nutzt die Leistungsfรคhigkeit von Verteiltes rechnen groรŸe Datenmengen effizient verwalten. Die Architektur ist grundsรคtzlich modular aufgebaut und ermรถglicht die unabhรคngige Skalierung verschiedener Komponenten je nach Workload-Anforderungen. Hier finden Sie einen รœberblick รผber die Schlรผsselkomponenten der Ceph-Architektur.

1. RADOS (Reliable Autonomic Distributed Object Store)

RADOS ist die Grundlage der Ceph-Architektur und stellt die zugrunde liegende verteilte Speicherfunktion bereit. Es geht Datenspeichervorrichtung, Datenreplikation, und Genesung. RADOS-Cluster bestehen aus zwei Arten von Dรคmonen:

  • OSDs (Object Storage Dรคmonen). Diese sind fรผr die Speicherung von Daten, die Datenreplikation, die Wiederherstellung, das Auffรผllen und die Neuverteilung im gesamten Cluster verantwortlich. Jeder OSD-Daemon bedient eine Speicherfestplatte und kommuniziert mit anderen OSDs, um sicherzustellen, dass Daten konsistent repliziert und im Cluster verteilt werden.
  • MONs (Monitore). Monitore verwalten eine Masterkopie der Cluster-Karte, eine detaillierte Aufzeichnung des Cluster-Status, einschlieรŸlich OSDs, deren Status und anderer kritischer Punkte Metadaten. Monitore stellen sicher, dass der Cluster mithilfe von Paxos einen Konsens รผber den Zustand des Systems erzielt Algorithmusund bietet allen Clients und OSDs eine zuverlรคssige und konsistente Ansicht des Clusters.

2. CRUSH-Algorithmus

Ceph verwendet den CRUSH-Algorithmus (Controlled Replication Under Scalable Hashing), um Daten effizient zu speichern und abzurufen. CRUSH ist ein innovativer Ansatz, der es Ceph ermรถglicht, zu berechnen, wo Daten im Cluster gespeichert (oder abgerufen) werden sollen, ohne dass eine zentrale Nachschlagetabelle erforderlich ist. Dieser Prozess ermรถglicht Ceph eine horizontale Skalierung ohne Engpรคsse oder Single Points of Failure.

3. Ceph-Speicherschnittstellen

Ceph bietet mehrere Speicherschnittstellen fรผr die Interaktion mit der zugrunde liegenden RADOS-Schicht und deckt so unterschiedliche Speicheranforderungen ab:

  • RBD (RADOS Block Device). Diese Schnittstelle stellt Blockspeicher bereit, sodass Ceph als skalierbare und verteilte Blockspeicherlรถsung fรผr verwendet werden kann virtuelle Maschinen und Datenbanken.
  • CephFS (Ceph-Dateisystem). A POSIX-kompatibel Dateisystem das Ceph zur Speicherung verwendet und eine Dateispeicherschnittstelle zum Ceph-Cluster bereitstellt. Es bietet Funktionen wie Snapshots und Quoten.
  • RGW (RADOS Gateway). Dies sorgt fรผr object storage Funktionen und bietet eine Schnittstelle, die mit S3- und Swift-APIs kompatibel ist. Es wird hรคufig fรผr die Webskalierung verwendet object storage Bedรผrfnisse.

4. Ceph-Manager-Daemon (ceph-mgr)

Fรผr die Nachverfolgung ist der Ceph-Manager-Daemon verantwortlich Laufzeit Metriken und den aktuellen Status des Clusters. Es bietet wichtige Verwaltungs- und รœberwachungsfunktionen und stellt sicher, dass Administratoren in Echtzeit Einblick in den Zustand und die Leistung des Clusters haben.

Wie funktioniert Ceph?

Hier finden Sie eine Schritt-fรผr-Schritt-Erklรคrung der Funktionsweise von Ceph:

1. Datenverteilung

In Ceph werden alle Daten als Objekte in einem flachen Namensraum gespeichert. Wenn eine Datei im Ceph-Cluster gespeichert wird, wird sie in Blรถcke fester GrรถรŸe unterteilt, die dann in Objekte verpackt werden. Diese Objekte stellen die grundlegende Speichereinheit in Ceph dar und enthalten den Datenblock, Metadaten und eine eindeutige Kennung.

Ceph verwendet den CRUSH-Algorithmus, um zu bestimmen, wie diese Objekte im gesamten Cluster gespeichert und abgerufen werden. CRUSH verwendet die eindeutige Kennung jedes Objekts, um zu berechnen, welche OSDs die Replikate des Objekts speichern sollen. Dieser Prozess ermรถglicht es Ceph, die Datenplatzierung im Cluster dynamisch und effizient zu verwalten, ohne auf ein zentrales Verzeichnis oder einen Masterknoten angewiesen zu sein.

2. Datenreplikation

Um die Haltbarkeit der Daten zu gewรคhrleisten und hohe VerfรผgbarkeitCeph repliziert jedes Objekt mehrmals รผber verschiedene OSDs. Die Anzahl der Replikate ist konfigurierbar (normalerweise drei), um ein Gleichgewicht zwischen ihnen herzustellen Redundanz und Speichereffizienz.

Ceph sorgt auรŸerdem fรผr eine starke Konsistenz. Wenn Daten geschrieben oder geรคndert werden, werden die ร„nderungen auf alle Kopien repliziert, bevor der Schreibvorgang dem Client bestรคtigt wird. Dadurch wird sichergestellt, dass alle Clients dieselben Daten sehen, unabhรคngig davon, auf welches Replikat sie zugreifen.

3. Fehlertoleranz und Selbstheilung

Ceph Monitors (MONs) รผberwachen den Zustand des Clusters, einschlieรŸlich des Zustands der OSDs und ihrer Verteilung im Cluster. MONs verwenden den Paxos-Konsensalgorithmus, um sich auf den aktuellen Status des Clusters zu einigen und so konsistente Ansichten รผber alle Knoten hinweg sicherzustellen.

Wenn ein OSD ausfรคllt, verteilt Ceph seine Daten automatisch an andere OSDs neu und behรคlt dabei den gewรผnschten Grad der Replikation bei. Dieser Prozess wird als Selbstheilung bezeichnet und trรคgt dazu bei, dass das System angesichts von Stรถrungen verfรผgbar und langlebig bleibt Hardware Misserfolge

4. Datenzugriff

Ceph bietet mehrere Schnittstellen fรผr den Datenzugriff, die jeweils unterschiedliche Speicheranforderungen erfรผllen:

  • RADOS-Blockgerรคt (RBD) fรผr die Blockspeicherung, die es virtuellen Maschinen und Datenbanken ermรถglicht, Daten auf Ceph zu speichern, als wรคre es ein lokales Blockgerรคt.
  • Ceph-Dateisystem (CephFS) zur Dateispeicherung, Bereitstellung eines POSIX-kompatiblen Dateisystems zum Speichern und Verwalten von Dateien in einer hierarchischen Struktur.
  • RADOS-Gateway (RGW) fรผr object storage, bietet S3- und Swift-kompatible APIs zum Speichern und Zugreifen auf Daten als Objekte.

Ceph-Clients interagieren รผber diese Schnittstellen mit dem Speichercluster. Sie nutzen Librados, eine Bibliothek, die das Kommunikationsprotokoll mit Ceph OSDs implementiert, um auf die im Cluster gespeicherten Daten zuzugreifen.

5. Skalierung

Die Architektur von Ceph ermรถglicht eine Skalierung auf Tausende von Knoten und Petabytes bis hin zu Exabytes an Daten. Das Hinzufรผgen von mehr Speicherkapazitรคt oder Leistung ist so einfach wie das Hinzufรผgen weiterer Knoten zum Cluster. Der CRUSH-Algorithmus ermรถglicht es Ceph, diese Skalierbarkeit effizient zu verwalten und die Daten gleichmรครŸig รผber den Cluster zu verteilen, ohne dass es zu zentralen Engpรคssen kommt.


Anastazija
Spasojeviฤ‡
Anastazija ist eine erfahrene Content-Autorin mit Wissen und Leidenschaft fรผr cloud Computer, Informationstechnologie und Online-Sicherheit. Bei phoenixNAP, konzentriert sie sich auf die Beantwortung brennender Fragen zur Gewรคhrleistung der Datenrobustheit und -sicherheit fรผr alle Teilnehmer der digitalen Landschaft.