Supprimer une erreur ZFS permanente dans un pool sain

20

J'ai nettoyé ma piscine aujourd'hui, et une fois le nettoyage terminé, j'ai remarqué qu'une erreur avait corrompu un fichier. Je me fichais 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 du statut

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 du statut à nouveau

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>

Euh 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>

Ça n'a pas l'air bien!

Kevin Wood
la source
Le fichier fait-il partie d'un instantané (liste zfs -t tout) et est-il donc conservé?
lundman

Réponses:

14

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 ou les métadonnées doivent juste être nettoyées (ce qu'un scrub devrait faire).

Pour effacer l'erreur si un gommage 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é.

quadruplebucky
la source
7

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, zdbvous pouvez simplement commencer un gommage, le laisser fonctionner pendant quelques minutes, et puis arrêtez 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 dû le faire plusieurs fois, j'ai également réalisé que le moment de la durée de l'exécution du scrub affectera son fonctionnement (en fonction des blocs qu'il regarde en premier). Donc, si cela ne fonctionne pas au début, essayez à plusieurs reprises et ajustez le moment où vous l'arrêtez.

4oo4
la source
Pour moi, cela n'a pas fonctionné - les erreurs permanentes sont toujours là, et je les reverrai si je fais un gommage complet.
William Stein
3
Ça l'a fait pour moi. J'avais fait un gommage complet et les erreurs n'étaient pas effacées, mais ensuite j'ai fait le démarrage-> arrêt et c'est propre. Merci.
Stu
Maintenant, cela semble fonctionner pour moi (j'utilise maintenant la dernière version de ZFS sur linux).
William Stein