Paillasse/docs/runbooks/ceph.md
Adam Belkacemi cdf79d2823 ajoute une démo Ceph mono-serveur (bloc C, premier chantier)
Cluster cephadm minimal (1 mon, 1 mgr, 1 OSD sur fichier épars),
vérifié par une vraie écriture/lecture d'objet. Pas branché à
OpenStack (Cinder désactivé sur ce déploiement) : démo de
compréhension avant le vrai cluster au 2e serveur. SSH via adam, pas
root, pour ne pas affaiblir le durcissement SSH de la semaine 1.

Découverte en vérifiant l'état réel avant d'agir : le serveur a 31 Go
de RAM et 230 Go RAID 1, pas 64 Go / 2x500 Go comme écrit dans le
CLAUDE.md — noté en dette, démo faite quand même sous surveillance de
la RAM après accord d'Adam.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-14 12:20:48 +02:00

3.5 KiB
Raw Blame History

Runbook — Ceph (démo mono-serveur)

Démo du bloc C du CLAUDE.md : comprendre et savoir opérer Ceph, avant le « vrai cluster » prévu au 2ᵉ serveur. Pas branché à OpenStack (Cinder est désactivé sur ce déploiement — enable_cinder: "no"), pas de réplication (1 seul OSD), pas de stockage réel de l'application. Voir ADR 0007 pour le détail des choix et des contournements de bugs.

État attendu

Composant Attendu
mon 1, sd-124443
mgr 1 actif + 1 standby
osd 1, up et in, mode raw sur /dev/loop0
Pools 0 en temps normal (démo seulement, rien de permanent stocké)
sudo /usr/sbin/cephadm shell -- ceph -s

HEALTH_WARN est normal et attendu (1 seul OSD < taille de réplication par défaut) — pas une alerte à traiter.

Où sont les choses

  • Config et clés : /etc/ceph/ceph.conf, /etc/ceph/ceph.client.admin.keyring.
  • Fichier épars de l'OSD (20 Go, alloué à l'usage réel) : /var/lib/ceph-osd-demo/osd0.img.
  • Service qui réattache ce fichier en /dev/loop0 au démarrage : /etc/systemd/system/ceph-osd-demo-loop.service (copie suivie dans le dépôt : infra/ceph/ceph-osd-demo-loop.service, pas encore déployé par Ansible).
  • cephadm gère les daemons comme des conteneurs podman (sudo podman ps), pas docker (utilisé par Kolla et le portail) — deux runtimes de conteneurs coexistent sur ce serveur, sans conflit.

Commandes utiles

# Santé du cluster
sudo /usr/sbin/cephadm shell -- ceph -s

# Lister les daemons
sudo /usr/sbin/cephadm ls

# RAM : à surveiller avant/après toute action Ceph (colonne "available",
# pas "free" — c'est elle qui compte vraiment)
free -h

Pourquoi RAM et disque sont serrés

Le serveur a réellement 31 Go de RAM et 230 Go en RAID 1 (pas 64 Go / 2×500 Go comme décrit dans le CLAUDE.md — à corriger si une vraie mise à jour matérielle est faite). OpenStack (Kolla, MariaDB Galera, Nova/qemu) et le portail Laravel tournent déjà sur cette même machine. Avant d'ajouter quoi que ce soit à ce cluster (dashboard, supervision, un 2ᵉ OSD), vérifier free -h : viser au moins 2 Go « disponibles » de marge.

Nettoyer entièrement la démo (si besoin de récupérer la RAM/le disque)

ssh paillasse
sudo /usr/sbin/cephadm ls   # récupérer le fsid
sudo /usr/sbin/cephadm rm-cluster --fsid <fsid> --force
sudo losetup -d /dev/loop0
sudo systemctl disable --now ceph-osd-demo-loop.service
sudo rm /etc/systemd/system/ceph-osd-demo-loop.service
sudo rm -rf /var/lib/ceph-osd-demo
sudo rm /etc/apt/sources.list.d/ceph.list /usr/share/keyrings/ceph.gpg
sudo apt-get update

Écueils rencontrés (pour ne pas les redécouvrir)

  • ceph orch daemon add osd <hôte>:<périphérique> plante sur un périphérique loop (IndexError, bug de classification de ceph-volume, reproduit sur Pacific et Reef). Contournement : ajouter raw en second argument séparé : ceph orch daemon add osd <hôte>:<périphérique> raw (la syntaxe périphérique,method=raw est refusée par la CLI).
  • cephadm veut du SSH root même pour gérer l'hôte local — incompatible avec PermitRootLogin no. Toujours bootstrapper avec --ssh-user adam.
  • Mélanger une image Ceph et un cephadm de version différente échoue (Container release reef != cephadm release pacific) : installer le cephadm du dépôt officiel de la même version que l'image voulue, pas forcer avec --allow-mismatched-release.