Lỗi ZFS vĩnh viễn chỉ ra điều gì?


18

Một số permanent errorsđã được báo cáo về zpool của tôi ngày hôm nay.

  pool: seagate3tb
 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: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        seagate3tb  ONLINE       0     0    28
          sda       ONLINE       0     0    56

errors: Permanent errors have been detected in the following files:

        /mnt/seagate3tb/Install.iso
        /mnt/seagate3tb/some-other-file1.txt
        /mnt/seagate3tb/some-other-file2.txt

Chỉnh sửa: Tôi chắc chắn nếu các CKSUMgiá trị đó là chính xác. Tôi đã sắp xếp lại dữ liệu và có thể đã đọc nhầm chúng. Chúng có thể là 0. Thật không may, tôi không thể tìm thấy câu trả lời kết luận trong ghi chú của mình và các lỗi đã được giải quyết ngay bây giờ nên tôi không chắc chắn, nhưng mọi thứ khác đều chính xác / phản ánh những gì zpool đã báo cáo.

/mnt/seagate3tb/Install.iso là một ví dụ tập tin được báo cáo là có lỗi vĩnh viễn.

Đây là nơi tôi bị lẫn lộn. Nếu tôi so sánh "lỗi vĩnh viễn" của mình Install.isovới bản sao lưu của cùng một tệp trên hệ thống tệp khác, thì chúng trông giống hệt nhau.

shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso

Các tập tin dường như là giống hệt nhau. Hơn nữa, các tập tin hoạt động hoàn toàn tốt. Nếu tôi sử dụng nó trong một ứng dụng, nó sẽ hoạt động như tôi mong đợi.

Như các tài liệu nhà nước :

Lỗi tham nhũng dữ liệu luôn gây tử vong.

Nhưng dựa trên các xác minh tệp thô sơ của tôi, tôi không chắc mình hiểu định nghĩa của nó fatal.

trạng thái: Một hoặc nhiều thiết bị đã gặp lỗi dẫn đến hỏng dữ liệu. Các ứng dụng có thể bị ảnh hưởng.

hành động: Khôi phục tập tin trong câu hỏi nếu có thể. Nếu không, khôi phục toàn bộ hồ bơi từ bản sao lưu.

Có thể tôi đang thiếu một cái gì đó, nhưng tệp có vẻ hoàn toàn tốt theo như tôi có thể nói, và không cần bất kỳ sự phục hồi nào cũng như không cho thấy bất kỳ tham nhũng nào, mặc dù có sự giới thiệu từ ZFS.

Tôi đã thấy các bài viết kháccùng lỗi , nhưng tôi vẫn chưa tìm thấy câu trả lời cho câu hỏi của mình.

Các lỗi vĩnh viễn với các tập tin là gì? Có một số vấn đề cấp thấp hơn với tập tin mà tôi không dễ thấy? Nếu vậy, tại sao điều đó sẽ không được phát hiện bởi shasumsự khác biệt trong tệp?

Từ quan điểm của một giáo dân, tôi thấy không có gì để chỉ ra bất kỳ lỗi nào với tệp này.


Bạn có ảnh chụp nhanh không?
ewwhite

3
Vì sẽ không có ai nói điều đó, tôi có thể chào mừng bạn đến với ServerFault không? Điều này đối với tôi giống như một câu hỏi đầu tiên tuyệt vời , và tôi hy vọng nó tiếp tục lượm lặt những câu trả lời mang tính hướng dẫn. Tôi hy vọng bạn quyết định gắn bó với SF và đóng góp thêm.
MadHatter hỗ trợ Monica

Cảm ơn bạn @MadHatter! Tôi đánh giá cao sự chào đón của bạn, và chắc chắn sẽ gắn bó với SF. Tôi đã thêm nó vào danh sách ngắn gọn các cộng đồng SE của tôi.
Will Haley

Câu trả lời:


22

Các từ ngữ zpool statuslà một chút sai lệch. Một lỗi vĩnh viễn (trong ngữ cảnh này) cho thấy rằng lỗi I / O đã xảy ra và đã được ghi vào nhật ký lỗi SPA (Storage Pool Allocator) cho nhóm đó. Điều này không nhất thiết có nghĩa là có tham nhũng dữ liệu không thể phục hồi.

Những gì bạn nên làm là chạy một zpool scrubtrên hồ bơi. Khi quá trình chà hoàn thành, nhật ký lỗi SPA sẽ được xoay và sẽ không còn hiển thị lỗi từ trước khi chà. Nếu chà không phát hiện thấy lỗi thì zpool statussẽ không còn hiển thị bất kỳ lỗi "vĩnh viễn" nào nữa.

