Fichier : ceph_debug_deblocage.txt
Description : Commandes Ceph utiles + débloquage PVC/PV RBD
Auteur :
Date : $(date)
1️⃣ — Vérifier l’état du cluster Ceph
ceph -w # Vue en temps réel du cluster ceph health detail # État de santé détaillé ceph osd df # Espace disque utilisé par OSD ceph osd find 0 # Trouver où se situe un OSD ceph osd pool ls detail # Détails de tous les pools ceph osd pool get rbd all # Détails du pool rbd
2️⃣ — Trouver l’image RBD associée à un PVC/PV Kubernetes
Étape 1 : Lister les PVC dans le namespace
kubectl get pvc -A
Étape 2 : Identifier le PV correspondant à ton PVC
kubectl get pvc
Étape 3 : Voir le nom de l’image RBD (volumeHandle)
kubectl get pv
Exemple de sortie :
volumeHandle: csi-vol-5678abcd-90ef-ghij-klmn-1234567890op
==> Le nom de l’image RBD est : csi-vol-5678abcd-90ef-ghij-klmn-1234567890op
Étape 4 : Vérifier si cette image existe dans le pool Ceph
rbd ls -p rbd
3️⃣ — Vérifier et débloquer une image RBD verrouillée
Lister les verrous (locks)
rbd lock list -p rbd
Exemple :
There is 1 exclusive lock on this image.
Locker: client.12345
ID: auto 12345
Address: 10.0.0.12:0/123456
Supprimer le lock (ATTENTION : seulement si le pod est arrêté)
rbd lock remove -p rbd
Ex :
rbd lock remove -p rbd csi-vol-5678abcd-90ef-ghij-klmn-1234567890op auto 12345
Vérifier ensuite que le lock n’existe plus :
rbd lock list -p rbd
4️⃣ — Vérification côté Kubernetes
Supprimer le Pod s’il reste bloqué sur "ContainerCreating"
kubectl delete pod
Vérifier le PVC
kubectl describe pvc
Le Pod sera recréé automatiquement si un Deployment/StatefulSet le gère.
5️⃣ — Outils de diagnostic Ceph
ceph pg dump | grep pgid ceph pg 0.1a query ceph pg scrub 0.1a ceph pg deep-scrub 0.1a ceph pg repair 0.1a
6️⃣ — OSD Management
ceph osd tree ceph osd out 0 ceph osd in 0 sudo systemctl stop ceph-osd@1.service sudo systemctl start ceph-osd@1.service
7️⃣ — Suppression d’un OSD
ceph osd out osd.1 sudo systemctl stop ceph-osd@1.service ceph osd crush remove osd.1 ceph auth del osd.1 ceph osd rm osd.1
8️⃣ — Commandes CRUSH Map
ceph osd getcrushmap -o map.bin crushtool -d map.bin -o map.txt crushtool -c map.txt -o map.bin ceph osd setcrushmap -i map.bin
9️⃣ — Flags de cluster Ceph (maintenance)
ceph osd set noout ceph osd unset noout ceph osd set nobackfill ceph osd unset nobackfill ceph osd set norecover ceph osd unset norecover
🔟 — Rappels importants
⚠️ Si tu supprimes un lock, ne JAMAIS le faire sur une image utilisée !
⚠️ Toujours vérifier que le pod n’est plus attaché avant un rbd lock remove.
⚠️ Supprimer un lock débloque le volume sans perdre les données.
⚠️ Si le volume est corrompu, un scrub ou deep-scrub peut corriger l’état.
🧩 Exemple complet de déblocage PVC Ceph RBD
1. Identifier PVC
kubectl get pvc -A
2. Trouver PV lié
kubectl get pv
3. Aller sur le Ceph admin node
rbd lock list -p rbd
4. Supprimer le lock bloquant
rbd lock remove -p rbd
5. Vérifier l’état
rbd info -p rbd
6. Redémarrer le pod
kubectl delete pod