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>
3.5 KiB
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/loop0au 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 deceph-volume, reproduit sur Pacific et Reef). Contournement : ajouterrawen second argument séparé :ceph orch daemon add osd <hôte>:<périphérique> raw(la syntaxepériphérique,method=rawest 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
cephadmde version différente échoue (Container release reef != cephadm release pacific) : installer lecephadmdu dépôt officiel de la même version que l'image voulue, pas forcer avec--allow-mismatched-release.