Về tài liệu, người ta nói rằng chỉ có "lỗi nghiêm trọng" được ghi lại theo cách này. Lỗi nghiêm trọng là lỗi I / O không thể tự động sửa bởi ZFS và do đó đã bị phơi bày trước một ứng dụng là I / O không thành công. Ngược lại, nếu I / O ngay lập tức được thử lại thành công hoặc nếu I / O logic được thỏa mãn từ một thiết bị dự phòng, thì nó sẽ không được coi là lỗi nghiêm trọng và do đó sẽ không được ghi là lỗi hỏng dữ liệu.

Một lỗi nghiêm trọng không nhất thiết có nghĩa là mất dữ liệu vĩnh viễn, nó chỉ có nghĩa là tại thời điểm nó không thể được sửa chữa trước khi nó lan truyền đến ứng dụng. Ví dụ: cáp lỏng hoặc bộ điều khiển kém có thể gây ra các lỗi nghiêm trọng tạm thời mà ZFS sẽ mô tả là "vĩnh viễn". Việc nó có thực sự là một vấn đề hay không phụ thuộc vào bản chất của I / O và liệu ứng dụng có khả năng phục hồi từ các lỗi I / O hay không.

EDIT: Hoàn toàn đồng ý với @bahamat rằng bạn nên đầu tư vào dự phòng càng sớm càng tốt.


Nhật ký lỗi SPA báo cáo đây là "vĩnh viễn" thực sự có vẻ hơi sai lệch. Việc zpool scrubđã làm chính xác những gì bạn đề xuất @ tom-Shaw, và lời giải thích của bạn có ý nghĩa hoàn hảo. Tôi không còn thấy bất kỳ "lỗi vĩnh viễn" nào trên mảng này sau khi chà. Tôi đã không nghĩ về những lỗi nghiêm trọng trong bối cảnh đọc thất bại. Tôi nghĩ rằng đó chỉ là một lỗi I / O tạm thời trên một lần đọc như bạn đề xuất. Tôi cũng hoàn toàn đồng ý về sự cần thiết của sự dư thừa.
Will Haley

Tom, đã lâu không gặp bạn. Chào mừng trở lại.
the-wợi

7

Lỗi vĩnh viễn có nghĩa là đã có lỗi kiểm tra trong tệp và không có đủ bản sao để sửa chữa. Điều đó có nghĩa là ít nhất một lần đọc trả về dữ liệu bị hỏng do lỗi I / O. Nếu bất cứ điều gì nhận được đọc, sau đó ghi lại vào cùng một tệp đĩa, bây giờ bạn sẽ bị hỏng dữ liệu không thể phục hồi.

Nhìn vào cấu hình pool của bạn, có vẻ như bạn không có dự phòng. Điều này rất nguy hiểm. Bạn không nhận được bất kỳ lợi ích tự phục hồi nào của ZFS, nhưng nó sẽ có thể cho bạn biết khi nào đã xảy ra tham nhũng dữ liệu. Thông thường ZFS sẽ tự động và âm thầm sửa các lỗi đọc bị hỏng, nhưng trong trường hợp của bạn thì không thể. Có vẻ như bạn đã chạy zpool clearCKSUMsố lượng 0dành cho cả hai ổ đĩa.

Thật không may, không có bản sao thực sự không có cách nào để biết.


2
Cũng sẽ không zpool clearxóa thông báo lỗi, không chỉ là lỗi đếm? Điều kỳ lạ là thông điệp vẫn tồn tại, nhưng không có lỗi nào được hiển thị.
121391

2
Lời xin lỗi của tôi. Tôi đã bỏ qua các tập tin từ danh sách các lỗi vĩnh viễn cho quyền riêng tư. Khi chỉnh sửa đầu ra đó, tôi cũng đã thu thập số lượng CKSUM và mất bối cảnh có giá trị. Tôi đã chỉnh sửa câu hỏi để phản ánh thực tế. @ user121391
Will Haley

Trong trường hợp đó, nếu các số bạn hiển thị là chính xác, thì có khả năng bạn đã gặp lỗi phần cứng ở đâu đó. Vì cả hai đĩa cho thấy CKSUM countsnó có thể là bộ điều khiển, cáp hoặc bất kỳ phần cứng được chia sẻ nào giữa hai đĩa. Cũng có thể cả hai đĩa đều bị lỗi. Trong mọi trường hợp, điều này nhấn mạnh sự cần thiết phải thêm ASAP dự phòng và kiểm tra các tệp được chỉ định cho tham nhũng.
bahamat

OP dường như không có bất kỳ sự dư thừa nào; vdev có 56 lỗi CKSUM và nhóm có 28 lỗi CKSUM. Vì vậy, tôi không chắc chắn những gì bạn đã đề cập đến bởi "cả hai đĩa" trong bình luận trước đó của bạn. Tôi đồng ý với quan điểm của bạn về giá trị của sự dư thừa.
một CVn

Bạn đúng. Tôi đọc sai tên pool như thể nó là một đĩa khác. Cảm ơn đã chỉ ra rằng.
bahamat
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.