Sagt BTRFS, dass meine Festplatte tot ist?

7

Ich bemerkte, dass mein HP N54L arbeitete und stellte fest, dass dies dmesggemeldet wurde:

[   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)

Dies ist mein BTRFS-Setup. RAID10 über 4x3 TB Festplatte:

$ 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

Und ich bemerkte, dass die Gerätestatistiken von BTRFS ... seltsam ... waren:

$ 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

Ich habe mir für alle Fälle eine Ersatz-3-TB-Festplatte bestellt, aber kann ich mit Sicherheit davon ausgehen, dass diese /dev/sdbtot ist? Ich fand es nur etwas seltsam, dass BTRFS berichtete [/dev/sdb].corruption_errs 0.

Gibt es eine allgemein akzeptierte Methode, um zu beweisen, dass eine Festplatte in einem BTRFS-RAID-Array tot ist?

Socceroos
quelle
Danke für den badblocksVorschlag. Ich habe einen schreibgeschützten Test am begonnen /dev/sdb. Grund für schreibgeschützt ist, dass es immer noch von BTRFS verwendet wird und ich nicht sicher bin, ob das Ausführen badblocksmit -nBTRFS mich stoppen würde, wenn es BTRFS im Allgemeinen nicht unterstützt.
Socceroos

Antworten:

5

Ich habe ähnliche Leistungseinbußen auf meinem Server hier zu Hause festgestellt (RAID-6 mit Btrfs an der Spitze). Es hat einen der Antriebe dreimal bewiesen.

Das erste, was ich mache, ist smartctlfür jedes Laufwerk zu laufen . Dann bemerke ich für das fehlerhafte Laufwerk die Anzahl der Raw-Fehler:

smartctl -x /dev/sdf | fgrep Raw

um diese im Auge zu behalten. Ich habe ein Laufwerk, das einmal einige Fehler aufwies, aber in den letzten 9 Monaten nach dem Zurücksetzen der Verkabelung stabil war. Ich weiß nicht warum, aber ich halte das für "noch nicht tot".

Wenn die Anzahl der Fehler wieder zunimmt, entferne ich das Laufwerk und bringe Ersatz (ich kann mit dem Risiko leben, dass eines der beiden zusätzlichen Laufwerke in meinem RAID-6 einen halben Tag lang offline ist).

Anthon
quelle
Nicht zu viel Unterschied. /dev/sda: 115282712 /dev/sdb: 146960040 /dev/sdc: 134936032 /dev/sdd: 159359440
Socceroos
Ist das der RAW_VALUEletzte Eintrag in der Zeile, den Raw_Read_Error_RateSie erhalten? Sie sind 0 für alle meine Laufwerke mit Ausnahme des noch nicht toten (46095). Am wichtigsten ist IMO, dass diese Zahlen nicht wachsen sollten.
Anthon
Ja, diese Zahlen sind Raw_Read_Error_Rate-> RAW_VALUE.
Socceroos
Diese scheinen mir für jedes System hoch zu sein. Aber stellen Sie sicher, dass Sie eine zweite Meinung dazu einholen, bevor Sie neue Hardware bestellen ;-)
Anthon
1
Ich habe einige Smartctl-Berichte gelesen und weiß jetzt ein bisschen mehr. Es scheint , dass die wichtigsten Werte in der Raw_Read_Error_RateReihe sind VALUE, WORSTund THRESH. VALUEHier befindet sich das Laufwerk derzeit - 200 sind ziemlich perfekt und 1 ist ein Fehler. WORSTsagt Ihnen, wie schlecht das Laufwerk in der Vergangenheit geworden ist - es wird also niemals höher sein als VALUEbei Verwendung derselben Skala. THRESHist die niedrigste Zahl, auf die der Hersteller das Laufwerk zugreifen lässt, bevor er es als "ausgefallen" ansieht. Also, 200 sind perfekt und 1 ist super gescheitert, /dev/sdbsitzt um 110. THRESH= 6
Socceroos