Nếu hệ thống RAID5 gặp URE trong quá trình xây dựng lại, tất cả dữ liệu có bị mất không?


23

Tôi hiểu lập luận liên quan đến khả năng tăng URE của các ổ đĩa lớn hơn trong quá trình xây dựng lại, tuy nhiên tôi không chắc ý nghĩa thực sự của việc này là gì. Câu trả lời này nói rằng toàn bộ quá trình xây dựng lại không thành công, nhưng điều này có nghĩa là tất cả dữ liệu không thể truy cập được? Tại sao lại như vậy? Chắc chắn một URE duy nhất từ ​​một khu vực duy nhất trên ổ đĩa sẽ chỉ ảnh hưởng đến dữ liệu liên quan đến một vài tệp. Không phải mảng vẫn sẽ được xây dựng lại, chỉ với một vài lỗi nhỏ đối với một vài tệp?

(Tôi đặc biệt quan tâm đến việc triển khai RAID5 của ZFS ở đây, nhưng logic có vẻ giống với bất kỳ triển khai RAID5 nào.)


1
Nói chung, khi "khả năng gặp URE trong quá trình xây dựng lại " được thảo luận trong bối cảnh rủi ro RAID5, giả định ngụ ý rằng tham nhũng trước đó đã xảy ra khiến việc xây dựng lại là cần thiết. Nói cách khác, "URE trong quá trình xây dựng lại" là URE thứ hai và thực sự TẤT CẢ dữ liệu sẽ bị mất.
Colt

1
@Colt - Tôi hiểu đó là hàm ý, nhưng điều tôi không hiểu là tại sao một URE duy nhất (trong phân tích lý do tại sao RAID5 không được đề xuất, dường như đề cập đến một khu vực xấu) có nghĩa là tất cả dữ liệu sẽ bị mất Nói chung, nếu tôi mất 1 ổ đĩa RAID5 thì tôi vẫn còn tất cả dữ liệu. Nếu tôi cũng mất một khu vực duy nhất từ ​​bất kỳ ổ đĩa còn lại nào thì có thể tôi đã mất dữ liệu được lưu trữ trong khu vực đó, nhưng nếu khu vực đó là (ví dụ) không gian trống thì tôi không quan tâm, và nếu khu vực đó đã có dữ liệu về nó thì nó chỉ có thể ảnh hưởng đến một vài tập tin.
process91

@Colt - Dựa trên các câu trả lời dưới đây, có vẻ như việc không xây dựng lại mảng theo nguyên tắc của một URE duy nhất là một lựa chọn được thực hiện bởi các nhà sản xuất RAID phần cứng. Theo tôi, đây là lựa chọn sai, nhưng may mắn thay, có vẻ như ZFS làm điều đó khác đi.
process91

Xem câu trả lời của @ shodanshok cho quá trình này. Về lý do, RAID là để cung cấp quyền truy cập liên tục vào dữ liệu đáng tin cậy cho các quá trình, ứng dụng khác, v.v., và không phải là về sao lưu. Lý do mà nhiều bộ điều khiển phần cứng (hầu hết?) Hủy bỏ một khi URE xảy ra trong quá trình xây dựng lại là RAID không còn có thể làm những gì nó phải làm . Tại thời điểm này, các bản sao lưu cần được sử dụng để có dữ liệu đáng tin cậy. Một cách khác để sử dụng RAID là không thực hiện bất kỳ việc xây dựng lại nào, mà chỉ sử dụng RAID để kiểm soát thời gian phục hồi từ bản sao lưu. Ngoài ra, nó cho phép thời gian để thực hiện sao lưu cuối cùng trước khi phục hồi.
Colt

Lưu ý rằng việc triển khai RAID5 của Z5 ZFS được gọi là hung razzz hoặc hoặc zin tinh và khác với RAID5 phần cứng. Thông thường bạn sẽ nhận được câu trả lời tốt hơn về RAID ZFS RAID5, hỏi về tình trạng raidz
Josh

