Có phải BTRFS nói rằng ổ cứng của tôi đã chết?


7

Tôi nhận thấy rằng HP N54L của tôi đang chuyển dạ và phát hiện ra rằng nó dmesgđã báo cáo điều này:

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

Đây là thiết lập BTRFS của tôi. RAID10 trên ổ cứng 4x3TB:

$ 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

Và tôi nhận thấy rằng số liệu thống kê thiết bị từ BTRFS là ... lẻ ...:

$ 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

Tôi đã tự đặt mua một ổ cứng 3TB dự phòng, nhưng tôi có thể cho rằng /dev/sdbnó đã chết một cách an toàn không? Tôi chỉ thấy một chút kỳ lạ là BTRFS đã báo cáo [/dev/sdb].corruption_errs 0.

Có cách nào được chấp nhận rộng rãi để chứng minh rằng ổ cứng đã chết trong mảng RAID BTRFS không?


Cảm ơn badblockslời đề nghị. Tôi đã bắt đầu một bài kiểm tra chỉ đọc trên /dev/sdb. Lý do chỉ đọc là vì nó vẫn đang được BTRFS sử dụng và tôi không chắc rằng việc chạy badblocksvới -nnó sẽ ngăn tôi nếu nó không hỗ trợ BTRFS nói chung.
Socceroos

Câu trả lời:


5

Tôi đã thấy sự suy giảm hiệu suất tương tự trên máy chủ của tôi ở đây tại nhà (chạy RAID-6 với Btrfs trên đầu). Nó đã chứng minh một trong những ổ đĩa trong ba lần.

Điều đầu tiên tôi làm là chạy smartctlcho mỗi ổ đĩa. Sau đó, đối với ổ đĩa bị lỗi, tôi nhận thấy số lỗi Nguyên:

smartctl -x /dev/sdf | fgrep Raw

để theo dõi những người. Tôi có một ổ đĩa đã từng có một vài lỗi nhưng đã ổn định trong 9 tháng qua sau khi đặt lại hệ thống cáp. Không chắc chắn tại sao, nhưng tôi nghĩ rằng một "chưa chết".

Nếu số lỗi tăng trở lại, tôi sẽ xóa ổ đĩa và mang theo thay thế (tôi có thể gặp rủi ro khi một trong hai ổ đĩa bổ sung trong RAID-6 của tôi bị tắt trong nửa ngày).


Không có quá nhiều sự khác biệt. /dev/sda: 115282712 /dev/sdb: 146960040 /dev/sdc: 134936032 /dev/sdd: 159359440
Socceroos

Có phải đó là RAW_VALUEmục cuối cùng của dòng) của Raw_Read_Error_Ratebạn đang nhận được? Chúng là 0 cho tất cả các ổ đĩa của tôi ngoại trừ ổ chưa chết (ở mức 46095). Quan trọng nhất là IMO là những con số đó không nên tăng lên.
Anthon

Có những con số này là Raw_Read_Error_Rate-> RAW_VALUE.
Socceroos

Những người có vẻ cao đối với tôi cho bất kỳ hệ thống. Nhưng hãy chắc chắn rằng bạn có ý kiến ​​thứ hai về điều đó trước khi đặt mua phần cứng mới ;-)
Anthon

1
Tôi đã đọc một số báo cáo về smartctl và bây giờ biết thêm một chút. Có vẻ như các giá trị quan trọng nhất trên Raw_Read_Error_Ratehàng là VALUE, WORSTTHRESH. VALUElà nơi mà ổ đĩa hiện đang ở mức - 200 khá hoàn hảo và 1 bị loại bỏ. WORSTcho bạn biết mức độ tồi tệ của ổ đĩa trong quá khứ - vì vậy nó sẽ không bao giờ cao hơn VALUE, sử dụng cùng một tỷ lệ. THRESHlà con số thấp nhất mà nhà sản xuất cho phép ổ đĩa đạt được trước khi họ coi đó là 'thất bại'. Vì vậy, 200 là hoàn hảo và 1 là siêu thất bại, /dev/sdbđang ngồi ở 110. THRESH= 6
Socceroos
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.