Linux mdadm phần mềm RAID 6 - nó có hỗ trợ phục hồi tham nhũng bit không?


15

Wikipedia cho biết "RAID 2 là cấp độ RAID tiêu chuẩn duy nhất, ngoài một số triển khai RAID 6, có thể tự động khôi phục dữ liệu chính xác từ sự hỏng hóc một bit trong dữ liệu."

Có ai biết nếu triển khai mdadm RAID 6 trong Linux là một triển khai như vậy có thể tự động phát hiện và phục hồi từ hỏng dữ liệu một bit hay không. Điều này liên quan đến CentOS / Red Hat 6 nếu chúng khác với các phiên bản khác. Tôi đã thử tìm kiếm trực tuyến nhưng không có nhiều may mắn.

Với tỷ lệ lỗi SATA là 1 trong 1E14 bit và đĩa SATA 2TB chứa 1.6E13 bit, điều này đặc biệt có liên quan để ngăn ngừa hỏng dữ liệu.

EDIT 17 tháng 6 năm 2015

Tôi tin rằng đây không phải là mối quan tâm mà tôi nghĩ ban đầu - xem Đĩa cứng / SSD - phát hiện và xử lý lỗi - liệu dữ liệu im lặng có được ngăn chặn đáng tin cậy không? để biết thêm chi tiết

Câu trả lời:


15

Phần mềm Linux RAID sẽ không bảo vệ bạn khỏi tham nhũng bit và tham nhũng dữ liệu im lặng là một vấn đề nổi tiếng với nó. Trong thực tế, nếu kernel có thể đọc dữ liệu từ một đĩa thì nó sẽ không bao giờ biết rằng nó xấu. RAID chỉ khởi động nếu có lỗi I / O khi đọc dữ liệu.

Nếu bạn lo lắng về tính toàn vẹn dữ liệu, bạn nên xem xét sử dụng một hệ thống tệp như Btrfs hoặc ZFS để đảm bảo tính toàn vẹn dữ liệu bằng cách lưu trữ và xác minh tổng kiểm tra. Các hệ thống tệp này cũng đảm nhiệm chức năng RAID, vì vậy bạn không cần đột kích phần mềm kernel nếu bạn đi theo cách đó.


Cảm ơn. Trong trường hợp nó hữu ích với bất kỳ ai, tôi đã có thêm một số ý tưởng tìm kiếm từ câu trả lời của chutz và thấy rằng người duy trì mdadm (tôi tin) đã nói vào ngày 17 tháng 2 năm 2011 rằng anh ta không có kế hoạch thêm khả năng kiểm tra tính chẵn lẻ trên mỗi lần đọc. Xem spinics.net/lists/ston/msg32816.html
sa289

3

RAID5 và RAID6 có thể phát hiện và thường sửa lỗi bit nếu bạn xác minh tính chẵn lẻ của toàn bộ ổ đĩa. Việc này được gọi là "chà" hoặc "kiểm tra chẵn lẻ" và thường mất 24-48 giờ trên hầu hết hệ thống RAID sản xuất. Trong thời gian đó hiệu suất có thể bị suy giảm đáng kể. (Một số hệ thống cho phép người vận hành ưu tiên kiểm tra quyền truy cập đọc / ghi hoặc bên dưới nó.) RAID6 có cơ hội sửa lỗi cao hơn, bởi vì nó có thể sửa nó nếu bạn gặp hai lỗi ổ đĩa, trong khi RAID5 chỉ có thể xử lý 1 lỗi ổ đĩa và lỗi ổ đĩa có nhiều khả năng khi bạn đang chà vì hoạt động tăng lên.


1
Thực tế không phải là hiệu suất sẽ bị suy giảm đáng kể trong quá trình chà RAID. Nếu chà sử dụng tất cả các tài nguyên hệ thống có sẵn và "câm" thì nó sẽ. Tuy nhiên, tất cả các SAN và tôi tưởng tượng hầu hết các bộ điều khiển RAID sẽ chạy chà ở mức ưu tiên thấp hơn hoặc "đẹp", điều chỉnh việc sử dụng tài nguyên một cách linh hoạt để nó không tiêu tốn tài nguyên cần thiết để duy trì hiệu suất sản xuất.
Jeremy

