Maintenance Ceph¶
Introduction¶
Opérations de maintenance courantes pour le cluster Ceph : monitoring, expansion, recovery.
Points à apprendre¶
Monitoring quotidien¶
# Status global
ceph -s
ceph health detail
# OSDs
ceph osd tree
ceph osd df
ceph osd stat
# Pools
ceph df
ceph osd pool stats
# PGs
ceph pg stat
ceph pg dump_stuck
Dashboard Ceph¶
# Activer le dashboard
ceph mgr module enable dashboard
# Créer un certificat self-signed
ceph dashboard create-self-signed-cert
# Créer un utilisateur admin
ceph dashboard ac-user-create admin -i password.txt administrator
# URL
ceph mgr services
# https://<mgr-host>:8443
Ajout d'un OSD¶
# Voir les disques disponibles
ceph orch device ls
# Ajouter un OSD
ceph orch daemon add osd <host>:/dev/sdX
# Ou ajouter tous les disques disponibles
ceph orch apply osd --all-available-devices
Retrait d'un OSD¶
# Marquer l'OSD out
ceph osd out osd.X
# Attendre le rebalancing
ceph -w
# Arrêter l'OSD
ceph orch daemon stop osd.X
# Retirer de la CRUSHmap
ceph osd crush remove osd.X
# Supprimer l'authentification
ceph auth del osd.X
# Supprimer l'OSD
ceph osd rm osd.X
Recovery après panne¶
# Si un OSD est down
ceph osd tree # Voir l'état
# Attendre la récupération automatique (30 min par défaut)
# Ou forcer le recovery
ceph osd recovery-unfound <pg_id>
# Si MON down, le quorum continue avec 2/3
ceph mon stat
Expansion du cluster¶
# Ajouter un nouvel hôte
ceph orch host add new-host 10.0.1.14
# Déployer services
ceph orch apply mon --placement="controller-1,controller-2,controller-3,new-host"
ceph orch apply osd new-host:/dev/vdb
Sauvegarde configuration Ceph¶
# Exporter la configuration
ceph config dump > ceph-config-backup.txt
# Exporter les keyrings
ceph auth export > ceph-auth-backup.txt
# Exporter la CRUSHmap
ceph osd getcrushmap -o crushmap.bin
crushtool -d crushmap.bin -o crushmap.txt
Scripts de monitoring¶
#!/bin/bash
# ceph-health-check.sh
echo "=== Ceph Health Check ==="
echo "Date: $(date)"
echo ""
echo "=== Status ==="
ceph -s
echo -e "\n=== OSD Tree ==="
ceph osd tree
echo -e "\n=== Pool Usage ==="
ceph df
echo -e "\n=== Slow Requests ==="
ceph daemon osd.0 dump_historic_slow_ops 2>/dev/null | head -20
echo -e "\n=== PG Status ==="
ceph pg stat
# Alertes
HEALTH=$(ceph health)
if [[ "$HEALTH" != "HEALTH_OK" ]]; then
echo "ALERTE: $HEALTH"
fi
Checkpoint¶
- Dashboard Ceph accessible
- Procédure d'ajout OSD maîtrisée
- Procédure de retrait OSD maîtrisée
- Scripts de monitoring en place
- Backups configuration Ceph