Un cluster Ceph passe en HEALTH_WARN pour des raisons qui vont du bénin au
critique, et rien dans la couleur du voyant ne permet de les distinguer. Un rééquilibrage normal
produit le même avertissement qu'un pool qui va bientôt bloquer les écritures. Cette page sert à
faire ce tri, et à savoir quand attendre plutôt qu'agir.
Le fonctionnement général de Ceph et son installation sont traités au chapitre stockage du guide cluster. Ici, on part du principe que la plateforme existe et qu'elle vient de passer au jaune.
01Lire l'état correctement
La commande d'état générale résume, elle n'explique pas. C'est le détail qu'il faut demander, et c'est la première chose à faire avant toute hypothèse.
# le resume : etat, services, donnees, activite en cours ceph -s # le detail : un code et une explication par probleme ceph health detail
Chaque problème porte un code en majuscules, par exemple PG_DEGRADED ou
OSD_NEARFULL. Ce code est la clé : il se cherche, il se documente, et il permet de
construire une alerte précise plutôt qu'une alerte sur la couleur générale.
ceph osd tree # topologie, OSD en panne ou sortis ceph osd df # remplissage et equilibre par OSD ceph df # espace par pool, espace reellement disponible ceph osd perf # latences, le signal precoce d'un disque fatigue ceph pg stat # etat global des groupes de placement ceph crash ls # incidents de demons recemment enregistres
Le résumé indique s'il se passe quelque chose : reconstruction, rééquilibrage, nettoyage. Un avertissement accompagné d'une activité en cours et de compteurs qui progressent est généralement un avertissement transitoire. Un avertissement sans activité, avec des compteurs figés, demande une intervention.
02Les messages courants, traduits
| Code | Ce que cela veut dire | Gravité | Conduite à tenir |
|---|---|---|---|
| OSD_DOWN | Un OSD ne répond plus | Élevée | Disque, démon ou noeud, voir paragraphe 07 |
| OSD_HOST_DOWN | Tous les OSD d'un noeud sont absents | Élevée | Le noeud est tombé ou isolé |
| PG_DEGRADED | Des données ont moins de copies que prévu | Moyenne | Normal pendant une reconstruction |
| PG_UNDERSIZED | Des groupes tournent avec trop peu d'OSD | Moyenne | Suite logique d'un OSD absent |
| PG_AVAILABILITY | Des données sont momentanément inaccessibles | Élevée | Le service est touché, agir |
| OSDMAP_FLAGS | Un drapeau de maintenance est posé | Moyenne | Souvent un noout oublié |
| OSD_NEARFULL | Un OSD dépasse 85 % de remplissage | Moyenne | Voir paragraphe 05 |
| OSD_BACKFILLFULL | Trop plein pour accueillir un rééquilibrage | Élevée | La reconstruction est bloquée |
| OSD_FULL | Écritures bloquées | Critique | Le service est arrêté |
| POOL_NEARFULL | Un pool approche de sa limite | Moyenne | Capacité à planifier |
| MON_CLOCK_SKEW | Les horloges des moniteurs divergent | Moyenne | Synchronisation du temps |
| MON_DISK_LOW | Peu d'espace sur le disque d'un moniteur | Moyenne | Libérer la partition système |
| PG_NOT_DEEP_SCRUBBED | Vérification approfondie en retard | Faible | Fenêtre de nettoyage trop étroite |
| PG_NOT_SCRUBBED | Vérification simple en retard | Faible | Même cause |
| OSD_SCRUB_ERRORS | Incohérences détectées | Élevée | Voir paragraphe 06 |
| SLOW_OPS | Des requêtes mettent trop longtemps | Moyenne | Disque fatigué ou réseau saturé |
| TOO_FEW_PGS | Trop peu de groupes pour la volumétrie | Faible | Laisser l'ajustement automatique agir |
| POOL_NO_REDUNDANCY | Un pool sans copie de secours | Élevée | Corriger la taille du pool |
| RECENT_CRASH | Un démon s'est arrêté anormalement | Moyenne | Lire le rapport avant d'archiver |
| DAEMON_OLD_VERSION | Des démons en versions différentes | Moyenne | Montée de version inachevée |
| BLUEFS_SPILLOVER | Métadonnées débordant sur le disque lent | Moyenne | Dimensionnement à revoir |
03Comprendre les états de groupes de placement
Un groupe de placement est un lot de données que Ceph déplace et répare comme un tout. Son état
se lit comme une addition de qualificatifs : active+clean est l'état nominal, et tout
le reste décrit ce qui manque ou ce qui est en cours.
| État | Signification | Faut-il s'inquiéter |
|---|---|---|
| active+clean | Toutes les copies présentes et à jour | Non, c'est la cible |
| degraded | Il manque au moins une copie | Non si le compteur baisse |
| undersized | Moins d'OSD que la taille demandée | Non si une reconstruction tourne |
| peering | Les OSD se mettent d'accord sur l'état | Non, transitoire et bref |
| backfilling | Recopie massive en cours | Non, c'est le travail normal |
| recovering | Rattrapage des écritures manquées | Non |
| remapped | Les données changent d'emplacement | Non |
| inconsistent | Les copies ne concordent pas | Oui, voir paragraphe 06 |
| incomplete | Historique insuffisant pour décider | Oui, risque de perte |
| stale | Plus de nouvelles de l'OSD responsable | Oui, un OSD est muet |
| down | Données indisponibles | Oui, service touché |
# repartition par etat ceph pg stat ceph pg dump pgs_brief | awk '{print $2}' | sort | uniq -c | sort -rn # les groupes reellement bloques ceph pg dump_stuck inactive ceph pg dump_stuck stale ceph pg dump_stuck undersized
04Ce qui se règle tout seul
La majorité des avertissements disparaissent sans intervention. Les reconnaître évite de déclencher une manoeuvre inutile qui, elle, peut faire des dégâts.
- Un rééquilibrage après ajout ou retrait d'un disque. Les compteurs de groupes dégradés baissent régulièrement : il n'y a rien à faire qu'attendre.
- Un redémarrage de noeud planifié, drapeau
nooutposé. L'état jaune est attendu, et il revient au vert au retour du noeud. - Un retard de vérification après plusieurs jours d'activité intense : la fenêtre de nettoyage n'a pas suffi, elle rattrapera.
- Un ajustement du nombre de groupes de placement déclenché par la croissance du pool.
# le nombre d'objets degrades doit diminuer de minute en minute
watch -n 30 'ceph -s | grep -E "degraded|misplaced|recovery"'
Si les compteurs ne bougent plus pendant une demi-heure, ce n'est plus une reconstruction en cours mais une reconstruction bloquée. Les causes habituelles sont un OSD trop plein pour accueillir les données, un second OSD tombé dans le même domaine de défaillance, ou un réseau saturé. Passez alors au paragraphe 07.
05Remplissage et seuils
Ceph protège les données en refusant d'écrire plutôt qu'en risquant une perte. Les seuils de remplissage ne sont donc pas des alertes de confort : ce sont les paliers qui conduisent à l'arrêt du service.
| Seuil | Valeur par défaut | Effet |
|---|---|---|
| nearfull | 85 % | Avertissement, rien n'est bloqué |
| backfillfull | 90 % | Les rééquilibrages s'arrêtent |
| full | 95 % | Les écritures sont refusées |
Ces seuils sont des filets de sécurité, pas des objectifs. La limite utile est la capacité à reconstruire après la perte d'un noeud : les données du noeud perdu se répartissent sur les survivants. Au-delà de 70 à 75 % d'occupation sur un cluster de trois noeuds, cette reconstruction peut remplir les OSD restants et bloquer les écritures, ce qui transforme un incident ordinaire en panne complète.
# espace par pool et espace reellement disponible ceph df # ecart de remplissage entre OSD : au-dela de 15 points, CRUSH est desequilibre ceph osd df | sort -k17 -n # reequilibrage automatique, souvent la bonne reponse ceph balancer status ceph balancer mode upmap ceph balancer on
Si l'espace manque réellement, les seules sorties sont d'ajouter des OSD, de supprimer des données, ou de réduire la rétention des sauvegardes hébergées sur le pool. Relever les seuils ne fait que repousser le mur de quelques jours, et c'est une très mauvaise idée.
06Erreurs de cohérence et réparation
Une erreur de cohérence signifie que les copies d'un même groupe ne concordent pas. Ceph l'a détectée pendant une vérification approfondie, ce qui est précisément à quoi sert cette vérification.
# quels groupes sont concernes ceph health detail | grep -i inconsistent rados list-inconsistent-pg vm-data # le detail des objets en cause rados list-inconsistent-obj 2.1a --format=json-pretty
La commande de réparation fait reprendre aux copies divergentes le contenu de la copie principale. C'est le bon geste quand une seule copie est fautive sur un disque identifié. Mais une erreur de cohérence est presque toujours le symptôme d'un disque qui se dégrade : regardez les compteurs SMART et les journaux du noeud concerné avant de réparer, sous peine de réparer en boucle un disque qu'il faut remplacer.
ceph pg repair 2.1a
ceph -w
# verifier l'etat du disque suspect, sur le noeud concerne
smartctl -a /dev/nvme2n1
dmesg -T | grep -iE 'error|medium|reset'
Si les erreurs reviennent sur le même OSD, le disque est à remplacer : la procédure est détaillée dans la page remplacer un disque défaillant.
07Ce qui exige une action immédiate
| Situation | Pourquoi c'est urgent | Premier geste |
|---|---|---|
| Deux OSD absents dans le même domaine de défaillance | Il ne reste qu'une copie | Ne rien redémarrer, stabiliser |
| Écritures refusées pour cause de remplissage | Le service est arrêté | Libérer de l'espace, voir 05 |
| Groupes inactifs ou indisponibles | Des données sont inaccessibles | Identifier les OSD responsables |
| Groupes incomplets | Risque de perte définitive | Ne pas détruire d'OSD, chercher de l'aide |
| Reconstruction figée | La redondance ne revient pas | Chercher le blocage, voir 04 |
| Erreurs de cohérence répétées | Un disque se dégrade | SMART, puis remplacement |
Redémarrer les démons ou les noeuds pour voir si ça s'arrange. Sur un cluster déjà dégradé, chaque redémarrage retire temporairement une copie supplémentaire, et peut faire passer un groupe de données sous le seuil de sécurité. Diagnostiquez d'abord, agissez ensuite, et ne détruisez jamais un OSD sans que Ceph ait confirmé que c'est sans danger.
08Liste de contrôle
| Étape | Action | Commande |
|---|---|---|
| Lire | Obtenir le code précis, pas la couleur | ceph health detail |
| Lire | Vérifier s'il se passe quelque chose | ceph -s |
| Trier | Transitoire ou bloqué : les compteurs bougent-ils | watch ceph -s |
| Trier | Un OSD ou un noeud manque-t-il | ceph osd tree |
| Capacité | Remplissage et équilibre entre OSD | ceph df, ceph osd df |
| Capacité | Marge de reconstruction suffisante | Moins de 75 % d'occupation |
| Matériel | Latences anormales sur un OSD | ceph osd perf |
| Matériel | État SMART du disque suspect | smartctl -a |
| Drapeaux | Aucun drapeau de maintenance oublié | ceph osd stat |
| Incidents | Rapports de plantage lus avant archivage | ceph crash ls |
| Après | Retour à HEALTH_OK confirmé | ceph -s |
| Après | Cause consignée dans le dossier | Document d'exploitation |
Le jaune n'est pas une alarme, c'est une information. La question utile n'est pas de savoir si le cluster est en avertissement, mais si l'avertissement progresse vers le vert ou s'il est figé. Un avertissement qui dure plus d'une heure sans activité visible mérite qu'on l'ouvre ; un avertissement accompagné d'une reconstruction qui avance mérite surtout qu'on le laisse travailler.
Une plateforme Proxmox a exploiter sereinement
Nous exploitons des clusters Proxmox VE et Ceph en production pour des PME, des structures reglementees et des collectivites. Remplacement de noeud, montee de version, reprise d'une plateforme existante : nous intervenons au forfait comme en astreinte.