O BTRFS está dizendo que meu HDD está morto?

7

Percebi que meu HP N54L estava trabalhando e descobri que dmesg estava relatando isso:

[   81.945530] btrfs read error corrected: ino 1 off 16685977600 (dev /dev/sdb sector 2636776)
[   82.010023] btrfs read error corrected: ino 1 off 16637734912 (dev /dev/sdb sector 2589656)

[   85.927604] verify_parent_transid: 43 callbacks suppressed
[   85.927615] parent transid verify failed on 16956989440 wanted 13182 found 12799
[   85.974600] parent transid verify failed on 16585043968 wanted 13145 found 12357

[   89.903548] repair_io_failure: 26 callbacks suppressed
[   89.903560] btrfs read error corrected: ino 1 off 16875483136 (dev /dev/sdb sector 2821816)
[  115.951579] parent transid verify failed on 16963846144 wanted 13184 found 12802
[  115.976830] btrfs read error corrected: ino 1 off 16963846144 (dev /dev/sdb sector 2908128)
[  115.988907] parent transid verify failed on 16978874368 wanted 13187 found 12815

[  543.848294] btrfs: device fsid e8f8fc09-3aae-4fce-85ca-fcf7665b9f02 devid 2 transid 13199 /dev/sdb
[ 1120.854825] verify_parent_transid: 5 callbacks suppressed
[ 1120.854838] parent transid verify failed on 16956600320 wanted 13184 found 12799

[ 1120.891229] repair_io_failure: 6 callbacks suppressed
[ 1120.891243] btrfs read error corrected: ino 1 off 16956600320 (dev /dev/sdb sector 2901016)
[ 1124.851937] parent transid verify failed on 16977842176 wanted 13187 found 12814
[ 1124.885429] btrfs read error corrected: ino 1 off 16977842176 (dev /dev/sdb sector 2921768)

Esta é a minha configuração do BTRFS. RAID10 em 4x3TB HDD:

$ sudo btrfs filesystem df /mnt/btrfs
Data, RAID10: total=136.00GiB, used=134.70GiB
System, RAID10: total=64.00MiB, used=20.00KiB
System, single: total=4.00MiB, used=0.00
Metadata, RAID10: total=1.00GiB, used=363.21MiB

$ sudo btrfs filesystem show /mnt/btrfs
Label: none  uuid: <UUID>
    Total devices 4 FS bytes used 135.05GiB
    devid    1 size 2.73TiB used 68.54GiB path /dev/sda
    devid    2 size 2.73TiB used 68.53GiB path /dev/sdb
    devid    3 size 2.73TiB used 68.53GiB path /dev/sdc
    devid    4 size 2.73TiB used 68.53GiB path /dev/sdd

E notei que as estatísticas de dispositivos do BTRFS eram ... estranhas ...:

$ sudo btrfs device stats /mnt/btrfs
[/dev/sda].write_io_errs   0
[/dev/sda].read_io_errs    0
[/dev/sda].flush_io_errs   0
[/dev/sda].corruption_errs 0
[/dev/sda].generation_errs 0
[/dev/sdb].write_io_errs   207275
[/dev/sdb].read_io_errs    127287
[/dev/sdb].flush_io_errs   0
[/dev/sdb].corruption_errs 0
[/dev/sdb].generation_errs 0
[/dev/sdc].write_io_errs   0
[/dev/sdc].read_io_errs    0
[/dev/sdc].flush_io_errs   0
[/dev/sdc].corruption_errs 0
[/dev/sdc].generation_errs 0
[/dev/sdd].write_io_errs   0
[/dev/sdd].read_io_errs    0
[/dev/sdd].flush_io_errs   0
[/dev/sdd].corruption_errs 0
[/dev/sdd].generation_errs 0

Eu mesmo solicitei um disco rígido de 3 TB para o caso, mas posso assumir com segurança que /dev/sdb está morto? Eu achei um pouco estranho que o BTRFS estivesse reportando [/dev/sdb].corruption_errs 0 .

Existe uma maneira universalmente aceita de provar que um HDD está morto em uma matriz RAID BTRFS?

    
por Socceroos 11.06.2015 / 17:18

1 resposta

5

Eu tenho visto degradações de desempenho semelhantes no meu servidor aqui em casa (rodando o RAID-6 com o Btrfs no topo). Provou uma das unidades em três ocasiões.

A primeira coisa que faço é executar smartctl para cada unidade. Então, para a unidade com falha, noto o número de erros brutos:

smartctl -x /dev/sdf | fgrep Raw

para acompanhar esses. Eu tenho uma unidade que uma vez mostrou alguns erros, mas tem sido estável nos últimos 9 meses após redefinir o cabeamento. Não tenho certeza porque, mas eu considero que um "ainda não morreu".

Se a contagem de erros aumentar novamente, removo a unidade e trago a substituição (posso viver com o risco de uma das duas unidades extras no meu RAID-6 ficar fora da linha por meio dia).

    
por 11.06.2015 / 17:34