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.

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 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.