Ich habe heute meinen Pool gesäubert und nach Abschluss des Schrubbens festgestellt, dass ein Fehler aufgetreten ist, der eine Datei beschädigt hat. Die Datei war mir egal, deshalb habe ich sie gelöscht. Leider bleibt der Fehler bestehen (jetzt referenziert durch eine hexadezimale ID und keinen Dateinamen), und ich weiß nicht, wie ich ihn beseitigen soll.
- Sollte ich besorgt sein? Bin ich noch nicht wirklich frei von diesem Fehler?
- Kann ich den Fehler beheben? Wenn die Datei nicht mehr vorhanden ist, möchte ich diesen Fehler in Zukunft nicht mehr sehen.
Als Referenz sind hier die Befehle, die ich ausgegeben habe, und die Ausgabe mit Anmerkungen:
Status überprüfen
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
Zum Root wechseln und die Datei löschen - ich brauche sie nicht
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
Status erneut prüfen
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>
Oh oh. Vielleicht kann ich den Fehler beheben?
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>
Das sieht nicht gut aus!
zfs
zfsonlinux
Kevin Wood
quelle
quelle
Antworten:
Schrubben Sie Ihren Pool erneut (falls noch nicht geschehen):
zpool scrub zstorage
Dieser Fehler weist darauf hin, dass Inode <0x9f115> beschädigt ist (beim Löschen der Datei wurde die Inode-Zuordnung für Dateiname-> unterbrochen, sodass nur der Inode gemeldet wird). Entweder ist die Datei noch geöffnet, oder die Metadaten müssen nur bereinigt werden (was ein Scrub tun sollte).
Um den Fehler zu beheben, wenn ein Scrub nicht ausgeführt werden soll, müssen Sie sich mit zdb anfreunden, was nicht öffentlich von oracle (und an anderer Stelle schlecht dokumentiert) dokumentiert ist - und auf jeden Fall wahrscheinlich auf etwas grundlegenderes hinweist.
quelle
Ich weiß, dass ich zu spät zur Party komme, aber ich wollte nur hinzufügen, dass, wenn die zusätzlichen Scrubs Probleme wie diese nicht beheben, anstatt
zdb
dich anzusehen, du einfach ein Scrub starten und es ein paar Minuten laufen lassen kannst, und dann hör auf mitzpool scrub -s zstorage
. Das hat bei mir beim Löschen permanenter Fehler für Dateien funktioniert, wenn alle Lese- / Schreib- / Prüfsummenfehler Null waren.http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/
BEARBEITEN: Nachdem ich dies einige Male getan habe, wurde mir auch klar, dass das Timing, wie lange Sie das Scrub ausführen lassen, sich darauf auswirkt, ob es funktioniert (abhängig davon, welche Blöcke es zuerst sieht). Wenn es zunächst nicht funktioniert, versuchen Sie es noch ein paar Mal und passen Sie das Timing an, wenn Sie es anhalten.
quelle