Docker-Volume-RBD ist meine Implementierung eines RBD (Ceph) Treibers für Docker. Der Betrieb erfolgt via Systemd Service oder native als Docker Plugin. Um die Aktualisierbarkeit einfacher zu gestalten, empfehlen wir die Installation und Konfiguration mit Hilfe meines Ansible Playbooks oder via Package Manager und dem einbinden des Repositories.
Um RBD Storage Images zu mounten, muss zuvor Ceph auf dem entsprechenden Server konfiguriert werden. Dies ist nicht bestandteil dieser kurzen Anleitung.
Die executable “docker-volume-rbd” erwartet die benötigte Konfiguration über Umgebungsvariablen.
LOG_LEVEL=1
LOG_LEVEL=3
RBD_CONF_POOL="docker"
RBD_CONF_CLUSTER=ceph
RBD_CONF_KEYRING_USER=client.docker
Wurde zuvor z.B. Rexray als S3 Volume Provider verwendet, enthalten die Buckets jeweils ein “data” Unterverzeichnis in dem die eigentlichen Daten liegen. Um dies zu Berücksichtigen, kann dieses Verzeichnis mit folgender Konfiguration angegeben werden:
RBD_CONF_MOUNTDIR=/data
Desweiteren können folgende Default Einstellung verändert werden:
RBD_CONF_DEVICE_MAP_ROOT=/dev/rbd
Anschließend kann der Service via “docker-volume-rbd” ausgeführt werden.