Skip to content

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