Borrar un error ZFS permanente en un grupo saludable

20

Hoy fregué mi grupo y, una vez que terminó, noté que había un error que corrompía un archivo. No me importaba el archivo, así que lo eliminé. Desafortunadamente, el error permanece (ahora referenciado por una identificación hexadecimal y no un nombre de archivo), y no sé cómo borrarlo.

  • ¿Deberia estar preocupado? ¿Todavía no estoy realmente libre de este error?
  • ¿Puedo borrar el error? Si el archivo se ha ido, realmente no quiero ver este error en el futuro.

Como referencia, aquí están los comandos que emití y la salida, con anotaciones:

Comprobando estado

kevin@atlas:~$ sudo zpool status -v

pool: zstorage
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: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     0
    raidz1-0                                    ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        /zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause/03 Harmony One.mp3

Cambiar a root y eliminar el archivo: no lo necesito

kevin@atlas:~$ sudo -i

root@atlas:~# cd /zstorage/owncloud/kevin/files/Archives/Music/Kev\ Rev\ 7/graveyard/Old/Four\ Tet/Pause/

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# rm 03\ Harmony\ One.mp3

Comprobando el estado nuevamente

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool status -v

pool: zstorage
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: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     1
    raidz1-0                                    ONLINE       0     0     2
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        zstorage:<0x9f115>

UH oh. Tal vez puedo borrar el error?

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool clear zstorage

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool status -v

pool: zstorage
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: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     0
    raidz1-0                                    ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        zstorage:<0x9f115>

¡Esto no se ve bien!

Kevin Wood
fuente
¿Es el archivo parte de una instantánea (zfs list -t all) y, por lo tanto, se mantiene?
lundman

Respuestas:

14

Friegue su piscina nuevamente (si aún no lo ha hecho):

zpool scrub zstorage

Ese error le indica que el inodo <0x9f115> está dañado (al eliminar el archivo se rompió el mapeo del nombre de archivo-> inodo, por lo que solo está informando el inodo ahora). O algo todavía tiene el archivo abierto o los metadatos solo necesitan limpiarse (lo que debería hacer un exfoliante).

Para borrar el error si un exfoliante no es necesario, debe bajarse y ensuciarse con zdb, que no está documentado públicamente por Oracle (y mal documentado en otra parte), y en cualquier caso, probablemente indica algo más fundamentalmente incorrecto.

quadruplebucky
fuente
7

Sé que llego súper tarde a la fiesta, pero solo quería agregar que si los matorrales adicionales no solucionan problemas como este, en lugar de mirarlos, en lugar de zdbhacerlo, simplemente puede comenzar un matorral, dejarlo correr por un par de minutos y entonces detenlo con zpool scrub -s zstorage. Eso me funcionó para borrar los errores permanentes de los archivos cuando todos los errores de lectura / escritura / suma de verificación estaban en cero.

http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/

EDITAR: Después de tener que hacer esto varias veces, también me di cuenta de que el tiempo de duración de la ejecución del scrub afectará si funciona (dependiendo de qué bloques se ve al principio). Entonces, si no funciona al principio, intente algunas veces más y ajuste el tiempo de cuando lo detiene.

4oo4
fuente
Para mí, esto no funcionó: los errores permanentes todavía están allí, y los veré nuevamente si hago un exfoliante completo.
William Stein
3
Eso lo hizo por mí. Había hecho un exfoliante completo y los errores no se borraron, pero luego hice el inicio-> detener y está limpio. Gracias.
Stu
Ahora parece funcionar para mí (estoy usando la última versión de ZFS en Linux ahora).
William Stein