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 -n

Étape 3 : Voir le nom de l’image RBD (volumeHandle)

kubectl get pv -o yaml | grep volumeHandle

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 -n

Vérifier le PVC

kubectl describe pvc -n

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 -o yaml | grep volumeHandle

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 -n

Retour à la liste