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áticamenteno
a cualquier pregunta. Esta opción ofrece una manera de observar los errores sin permitir que el comandofsck.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 conyes
. Con la opción-y
especificada, el comandofsck.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