Bạn nói đúng. Tôi chỉnh sửa câu trả lời để thêm sắc thái.
vy32

nếu mảng mdadm raid 6 của bạn là / dev / md1 thì đó là lệnh để làm cho nó xác minh tính chẵn lẻ và cố gắng sửa chữa tham nhũng bit đơn "kiểm tra tiếng vang> / sys / block / md1 / md / sync_action"
BeowulfNode42

2
Họ không "bảo vệ chống tham nhũng bit", họ phát hiện tham nhũng bit nếu bạn chà. Xem câu hỏi của tôi ở đây để biết chi tiết.

Tôi đề nghị thay đổi câu trả lời thành "RAID5 và RAID6 có thể sửa chữa tham nhũng bit"
Waxhead

2

Tôi đã có thể thêm điều này như một bình luận nhưng tôi không có đủ danh tiếng; Tôi muốn làm rõ: RAID5 có thể XÁC ĐỊNH tham nhũng bit nhưng nó không biết ổ đĩa nào bị hỏng mà không có lỗi đọc. Kết quả là, một chà không thể sửa lỗi này mà không có lỗi đọc - rất có thể chỉ cần đăng nhập nó và cập nhật bit chẵn lẻ để phù hợp. Thuật toán của RAID6 phụ thuộc vào vị trí để nó có thể phát hiện ổ đĩa nào có lỗi và sửa lỗi bit.


Điều đó sẽ rất tuyệt nếu đó là sự thật! Bạn có thể vui lòng cung cấp bất kỳ liên kết về nơi nó được ghi lại ??
Alek_A

2

Tất cả các câu trả lời ở trên đều không chính xác về khả năng của RAID 6. Thuật toán RAID 6 vận hành từng byte giống như RAID 5 và nếu một byte trên bất kỳ một ổ đĩa nào bị hỏng, thậm chí không có lỗi nào được chỉ ra bởi ổ đĩa, nó có thể được phát hiện và ĐÚNG. Thuật toán để làm như vậy được giải thích hoàn toàn trong

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/ston6.pdf

Để thực hiện kiểm tra này, các ổ P và Q chẵn lẻ cũng phải được đọc cùng với các ổ dữ liệu. Nếu tính chẵn lẻ P 'và Q' khác nhau không có lỗi ổ đĩa, một phân tích có thể xác định chính xác ổ đĩa nào không chính xác và sửa dữ liệu.

Ngoài ra, nếu nhận dạng ổ đĩa là ổ đĩa không có (chẳng hạn như ổ đĩa 137 nếu chỉ có 15 ổ đĩa), có nhiều hơn một ổ đĩa đang cung cấp dữ liệu bị hỏng CHO THAT BYTE, báo hiệu lỗi không thể sửa. Khi có ít hơn 256 ổ đĩa trong tập hợp, điều này được phát hiện với xác suất cao trên mỗi byte và vì có nhiều byte trong một khối, với xác suất cực cao cho mỗi khối. Nếu nhận dạng ổ đĩa không nhất quán cho tất cả các byte trong khối RAID, một lần nữa, nhiều ổ đĩa sẽ cung cấp dữ liệu bị hỏng và nói chung, một ổ đĩa có thể từ chối điều kiện, nhưng miễn là tất cả các nhận dạng ổ đĩa đều hợp lệ, khối này không nhất thiết phải là khối bị từ chối.

Mất nhiều thời gian hơn thời gian xác minh thông thường để thực hiện hiệu chỉnh này, nhưng chỉ cần thực hiện với phép tính hội chứng (P và Q) cho thấy có lỗi.

Tuy nhiên, tất cả điều này đang được nói, tôi đã không kiểm tra mã mdadm để xác định xem tham nhũng byte đơn có được xử lý hay không. Tôi biết rằng mdadm báo cáo lỗi hội chứng RAID6 khi quét hàng tháng, nhưng từ thông báo lỗi, không rõ liệu chúng có được sửa hay không - nó không dừng mảng ổ đĩa cũng như không xác định bất kỳ ổ đĩa cụ thể nào trong thông báo.

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.