services

Ceph

Verteiltes Dateisystem

Ceph ist ein verteilter Objektspeicher für Linux.

Ceph benötigt im Gegensatz zu Gluster ganze Platten. Theoretisch könnte man wohl auch Partitionen angeben, das ist aber ein ziemlicher Hack und deshalb lassen wir das lieber.

Objektspeicher bedeutet, dass die Festplatten nicht mit einem klassischen Dateisystem arbeiten, sondern mit einer Datenbank und einem Index. Laienhaft werden dabei die Objekte als Dateien oder Dateiblöcke betrachtet, in der Datenbank abgelegt.

Ceph mit Proxmox

Auf den Proxmox Hosts ist Ceph bereits in Vorbereitung vorhanden. Als Grundvoraussetzung gilt, dass die Proxmox in einem Cluster verbunden sind und sich gegenseitig kennen. Das sieht man daran, dass die Config im Corosync Ordner unter /etc/pve angelegt wird. Dieser wird in einem Proxmox Cluster über alle Knoten immer synchron gehalten.

Für jeden Host muss man

pveceph install

ausführen. Damit wird das Proxmox Ceph Debian Repository konfiguriert und die Ceph Pakete installiert.

Im Folgenden muss man Ceph initialisieren. Das geht mit

pveceph init -network 10.255.255.0/24 -cluster-network 10.255.255.0/24

Dies muss man auf dem ersten Host machen. Dadurch wird unter /etc/pve/ceph.conf eine Konfiguration im Corosync System angelegt, auf die in /etc/ceph/ceph.conf ein Link erzeugt wird.

Auf allen anderen Nodes reicht ein

pveceph init

Wichtig ist noch der Keyring, der auch mit dem Init erzeugt wird und auf allen Nodes der gleiche sein muss.

Pro Proxmox Host kann man dann noch einen Monitor erzeugen, mit:

pveceph createmon

Wobei das veraltet scheint. Die Doku spricht davon, aber in der CLI heißt es pveceph mon create.

Führt man den Befehl aus, wird auf dem dazugehörigen System ein Dienst gestartet, der auf Port 6789 horcht.

Analog sollte man auch mindestens einen Manager anlegen mit pveceph mgr create. Auf dem ersten Knoten, bei dem ein Monitor angelegt wird, wird automatisch auch ein Manager angelegt. Alle weiteren sind dann nur im Standby relevant.

Erkenntnis - bei Proxmox/Ceph kann man nur ganze Platten hinzufügen. Das ist schwierig, wenn das Basissystem nur aus einem RAID-1 besteht, auf dem auch das OS liegt. Im Falle einer NVMe plus 2 SATA könnte man Ceph so aufbauen, dass es über die SATA Platten läuft.

Linksammlung

Hier finden sich einige nützliche und interessante Links an, die sich im Laufe der Recherche angesammelt haben.