web-dev-qa-db-fra.com

Supprimer une erreur ZFS permanente dans un pool sain

J'ai nettoyé ma piscine aujourd'hui, et une fois le nettoyage terminé, j'ai remarqué qu'une erreur avait corrompu un fichier. Je ne me souciais pas du fichier, alors je l'ai supprimé. Malheureusement, l'erreur persiste (désormais référencée par un ID hexadécimal et non par un nom de fichier), et je ne sais pas comment l'effacer.

  • Devrais-je m'inquiéter? Suis-je pas encore vraiment libre de cette erreur?
  • Puis-je effacer l'erreur? Si le fichier a disparu, je ne veux pas vraiment voir cette erreur à l'avenir.

Pour référence, voici les commandes que j'ai émises et la sortie, avec des annotations:

Vérification de l'état

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

Passer à root et supprimer le fichier - je n'en ai pas besoin

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

Vérification de l'état à nouvea

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>

h oh. Peut-être que je peux effacer l'erreur?

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>

Cela n'a pas l'air bien!

21
Kevin Wood

Frottez à nouveau votre piscine (si vous ne l'avez pas déjà fait):

zpool scrub zstorage

Cette erreur vous indique que l'inode <0x9f115> est corrompu (la suppression du fichier a brisé le mappage du nom de fichier-> inode, donc il ne fait que signaler l'inode maintenant). Soit quelque chose a toujours le fichier ouvert, soit les métadonnées doivent juste être nettoyées (ce qu'un scrub devrait faire).

Pour effacer l'erreur si un scrub n'est pas nécessaire, vous devez vous familiariser avec zdb, qui n'est pas publiquement documenté par Oracle (et mal documenté ailleurs) - et en tout cas indique probablement quelque chose de plus fondamentalement erroné.

16
quadruplebucky

Je sais que je suis super en retard à la fête, mais je voulais juste ajouter que si les gommages supplémentaires ne résolvent pas des problèmes comme celui-ci, au lieu de regarder zdb, vous pouvez simplement démarrer un gommage, laissez-le s'exécuter pendant quelques minutes, puis arrêtez-le avec zpool scrub -s zstorage. Cela m'a aidé à effacer les erreurs permanentes pour les fichiers lorsque toutes les erreurs de lecture/écriture/somme de contrôle étaient à zéro.

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

EDIT: Après avoir fait cela plusieurs fois, je me suis également rendu compte que le temps pendant lequel vous laissez le scrub fonctionner affectera son fonctionnement (selon quels blocs il fait regarde en premier). Donc, si cela ne fonctionne pas au début, essayez à plusieurs reprises et ajustez le moment où vous l'arrêtez.

8
4oo4