Wyczyściłem dziś pulę i po zakończeniu szorowania zauważyłem błąd, który spowodował uszkodzenie pliku. Nie dbałem o plik, więc go usunąłem. Niestety błąd nadal występuje (teraz wskazuje go identyfikator szesnastkowy, a nie nazwa pliku) i nie wiem, jak go usunąć.
- Powinienem być zaniepokojony? Czy naprawdę nie jestem jeszcze wolny od tego błędu?
- Czy mogę usunąć błąd? Jeśli plik zniknie, tak naprawdę nie chcę tego błędu w przyszłości.
Dla odniesienia, oto polecenia, które wydałem, i dane wyjściowe z adnotacjami:
Sprawdzam status
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
Przejście na root i usunięcie pliku - nie potrzebuję go
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
Sprawdzam ponownie status
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>
O o. Może mogę usunąć błąd?
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>
To nie wygląda dobrze!
zfs
zfsonlinux
Kevin Wood
źródło
źródło
Odpowiedzi:
Ponownie wyszoruj pulę (jeśli jeszcze tego nie zrobiłeś):
zpool scrub zstorage
Ten błąd informuje, że i-węzeł <0x9f115> jest uszkodzony (usunięcie pliku spowodowało uszkodzenie mapowania i-węzła nazwa_pliku->, więc teraz tylko raportuje i-węzeł). Albo coś nadal ma otwarty plik, albo metadane muszą zostać wyczyszczone (co powinien zrobić peeling).
Aby usunąć błąd, jeśli peeling nie będzie musiał zejść i zabrudzić zdb, który nie jest publicznie udokumentowany przez wyrocznię (i źle udokumentowany gdzie indziej) - i w każdym razie prawdopodobnie oznacza coś bardziej zasadniczo nie tak.
źródło
Wiem, że jestem spóźniony na imprezę, ale chciałem tylko dodać, że jeśli dodatkowe zarośla nie naprawią takich problemów, zamiast patrzeć na
zdb
ciebie, możesz po prostu rozpocząć szorowanie, pozwolić mu działać przez kilka minut i to przestań za pomocązpool scrub -s zstorage
. To zadziała dla mnie przy usuwaniu trwałych błędów plików, gdy wszystkie błędy odczytu / zapisu / sumy kontrolnej były zerowe.http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/
EDYCJA: Po kilkukrotnym wykonaniu tego, zdałem sobie również sprawę, że czas, przez jaki pozwolisz na działanie szorowania, wpłynie na to, czy działa (w zależności od tego, jakie bloki najpierw robi). Więc jeśli to na początku nie działa, spróbuj jeszcze kilka razy i dostosuj moment, w którym przestaniesz.
źródło