Chapitre 7. Diagnostiquer et corriger les problèmes liés aux systèmes de fichiers GFS2
Les procédures suivantes décrivent certains problèmes courants liés à GFS2 et fournissent des informations sur la manière de les résoudre.
7.1. Système de fichiers GFS2 indisponible pour un nœud (fonction de retrait de GFS2)
La fonction GFS2 withdraw est une fonction d'intégrité des données du système de fichiers GFS2 qui empêche tout dommage potentiel du système de fichiers dû à un matériel ou à un logiciel noyau défectueux. Si le module du noyau GFS2 détecte une incohérence lors de l'utilisation d'un système de fichiers GFS2 sur un nœud de cluster donné, il se retire du système de fichiers, le rendant indisponible pour ce nœud jusqu'à ce qu'il soit démonté et remonté (ou que la machine détectant le problème soit redémarrée). Tous les autres systèmes de fichiers GFS2 montés restent pleinement fonctionnels sur ce nœud. (La fonction de retrait de GFS2 est moins grave qu'une panique du noyau, qui entraîne la clôture du nœud)
Les principales catégories d'incohérences pouvant entraîner un retrait de la GFS2 sont les suivantes :
- Erreur de cohérence des inodes
- Erreur de cohérence du groupe de ressources
- Erreur de cohérence du journal
- Erreur de cohérence des métadonnées du nombre magique
- Erreur de cohérence du type de métadonnées
Un exemple d'incohérence susceptible d'entraîner un retrait de GFS2 est un nombre de blocs incorrect pour l'inode d'un fichier. Lorsque GFS2 supprime un fichier, il supprime systématiquement tous les blocs de données et de métadonnées référencés par ce fichier. Il vérifie ensuite le nombre de blocs de l'inode. Si le nombre de blocs n'est pas égal à 1 (ce qui signifie qu'il ne reste que l'inode du disque lui-même), cela indique une incohérence du système de fichiers, car le nombre de blocs de l'inode ne correspond pas aux blocs réellement utilisés pour le fichier.
Dans de nombreux cas, le problème peut avoir été causé par un matériel défectueux (mémoire défectueuse, carte mère, HBA, lecteurs de disques, câbles, etc.) Il peut également être dû à un bogue du noyau (un autre module du noyau écrasant accidentellement la mémoire de GFS2) ou à une détérioration réelle du système de fichiers (causée par un bogue de GFS2).
Dans la plupart des cas, la meilleure façon de récupérer un système de fichiers GFS2 retiré est de redémarrer ou de clôturer le nœud. Le système de fichiers GFS2 retiré vous donnera l'occasion de déplacer les services vers un autre nœud du cluster. Une fois les services déplacés, vous pouvez redémarrer le nœud ou forcer une clôture à l'aide de cette commande.
pcs stonith fence node
N'essayez pas de démonter et de remonter le système de fichiers manuellement avec les commandes umount
et mount
. Vous devez utiliser la commande pcs
, sinon Pacemaker détectera que le service de système de fichiers a disparu et clôturera le nœud.
Le problème de cohérence à l'origine du retrait peut rendre impossible l'arrêt du service de système de fichiers, car il risque de bloquer le système.
Si le problème persiste après un remontage, vous devez arrêter le service de système de fichiers pour démonter le système de fichiers sur tous les nœuds du cluster, puis effectuer un contrôle du système de fichiers à l'aide de la commande fsck.gfs2
avant de redémarrer le service à l'aide de la procédure suivante.
- Redémarrer le nœud concerné.
Désactivez le service de système de fichiers non clonés dans Pacemaker pour démonter le système de fichiers de chaque nœud du cluster.
# pcs resource disable --wait=100 mydata_fs
À partir d'un nœud de la grappe, exécutez la commande
fsck.gfs2
sur le périphérique du système de fichiers pour vérifier et réparer tout dommage du système de fichiers.# fsck.gfs2 -y /dev/vg_mydata/mydata > /tmp/fsck.out
Remontez le système de fichiers GFS2 à partir de tous les nœuds en réactivant le service de système de fichiers :
# pcs resource enable --wait=100 mydata_fs
Vous pouvez remplacer la fonction de retrait de GFS2 en montant le système de fichiers avec l'option -o errors=panic
spécifiée dans le service du système de fichiers.
# pcs resource update mydata_fs “options=noatime,errors=panic”
Lorsque cette option est spécifiée, toutes les erreurs qui entraîneraient normalement le retrait du système provoquent une panique du noyau. Les communications du nœud sont alors interrompues, ce qui entraîne la clôture du nœud. Cette option est particulièrement utile pour les grappes qui sont laissées sans surveillance pendant de longues périodes sans contrôle ni intervention.
En interne, la fonction de retrait de GFS2 fonctionne en déconnectant le protocole de verrouillage afin de garantir que toutes les opérations ultérieures du système de fichiers se traduisent par des erreurs d'E/S. Par conséquent, lorsque le retrait se produit, il est normal de voir un certain nombre d'erreurs d'E/S provenant du périphérique de mappage signalées dans les journaux du système.