Limpa um erro permanente do ZFS em um pool saudável

17

Eu limpei minha piscina hoje e, depois que o scrub terminou, notei que houve um erro que corrompeu um arquivo. Eu não me importei com o arquivo, então eu deletei. Infelizmente, o erro permanece (agora referenciado por um ID hexadecimal e não por um nome de arquivo), e eu não sei como limpá-lo.

  • Eu deveria estar preocupado? Eu não estou realmente livre desse erro ainda?
  • Posso limpar o erro? Se o arquivo sumiu, eu realmente não quero ver esse erro no futuro.

Para referência, aqui estão os comandos que eu emiti e a saída, com anotações:

Verificando o 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

Mudar para o root e excluir o arquivo - não é necessário

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>

Uh 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!

    
por Kevin Wood 20.02.2014 / 00:44

2 respostas

12

Esfregue sua piscina novamente (se você ainda não o fez):

zpool scrub zstorage

Esse erro está dizendo que o inode < 0x9f115 > está corrompido (a exclusão do arquivo quebrou o mapeamento de nome de arquivo - > inode, portanto, está apenas relatando o inode agora). Alguma coisa ainda tem o arquivo aberto ou os metadados precisam ser limpos (o que um scrub deve fazer).

Para limpar o erro, se um scrub não for necessário ficar sujo com zdb, o que não é documentado publicamente pelo oracle (e mal documentado em outro lugar) - e, de qualquer forma, provavelmente indica algo fundamentalmente errado.

    
por 20.02.2014 / 01:46
5

Eu sei que estou super atrasado para a festa, mas só queria acrescentar que, se os scrubs adicionais não corrigirem problemas como este, em vez de olhar para zdb , você pode simplesmente começar um scrub, deixá-lo rodar por alguns minutos e pare com zpool scrub -s zstorage . Isso funcionou para mim na limpeza de erros permanentes para arquivos quando todos os erros de leitura / gravação / soma de verificação estavam em zero.

link

EDITAR: Depois de ter feito isso algumas vezes, também percebi que o tempo de duração da execução afetará se ele funciona (dependendo de quais blocos ele parece ser o primeiro) . Então, se isso não funcionar no começo, tente mais algumas vezes e ajuste o tempo de quando você parar.

    
por 26.04.2017 / 22:53