Ceph
Was ist Ceph?
Ceph ist eine Open-Source-Softwarelösung, die ein einheitliches System für objekt-, block- und dateibasierte Speicherung auf Unternehmensebene bietet. Die Ceph-Plattform bietet eine hochgradig skalierbare Architektur sowie zuverlässige Speicherkapazitäten für den wachsenden Datenspeicherbedarf von Unternehmen.
Von Ceph unterstützte Speichertypen
Ceph bietet Objekt-, Block- und Dateispeicherung von einer einzigen, einheitlichen Plattform aus.
Der Zugriff auf den Ceph-Objektspeicher erfolgt über Amazon Simple Storage Service (S3) und APIs, die auf OpenStack Swift Representational State Transfer (REST) basieren, sowie über eine native API für die Integration in Softwareanwendungen. Der Dienst umfasst eine Reihe robuster Sicherheits- und Tiering-Funktionen. Darüber hinaus verfügt die einfache Objektspeicher-Schnittstelle in einem Speicher-Cluster über asynchrone Kommunikationsfunktionen, die einen direkten Zugriff auf die Objekte im Cluster ermöglichen.
Ceph RADOS Block Device (RBD) bietet eine hohe Skalierbarkeit und Leistung, indem Daten und Arbeitslast auf alle verfügbaren Geräte verteilt werden. Um solche Verteilungen zu ermöglichen, verteilt RBD virtuelle Festplatten über Objekte innerhalb eines Ceph-Speicher-Clusters. Durch das Striping liefern die Blockgeräte eine bessere Leistung als ein einzelner Server. Die Festplatten-Images können asynchron auf Remote-Ceph-Cluster gespiegelt werden, um ein Disaster Recovery oder ein Backup zu ermöglichen, wodurch sich RBD für Virtualisierungs- und öffentliche oder private Cloud-Computing-Umgebungen eignet.
Ceph File System (CephFS) ist ein Dateisystem als Dienst, das mit der Portable Operating System Interface (POSIX) kompatibel ist und Daten in einem Ceph-Speicher-Cluster wie Ceph-Blockspeicher und Ceph-Objektspeicher speichert. Mit CephFS werden Dateimetadaten in einem separaten RADOS-Pool von den Dateidaten gespeichert und über einen Cluster von Metadatenservern (MDS) mit anpassbarer Größe bereitgestellt, wodurch leistungsstarke Dienste ohne Überlastung des Speicher-Clusters gewährleistet werden. Das Ceph-Dateisystem bietet hohe Verfügbarkeit und Skalierbarkeit.
Ceph-Architektur und -Funktionsweise
Ceph basiert auf RADOS-Speicherknoten (Reliable Autonomic Distributed Object Store), die als intelligent, selbstheilend und selbstverwaltend beschrieben werden. Diese Knoten kommunizieren miteinander, um Daten dynamisch zu replizieren und neu zu verteilen. RADOS verwendet intelligente Knoten, um gespeicherte Daten zu sichern und Daten für Clients bereitzustellen, bei denen es sich um externe Programme handelt, die einen Ceph-Cluster zum Speichern und Replizieren von Daten verwenden. Ein Ceph-Speicher-Cluster auf RADOS-Basis kann Tausende von Speicherknoten enthalten.
Diese intelligente verteilte Lösung bietet eine flexible, skalierbare und zuverlässige Möglichkeit, Daten zu speichern und darauf zuzugreifen. Unternehmensnutzer können Daten bei Bedarf mithilfe von Ceph über einen Cluster verteilen, unabhängig vom Datenspeichertyp, da Ceph Speicher als Objekte innerhalb logischer Speicherpools in RADOS verwaltet.

