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.
- https://www.proxmox.com/de/training/video-tutorials/item/install-ceph-server-on-proxmox-ve
- https://medium.com/@qwonkiwow/setting-up-a-proxmox-ve-cluster-with-ceph-shared-storage-e7a4f652f321
- https://pve.proxmox.com/pve-docs/chapter-pveceph.html#pve_ceph_device_classes
- https://access.redhat.com/solutions/3341491
- https://docs.ceph.com/en/latest/rados/operations/add-or-rm-osds/