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!
zfs
zfsonlinux
Kevin Wood
la source
la source
Réponses:
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é.
la source
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 commencer un gommage, le laisser fonctionner pendant quelques minutes, et puis arrêtez aveczpool 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.
la source