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.