Esfreguei minha piscina hoje e, após a limpeza, notei que havia um erro que corrompia um arquivo. Eu não me importei com o arquivo, então o excluí. Infelizmente, o erro permanece (agora referenciado por um ID hexadecimal e não por um nome de arquivo) e não sei como resolvê-lo.
- Eu deveria estar preocupado? Ainda não estou realmente livre desse erro?
- Posso limpar o erro? Se o arquivo desaparecer, não quero realmente ver esse erro no futuro.
Para referência, aqui estão os comandos que eu emiti e a saída, com anotações:
Verificando 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
Mudando para root e excluindo o arquivo - não preciso dele
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
Verificando o status novamente
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>
Ah, oh. Talvez eu possa limpar o erro?
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>
Isso não parece bom!
zfs
zfsonlinux
Kevin Wood
fonte
fonte
Respostas:
Esfregue sua piscina novamente (se você ainda não tiver):
zpool scrub zstorage
Esse erro está informando que o inode <0x9f115> está corrompido (a exclusão do arquivo quebrou o mapeamento de nome de arquivo-> inode, por isso é apenas relatar o inode agora). Algo ainda tem o arquivo aberto ou os metadados precisam ser limpos (o que uma limpeza deve fazer).
Para limpar o erro se um scrub não for necessário, o zdb não está publicamente documentado pelo oracle (e mal documentado em outro lugar) - e, de qualquer forma, provavelmente indica algo mais fundamentalmente errado.
fonte
Sei que estou muito atrasado para a festa, mas só quero acrescentar que, se os scrubs adicionais não resolverem problemas como esse, em vez de olhar para
zdb
você, basta iniciar um scrub, deixe-o funcionar por alguns minutos e então pare com issozpool scrub -s zstorage
. Isso funcionou para mim na limpeza de erros permanentes de arquivos quando todos os erros de leitura / gravação / soma de verificação estavam em zero.http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/
EDIT: Depois de fazer isso algumas vezes, também percebi que o tempo de duração da depuração afetará o funcionamento (dependendo de quais blocos ela parecer inicialmente). Portanto, se não funcionar a princípio, tente mais algumas vezes e ajuste o tempo de quando você o interrompe.
fonte