Ceph Storage Cluster
Ein Ceph Storage Cluster ist eine Sammlung von Ceph-Monitoren, Ceph-Managern, Ceph MDS und Objektspeicher-Daemons (OSDs). Diese Elemente arbeiten zusammen, um Daten zu sichern und zu replizieren, die von Anwendungen, Ceph-Benutzern und Ceph-Clients verwendet werden. Die Cluster sind so konzipiert, dass sie auf handelsüblicher Hardware laufen und einen Algorithmus namens Controlled Replication Under Scalable Hashing (CRUSH) verwenden. Der Algorithmus stellt sicher, dass die Daten gleichmäßig über den Cluster verteilt sind und dass alle Cluster-Knoten Daten schnell und ohne zentrale Engpässe abrufen können.
Er wird auch von Ceph OSD und Cluster-Clients verwendet, um Informationen über Datenstandorte zu berechnen. Da Clients keine zentrale Nachschlagetabelle verwenden müssen, um diese Informationen zu finden, werden Engpässe vermieden.
Ceph-Clients können Daten auf vier Arten an einen Ceph-Speicher-Cluster übermitteln:
- Über ein Ceph-Blockgerät.
- Über ein Ceph OSD.
- Über CephFS.
- Über eine benutzerdefinierte Implementierung.
Um Daten in den Cluster zu schreiben oder daraus zu lesen, müssen Clients einen Ceph-Monitor kontaktieren und eine aktuelle Kopie der Cluster-Map erhalten. Unabhängig davon, wie die Daten eingehen, werden sie als RADOS OSD gespeichert. OSDs steuern Lese-, Schreib- und Replikationsvorgänge auf dem Speicherlaufwerk, während die Clients die Semantik der Objektdaten bestimmen.
Jeder Ceph-Cluster besteht aus vielen Arten von Daemons, darunter:
- Ceph-Monitor. Er verwaltet eine Karte (Map) des Cluster-Zustands, die Cluster-Map, die wiederum aus fünf Karten besteht: Monitor-Map, OSD-Map, Placement-Group-(PG-)Map, MDS-Map und CRUSH-Map. Der Monitor-Daemon stellt auch die Cluster-Zustandskarte für Ceph-Clients bereit, verfolgt ausgefallene und aktive Cluster-Knoten und verwaltet die Authentifizierung. Ein Ceph-Cluster kann mit einem einzigen Monitor funktionieren. Dadurch entsteht jedoch auch ein einzelner Fehlerpunkt, der verhindern kann, dass die Ceph-Clients Daten aus dem Cluster lesen oder in den Cluster schreiben.
- Ceph OSD. Es speichert Daten als Objekte in einem flachen Namensraum und nicht in einer Hierarchie von Verzeichnissen. Es überprüft auch seinen eigenen Status und den Status anderer OSDs und sendet diese Informationen an Ceph-Monitore zurück.
- Ceph-Manager. Er fungiert als Endpunkt für die Überwachung, einschließlich externer Überwachung, Orchestrierung und Plug-in-Module. Er verwaltet auch Cluster-Laufzeitmetriken und ermöglicht Dashboarding.
- MDS. Er verwaltet Dateimetadaten, wenn CephFS zur Bereitstellung von Dateidiensten verwendet wird.
- RADOS Gateway. Auch bekannt als Ceph Object Gateway, bietet er ein Gateway zur Amazon S3 RESTful API und zur OpenStack Swift API.
Alle Daemons können auf demselben Server-Set ausgeführt werden und Benutzer können je nach Bedarf direkt mit ihnen interagieren.
Vorteile von Ceph
Ceph ist eine hoch skalierbare softwaredefinierte Speicherlösung für moderne Unternehmen. Sie kann die Speicheranforderungen von Organisationen bei jedem Datenvolumen erfüllen, auch im Petabyte- oder Exabyte-Bereich. Ceph bietet außerdem fortschrittliche Funktionen für das Fehlermanagement, indem es die Entkopplung von Daten von einem physischen Speichergerät mithilfe einer Software-Abstraktionsschicht ermöglicht. Dies erhöht die Fehlertoleranz. Ceph eignet sich ideal für Microservices, containerisierte Workloads in der Cloud, OpenStack und Kubernetes sowie Big-Data-Anwendungen.
Ein weiterer Vorteil von Ceph ist, dass es mehrere Speichertypen innerhalb eines einheitlichen Systems unterstützt. Mit Schnittstellen für verschiedene Speichertypen in einem Cluster können Organisationen die Hardwarekosten minimieren und den Verwaltungsaufwand reduzieren.
Ceph teilt seine logischen Speicherpools in PGs auf, wobei jede PG für die Speicherung eines Objekts durch den CRUSH-Algorithmus bestimmt wird. Dies ermöglicht eine effiziente und nahezu unbegrenzte Skalierung sowie eine nahtlose Cluster-Neugewichtung und Fehlerbehebung.
Geschichte von Ceph
Sage Weil wird die Entwicklung von Ceph im Rahmen eines Promotionsprojekts an der University of California, Santa Cruz, zugeschrieben. Das Projekt war der Höhepunkt jahrelanger Forschung von Professoren und Doktoranden an der UC Santa Cruz. Der Name Ceph leitet sich von Cephalopoden ab, einer Klasse von Weichtieren, zu denen Tintenfische, Kraken und Kalmare gehören. Das Open-Source-Projekt Ceph wurde 2004 ins Leben gerufen und die Software wurde 2006 weltweit unter einer Open-Source-Lizenz verfügbar.
Nach Abschluss seiner Promotion arbeitete Weil mit Unterstützung von DreamHost, einem von ihm mitbegründeten Webhosting-Unternehmen mit Sitz in Los Angeles, und einem kleinen Team von Ingenieuren am Open-Source-Projekt Ceph. Im Jahr 2012 gründeten sie ein Startup namens Inktank Storage, um eine kommerziell unterstützte Version von Ceph für Unternehmensnutzer bereitzustellen.
Red Hat erwarb Inktank im Jahr 2014 für 175 Millionen US-Dollar. Weil übernahm die Rolle des Ceph-Hauptarchitekten bei Red Hat. Red Hat verkauft abonnementbasierte, kommerziell unterstützte Versionen von Ceph als Red Hat Ceph Storage. Diese Lösung ist als kombinierte Lösung mit Red Hat OpenStack Platform für Private-Cloud-Architekturen erhältlich und kann mit OpenStack kombiniert werden. Zu den Anbietern von Hardware für die Verwendung mit Ceph-Software gehören Dell, Cisco, Lenovo, SuperMicro und QCT.