4.11. Cómo reparar un sistema de archivos

Cuando los nodos fallan con el sistema de archivos montado, el diario del sistema de archivos permite una recuperación rápida. Sin embargo, si un dispositivo de almacenamiento pierde el poder o es físicamente desconectado, el sistema de archivos puede corromperse (los diarios no pueden ser usados para recuperarse de las fallas del subsistema de almacenaje). Cuando ocurre este tipo de corrupción, puede recuperar el sistema de archivos GFS2 con el comando fsck.gfs2.

Importante

El comando fsck.gfs2 debe ser ejecutado solo en sistemas de archivos que están desmontados de todos los nodos.

Importante

No debe revisar el sistema de archivos GFS2 en el momento de arranque con el comando fsck.gfs2. El comando fsck.gfs2 no puede determinar en tiempo de arranque si el sistema de archivos es montado por otro nodo en el clúster. Ejecute el comando fsck.gfs2 de forma manual solo después de que el sistema arranque.
Para asegurarse de que el comando fsck.gfs2 no se ejecute en un sistema de archivos GFS2 en el momento de arranque, modifique el archivo /etc/fstab para que las dos últimas columnas para un punto de montaje de un sistema de archivos GFS2 muestren "0 0" en lugar de "1 1" (o cualquier otro número), como en el siguiente ejemplo:
/dev/VG12/lv_svr_home   /svr_home       gfs2     defaults,noatime,nodiratime,noquota     0 0

Nota

Si tiene experiencia previa con el uso del comando gfs_fsck en los sistemas de archivos GFS, observe que el comando fsck.gfs2 difiere de algunas versiones anteriores de gfs_fsck así:
  • Al presionar Ctrl+C mientras ejecuta fsck.gfs2 se interrumpe el procesamiento y muestra un indicador que le solicita si desea abortar el comando, ignorar el resto del paso actual o continuar el procesamiento.
  • Puede incrementar el nivel de verbosidad con la opción -v. Si se añade una segunda opción -v, se incrementará aún más el nivel de verbosidad.
  • Puede reducir el nivel de verbosidad con la opción -q. Si añade una segunda opción -q el nivel de verbosidad se reducirá de nuevo.
  • La opción -n abre un sistema de archivos para sólo lectura y responde automáticamente no a cualquier pregunta. Esta opción ofrece una manera de observar los errores sin permitir que el comando fsck.gfs2 surta efecto.
Consulte la página de manual fsck.gfs2 para obtener más información acerca de otras opciones de comando.
La ejecución del comando fsck.gfs2 requiere que la memoria del sistema esté por encima o más allá de la memoria utilizada para el sistema operativo y el kernel. Cada bloque de memoria en el sistema de archivos GFS2 requiere aproximadamente cinco bits de memoria adicional, o 5/8 de un byte. Por lo tanto, para estimar cuántos bytes de memoria necesitará para ejecutar el comando fsck.gfs2 en su sistema de archivos, determine cuántos bloques contiene el sistema de archivos y multiplíquelo por 5/8.
Por ejemplo, para determinar aproximadamente cuánta memoria se requiere para ejecutar el comando fsck.gfs2 en un sistema de archivos GFS2 que es de 16TB con un tamaño de bloque de 4K, divida 16TB por 4K para determinar cuántos bloques de memoria contiene el sistema de archivos:
 17592186044416 / 4096 = 4294967296
Puesto que el sistema de archivos contiene 4294967296 bloques, multiplique ese número por 5/8 para determinar cuántos bytes de memoria se requieren:
4294967296 * 5/8 = 2684354560
Este sistema de archivos aproximadamente requiere 2.6 GB de memoria libre para ejecutar el comando fsck.gfs2. Observe que si el tamaño del bloque fuera de 1K, la ejecución del comando fsck.gfs2 requeriría cuatro veces la memoria o aproximadamente 11 GB.

Uso

fsck.gfs2 -y BlockDevice
-y
La opción -y hace que todas las preguntas sean respondidas afirmativamente con yes. Con la opción -y especificada, el comando fsck.gfs2 no le preguntará nada antes de realizar los cambios.
BlockDevice
Especifica los dispositivos de bloque en donde residen los sistemas de archivo GFS2.

Ejemplo

En este ejemplo, el sistema de archivos GFS2 que reside en el dispositivo de bloque /dev/testvol/testlv es reparado. Todas las preguntas para reparar se responden automáticamente con 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