Câu trả lời:


24

Nó thực sự phụ thuộc vào việc triển khai RAID cụ thể:

  • hầu hết RAID phần cứng sẽ hủy bỏ việc xây dựng lại và một số cũng sẽ đánh dấu mảng là thất bại , đưa nó xuống. Lý do là nếu một URE xảy ra trong một RAID5 xây dựng lại nó có nghĩa là một số dữ liệu được mất, vì vậy nó là tốt hơn để hoàn toàn ngăn chặn các mảng đúng hơn là mạo hiểm tham nhũng dữ liệu im lặng. Lưu ý: thay vào đó, một số RAID phần cứng (chủ yếu dựa trên LSI) sẽ chọc thủng mảng, cho phép tiến hành xây dựng lại trong khi đánh dấu khu vực bị ảnh hưởng là không thể đọc được (tương tự như cách RAID hoạt động của phần mềm Linux).

  • Phần mềm linux RAID có thể được hướng dẫn để a) dừng việc xây dựng lại mảng (hành vi duy nhất của các bản dựng MDRAID / hạt nhân "cổ đại) hoặc b) tiếp tục với quá trình xây dựng lại đánh dấu một số LBA là xấu / không thể truy cập được. Lý do là tốt hơn là để người dùng thực hiện lựa chọn của mình: sau tất cả, một URE duy nhất có thể ở trên không gian trống, hoàn toàn không ảnh hưởng đến dữ liệu (hoặc chỉ ảnh hưởng đến các tệp không quan trọng);

  • ZRAID sẽ hiển thị một số tệp bị hỏng, nhưng nó sẽ tiếp tục với quá trình xây dựng lại (xem ví dụ ở đây ). Một lần nữa, lý do là tốt hơn là tiếp tục và báo cáo lại cho người dùng, cho phép anh ta đưa ra lựa chọn sáng suốt.


@ process91 Chỉ cần xây dựng thêm một chút. Nếu việc triển khai RAID không có các cấu trúc dữ liệu bổ sung cần thiết để đánh dấu các lĩnh vực riêng lẻ là xấu, thì nó sẽ thất bại trong việc xây dựng lại hoặc gây ra tham nhũng thầm lặng. Đánh dấu các lĩnh vực riêng lẻ là xấu là tốt hơn, nhưng vẫn có thể khiến các ngành khác gặp rủi ro do những người chia sẻ một khu vực tương đương với khu vực xấu.
kasperd

@kasperd Chắc chắn, tôi đoán rằng tôi cho rằng hầu hết các cài đặt RAID đều có khả năng cảnh báo người dùng về các thành phần xấu. Tôi hiểu nếu có một khu vực xấu trong một ổ đĩa sẽ dẫn đến một khu vực không chính xác trong ổ đĩa mới sau khi xây dựng lại. Điều đó nói rằng, ngay cả khi việc triển khai RAID không làm gì hơn là cảnh báo cho người dùng "Tôi đã xây dựng lại ổ đĩa một cách tốt nhất có thể, nhưng tôi đã trải nghiệm 1 URE trong quá trình" và sau đó tiếp tục cho phép ghi vào khu vực đó. xem làm thế nào các ngành khác có thể có nguy cơ. Các lĩnh vực không chính xác duy nhất có thể là ban đầu, ngành mới và tương đương.
process91

Một cách làm rõ, dựa trên nhận xét của @Colt ở trên - trong trường hợp RAID phần cứng, khi nó đánh dấu mảng là không thành công, liệu nó có còn cho phép truy cập dữ liệu không? Thậm chí, giả sử, truy cập chỉ đọc cho mục đích phục hồi đã cố gắng?
process91

@ process91 Cho phép một khu vực bị hỏng không được coi là một ý tưởng tốt, ngay cả khi thực tế đó đã được ghi vào một tệp nhật ký. Bạn không biết tập tin nào có thể bị hỏng. RAID sẽ phải đảm bảo khi đọc tệp đó bạn sẽ gặp lỗi. Ngoài ra, rõ ràng bạn không muốn ghi đè lên khu vực xấu, vì điều đó có nghĩa là bạn vừa mất cơ hội khôi phục dữ liệu cuối cùng. Vì vậy, bạn có một khu vực không thể đọc được trên một đĩa và một khu vực trên đĩa mới mà bạn không biết phải viết gì. Đó có thể là hai tập tin khác nhau bị hỏng.
kasperd

1
@ process91 Tôi đã thêm một lưu ý về mảng dựa trên LSI. Cho nó một cái nhìn.
shodanshok

8

Nếu URE xảy ra, bạn sẽ gặp phải một số lỗi dữ liệu trên khối có kích thước thường là 256KB-1MB, nhưng điều này không có nghĩa là TẤT CẢ dữ liệu trên ổ đĩa của bạn sẽ bị mất. Điều không tuyệt vời về RAID5 là một điều hoàn toàn khác: Bản thân việc xây dựng lại rất căng thẳng và có nhiều khả năng bạn sẽ bị hỏng đĩa thứ hai liên tiếp. Trong trường hợp như vậy, tất cả dữ liệu sẽ bị mất.


2
Làm thế nào để RAID5 xây dựng lại căng thẳng hơn trên một ổ đĩa so với việc xây dựng lại RAID1? Tôi thấy rằng nó gây căng thẳng hơn cho CPU, nhưng đối với bất kỳ ổ đĩa cụ thể nào, chúng tôi chỉ đơn giản là đọc tất cả dữ liệu từ nó. Thông thường, những người nguy hiểm trích dẫn với các ổ đĩa lớn hơn là họ có thể sẽ gặp URE trong quá trình xây dựng lại, nhưng điều đó tốt với tôi nếu điều đó chỉ có nghĩa là một khu vực duy nhất sẽ bị hỏng.
process91

3
Đó là lý thuyết xác suất. Với N (trong đó là # ổ đĩa), khả năng bạn bị lỗi cao hơn N lần.
tướcSamedi1958

1
Đó không hoàn toàn là cách tính toán sẽ hoạt động, bạn thực sự muốn tính 1- xác suất không gặp thất bại, nhưng tôi hiểu phần đó. Có vẻ như tôi đã giải thích sai về tuyên bố của bạn khi cho rằng hành động xây dựng lại RAID5 bằng cách nào đó gây căng thẳng hơn cho chính đĩa (mà tôi đã đọc ở nơi khác), do đó làm tăng cơ hội của URE, nhưng nếu đó không phải là bạn Đang nói thì tôi đồng ý.
process91

2

Tôi sẽ giải thích nó theo cách khác;

Nếu bộ điều khiển RAID không dừng trên URE, điều gì có thể xảy ra?

Tôi đã sống nó trên một máy chủ, RAID không bao giờ nhận thấy URE và sau khi xây dựng lại, một tham nhũng bắt đầu tích tụ trên toàn bộ khối lượng RAID.

Đĩa bắt đầu nhận được nhiều bad sector sau khi xây dựng lại và dữ liệu bắt đầu bị hỏng.

Đĩa không bao giờ được khởi động ổ RAID, bộ điều khiển bị lỗi là công việc để bảo vệ tính toàn vẹn dữ liệu.

Ví dụ đó được viết để khiến bạn nghĩ rằng bộ điều khiển không thể đẩy một khối lượng bằng URE, vì tính toàn vẹn dữ liệu, vì âm lượng không có nghĩa là một bản sao lưu mà là khả năng phục hồi cho lỗi đĩa


1
Tôi thấy những người điều hành mới đều liên tục kiểm tra trang web, tìm kiếm những việc cần làm ...
Ward - Rebstate Monica

1
Tại sao một URE duy nhất sẽ tích tụ tham nhũng trong toàn bộ khối lượng RAID?
process91

2
Xin lỗi, tôi đọc lại câu trả lời của bạn. Có vẻ như bạn đã có một URE xấu duy nhất trong quá trình xây dựng lại, nhưng đây không phải là vấn đề. Vấn đề là các lĩnh vực tiếp tục xấu đi sau khi xây dựng lại, và ổ đĩa không bao giờ báo cáo nó. Tuy nhiên, đây có vẻ như là một vấn đề riêng biệt từ việc bộ điều khiển RAID có thông báo URE trong quá trình xây dựng lại hay không. Bộ điều khiển RAID có thể nhận thấy URE trong quá trình xây dựng lại và cảnh báo bạn về nó nhưng vẫn tiến hành hoàn thành việc xây dựng lại. Một số dữ liệu sẽ luôn luôn tốt hơn không có dữ liệu.
process91

2
Tôi chỉ quan tâm đến việc phân tích tại sao RAID5 được coi là "chết" vào năm 2009, dựa trên khả năng của một URE duy nhất. Bây giờ tôi hiểu rằng phân tích này là không chính xác về mặt toán học và không thực sự áp dụng theo cùng một cách, ví dụ, ZFS.
process91

1
@RobMoir Tôi đoán câu nói cuối cùng của bạn là nơi tôi không đồng ý. Lấy gần như tất cả dữ liệu của tôi ra khỏi mảng có thể hữu ích, ngay cả khi tôi có một bản sao lưu khác. Có thể tệp đó không quan trọng hoặc (trong trường hợp RAID phần cứng), lỗi xảy ra trong một không gian trống. Tôi nghĩ rằng quyết định đúng đắn, đối với RAID phần cứng (nơi không biết cụ thể các tệp nào bị ảnh hưởng) sẽ cảnh báo người dùng, hoàn thành việc xây dựng lại và chuyển mảng sang chế độ chỉ đọc. Tôi không thấy bất kỳ nhược điểm nào cho việc này. (Rõ ràng, các hệ thống tệp như ZFS thậm chí có thể làm tốt hơn, vì chúng có thể báo cáo các tệp bị ảnh hưởng.)
process91

1

Tôi khuyên bạn nên đọc câu hỏi và câu trả lời này để có thêm một chút nền tảng. Sau đó đi và đọc lại câu hỏi bạn liên kết lại.

Khi ai đó nói về tình huống này rằng "RAID bị lỗi", điều đó có nghĩa là bạn đã mất lợi ích của RAID - bạn đã mất quyền truy cập liên tục vào dữ liệu, đó là lý do bạn thiết lập mảng RAID ngay từ đầu.

Bạn đã mất tất cả dữ liệu, nhưng cách phổ biến nhất để khôi phục từ một ổ đĩa chết cộng với (một số) URE trên (một số) các ổ đĩa còn lại sẽ là xây dựng lại hoàn toàn mảng từ đầu, nghĩa là khôi phục lại tất cả dữ liệu của bạn từ bản sao lưu.


1
Nói chung, bạn sử dụng RAID khi mục tiêu của bạn là giảm thiểu thời gian chết. Có các mảng tiếp tục với tham nhũng chưa biết và chưa được sửa chữa thường phản tác dụng với mục tiêu đó.
David Schwartz

1
Cảm ơn, câu hỏi đầu tiên mà bạn liên kết đến rất nhiều thông tin. Tại sao tôi mất quyền truy cập liên tục vào dữ liệu? Mảng vẫn sẽ xuất hiện trong quá trình xây dựng lại và nếu nó gặp URE trong quá trình xây dựng lại thì tôi hy vọng nó sẽ tiếp tục, mặc dù với một khu vực dữ liệu này hiện đã bị hỏng. đây không phải là trường hợp?
process91
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.