3.11. Réparer un système de fichiers

Quand les nœuds échouent dans le système de fichiers monté, la journalisation du système de fichiers vous permet une récupération rapide. Cependant, si un périphérique de stockage perd en puissance ou est disconnecté physiquement, il peut y avoir une corruption de fichier. (la journalisation ne peut pas être utilisée pour une récupération suite à un échec de sous-système de stockage). Suite à ce type de corruption, vous pouvez rétablir le système de fichiers GFS2 par la commande fsck.gfs2.

Avertissement

La commande fsck.gfs2 ne doit exécuter que dans un système de fichiers qui est démonté sur tous les nœuds.

Note

Si vous avez déjà utilisé la commande gfs_fsck sur les systèmes de fichiers GFS, veuillez noter que la commande fsck.gfs2 est légèrement différente des versions plus anciennes de gfs_fsck des façons suivantes :
  • Appuyer sur les touches Ctrl+C tout en exécutant fsck.gfs2 interrompt le traitement et affiche une invitation vous demandant si vous souhaiter annuler la commande, ignorer le reste de la passe en cours, ou poursuivez vos activités de traitement.
  • Vous pouvez augmenter le niveau de verbosité en utilisant le marqueur -v. Ajouter un second marqueur -v augmente le niveau à nouveau.
  • Vous pouvez diminuer le niveau de verbosité en utilisant le marqueur -q. L'ajout d'un second marqueur -q augmente le niveau à nouveau.
  • L'option -n ouvre un système de fichiers en lecture-seule et répond no (non) à n'importe quelle requête automatiquement. L'option fournit un moyen de tester la commande pour qu'elle révèle des erreurs sans permettre pour autant à la commandefsck.gfs2 de prendre effet.
Référez-vous à la page man fsck.gfs2 pour obtenir des informations supplémentaires sur les autres options de commande.
Pour pouvoir exécuter la commande fsck.gfs2, vous avez besoin d'une mémoire systèmeau-delà de la mémoire utilisée pour le système d'exploitation et le noyau. Chaquebloc de mémoire dans le système de fichier GFS2 lui-même nécessite environ 5bits de mémoire supplémentaire, ou de 5/8 d'un octet. Donc, pour estimer le nombre d'octetsde mémoire, vous devrez exécuter la commande fsck.gfs2 survotre système de fichiers, vous devrez déterminer combien de blocs du système de fichiers sont contenus etmultiplier ce nombre par 5/8.
Par exemple, pour déterminer approximativement la quantité de mémoire nécessaire pour exécuter fsck.gfs2 sur un système de fichiers GFS2 de 16TB avec une taille de bloc de 4K, déterminer tout d'abord le nombre de blocs de mémoire contenus par le système de fichiers en divisant 16Tb par 4K :
 17592186044416 / 4096 = 4294967296
Comme ce système de fichiers contient 4294967296 blocs, multipliez ce nombre par 5/8 pour déterminer le nombre d'octets de mémoire requis :
4294967296 * 5/8 = 2684354560
Ce système de fichiers a besoin de 2.6Go approximativement pour pouvoir exécuter la commande fsck.gfs2. Notez que si la taille du bloc est de 1K, vous aurez besoin de quatre fois ce montant de mémoire pour exécuter la commande fsck.gfs2, soient environ 11Go.

Utilisation

fsck.gfs2 -y BlockDevice
-y
Le marqueur -y fait que toutes les questions auront pour réponse yes (oui). Avec le marqueur -y spécifié, la commande fsck.gfs2 ne vous invite pas à donner une réponse avant de procéder aux changements.
BlockDevice
Précise le périphérique en mode bloc où le système de fichiers GFS2 se situe.

Exemple

Dans cet exemple, le système de fichiers GFS2 résidant sur le périphérique en mode bloc /dev/testvol/testlv est réparé. Toutes les demandes de réparation sont automatiquement adressées par yes.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete