Gestión de sistemas de archivos ZFS en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Diciembre de 2014
 
 

Reparación de un archivo o directorio dañado

Si un archivo o directorio resultasen dañados, según el tipo de corrupción, el sistema podría seguir funcionando. Si en el sistema no hay copias de los datos de buena calidad, cualquier daño que tenga lugar será irreparable. Si los datos son importantes, la única alternativa es recuperarlos a partir de una copia de seguridad. Aun así, esta situación quizá se pueda solventar sin tener que restaurar todo el grupo.

Si se ha dañado un bloque de datos de archivo, el archivo se puede eliminar sin problemas; de este modo, el error desaparece del sistema. Utilice el comando zpool status –v para ver en pantalla una lista con nombres de archivos que tienen errores constantes. Por ejemplo:

# zpool status tank -v
pool: tank
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption.  Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://support.oracle.com/msg/ZFS-8000-8A
config:

NAME                     STATE     READ WRITE CKSUM
tank                     ONLINE       4     0     0
c0t5000C500335E106Bd0    ONLINE       0     0     0
c0t5000C500335FC3E7d0    ONLINE       4     0     0

errors: Permanent errors have been detected in the following files:
/tank/file.1
/tank/file.2

La lista de nombres de archivos con errores constantes se puede describir del modo siguiente:

  • Si se busca la ruta de acceso del archivo y se monta el conjunto de datos, se muestra en pantalla toda la ruta del archivo. Por ejemplo:

    /monkey/a.txt
  • Si se busca la ruta de acceso del archivo pero el conjunto de datos no se monta, en pantalla se muestra el nombre del conjunto de datos sin una barra inclinada (/), seguido de la ruta de acceso del conjunto de datos al archivo. Por ejemplo:

    monkey/ghost/e.txt
  • Si no se puede trasladar correctamente el número de objeto a una ruta de archivo, ya sea por un error o porque el objeto no tiene asociada ninguna ruta de archivo auténtica, como en el caso de dnode_t, en pantalla se muestra nombre del conjunto de datos seguido del número de objeto. Por ejemplo:

    monkey/dnode:<0x0>
  • Si se daña un objeto del conjunto de metaobjetos, en pantalla se muestra un etiqueta especial de <metadata>, seguida del número de objeto.

Puede intentar resolver más los errores menores de datos mediante la limpieza de la agrupación y de los errores de la agrupación en varias iteraciones. Si la primera limpieza e iteración no resuelvan los archivos dañados, ejecútelos nuevamente. Por ejemplo:

# zpool scrub tank
# zpool clear tank

Si los daños se dan en un directorio o en los metadatos de un archivo, la única alternativa es colocar el archivo en otra ubicación. Puede colocar cualquier archivo o directorio en una ubicación menos apropiada para poder restaurar el objeto original.

Reparación de datos dañados con referencias de varios bloques

Si un sistema de archivos dañado tiene datos dañados con referencias de varios bloques (por ejemplo, instantáneas), el comando zpool status –v no puede mostrar todas las rutas de datos dañadas. El informe actual de zpool status sobre datos dañados está limitado por la cantidad de daños de metadatos y si algún bloque se ha vuelto a utilizar después de que el comando zpool status se ejecuta. Los bloques desduplicados hacen que el informe de todos los datos dañados sea incluso más complicado.

Si tiene datos dañados y el comando zpool status –v identifica que los datos de instantáneas están afectados, considere la posibilidad de ejecutar el siguiente comando para identificar otras rutas dañadas.