RAID có thể xử lý dữ liệu không nhất quán như thế nào?


8

RAID 1 và RAID 5 (và anh em của họ 10 và 50) đạt được sự dự phòng dữ liệu tương ứng thông qua phản chiếu và thông qua kiểm tra chẵn lẻ. Điều này cho phép một mảng RAID vẫn truy cập dữ liệu khi một cung trên đĩa (hoặc toàn bộ đĩa) trở nên không thể đọc được. RAID 6 (hoặc 60) sử dụng kiểm tra bổ sung để cho phép các lỗi kép.

Nhưng làm thế nào một mảng RAID có thể xử lý dữ liệu không hoàn toàn không thể đọc được mà chỉ không nhất quán?

Nếu một số lỗi xảy ra sao cho dữ liệu trên một dải bị thay đổi trên đĩa nhưng thay đổi không được truyền sang (các) cái khác, toàn bộ dải sẽ không nhất quán. Nếu trong một bộ nhân đôi, một đĩa nói "bit này là 0" trong khi đĩa kia nói "bit này là 1", làm thế nào một bộ điều khiển RAID có thể biết cái nào đúng? Lý do tương tự có thể được áp dụng cho dải RAID-5, với độ phức tạp được thêm vào mà bạn không thể dễ dàng biết được khu vực nào thực sự sai trong dải. Ngoài ra, RAID 6 có giảm thiểu được vấn đề này với các ckecks kép của nó không, hay nó vẫn có thể gặp sự cố khi khôi phục dữ liệu khi dữ liệu thực sự có thể đọc được nhưng nó bị sai ở đâu đó, đặc biệt là khi mảng RAID 6 có xu hướng có nhiều đĩa?

Về mặt lý thuyết có thể được giải quyết bằng cách checksums, để đảm bảo đó sao chép các dữ liệu (hoặc chẵn lẻ) là đúng; nhưng có bất kỳ bộ điều khiển RAID nào thực sự thực hiện loại tổng kiểm tra này (tất nhiên sẽ chiếm thêm không gian) không? Hoặc nó cần phải được xử lý ở cấp độ HĐH, nơi mà hầu hết các hệ thống tập tin có thể và sẽ kiểm tra nội dung của chúng? Và nếu đây là trường hợp, làm thế nào họ có thể nói với bộ điều khiển RAID "dữ liệu trên sector X trên đĩa Y trên sọc Z là sai", khi cách tiếp cận chung của bộ điều khiển RAID là trừu tượng hệ điều hành khỏi lớp lưu trữ bên dưới nhiều như khả thi?


Đây là những gì "Đọc tuần tra" hoặc kiểm tra tính nhất quán nền dành cho.
ewwhite

2
Điều đó hữu ích để phát hiện sớm các khối xấu và di chuyển dữ liệu ở nơi khác trước khi xảy ra lỗi thực tế. Nhưng nó vẫn phải đối phó với dữ liệu có thể đọc được nhưng không nhất quán . Lấy ví dụ về RAID-1 của tôi: nếu một khối trên đĩa có thể đọc được và nói "0", trong khi cùng một khối trên đĩa khác cũng có thể đọc được và nói "1", làm sao bộ điều khiển có thể biết cái nào đúng?
Massimo

Vì RAID 1 không cung cấp tính chẵn lẻ, nên hệ thống sẽ rất khó phát hiện và khắc phục sự cố. Bạn có thể sẽ phải kéo các ổ đĩa và đọc chúng riêng lẻ để có được tệp bị hỏng.
Brian D.

Giải pháp dễ dàng - sử dụng ZFS
Patrick

Câu trả lời:


3
RAID VOLUMES WITH PARITY STRIPE

Trên các bộ điều khiển Areca, chúng tôi sử dụng (và tất cả các bộ điều khiển RAID phần cứng hiện đại) trong quá trình kiểm tra tính nhất quán mà bộ điều khiển có thể phát hiện nếu tham nhũng với dữ liệu chẵn lẻ, dữ liệu vật lý trên đĩa hoặc cả hai. Hầu hết các bộ điều khiển thực hiện điều này với các bit tổng kiểm tra đơn giản cho dữ liệu chẵn lẻ và dữ liệu trên đĩa.

Trong trường hợp dữ liệu chẵn lẻ bị hỏng, bộ điều khiển sẽ nhận thấy vấn đề khi bạn chạy kiểm tra tính nhất quán và đọc lại đĩa vật lý cho các bit chính xác và ghi lại dải chẵn lẻ. Người dùng sẽ không gặp vấn đề gì vì họ đang đọc dữ liệu trên đĩa khi mở tệp. Việc lưu lại bất cứ điều gì khiến dải chẵn lẻ bị hỏng được viết lại cũng sẽ khắc phục vấn đề.

Nếu bạn có điều ngược lại xảy ra và một chút lật trong đĩa dữ liệu thực tế của bạn, thì bộ điều khiển của bạn sẽ xem xét dải chẵn lẻ trong quá trình kiểm tra tính nhất quán để xem nó có thay đổi không. Trong trường hợp này, bộ điều khiển sẽ ghi đè lên dữ liệu trên đĩa để khớp với dữ liệu chẵn lẻ, nó có thể xác nhận là không thay đổi / tốt. Người dùng sẽ gặp lỗi CRC hoặc tệp bị hỏng tùy thuộc vào dữ liệu là gì cho đến khi kiểm tra tính nhất quán được chạy và sửa lỗi.

Vì dữ liệu chẵn lẻ cho dữ liệu cụ thể trên đĩa không bao giờ được lưu trữ trên cùng một ổ đĩa với dữ liệu thực tế, một lỗi ổ đĩa không nên gây ra bất kỳ vấn đề hỏng dữ liệu nào. Hoặc hai đĩa cho RAID6, v.v.

Kiểm tra tính nhất quán giữ cho dữ liệu của bạn chính xác nhất có thể và nếu bạn để dữ liệu bị hỏng trên ổ đĩa của mình đủ lâu, nó có thể được ghi vào dữ liệu chẵn lẻ, nghĩa là tệp bị hỏng và sẽ cần được khôi phục từ bản sao lưu. Nếu một ổ đĩa ở trạng thái trước khi nó bị lỗi trong quá trình kiểm tra tính nhất quán, hãy thay thế ổ đĩa ngay lập tức thay vì chờ bộ điều khiển đánh dấu nó là thất bại. Chúng tôi chạy kiểm tra tính nhất quán hàng ngày trên khối lượng nhỏ hơn và hàng tuần trên những cái lớn hơn.

RAID VOLUMES WITHOUT PARITY STRIPE (EX. RAID1)

Bộ điều khiển / phần sụn ổ cứng có thể khắc phục sự cố. Nếu điều này là không thể, bộ điều khiển RAID sẽ rất khó khắc phục sự cố. Trong trường hợp này, bạn có thể phải đọc các ổ đĩa riêng lẻ để khôi phục dữ liệu.

GENERALLY SPEAKING

Chạy kiểm tra tính nhất quán trong khoảng thời gian được đề xuất bởi mfg thẻ RAID của bạn. Nếu bạn thực sự lo lắng về tham nhũng, bạn cũng có thể xếp một hệ thống tệp linh hoạt trên một ổ RAID. Các hệ thống tệp khả năng phục hồi hiện đại có thể khắc phục nhiều vấn đề về tính toàn vẹn dữ liệu này và việc xếp một FS có khả năng phục hồi trên RAID6 sẽ cung cấp cho bạn thời gian hoạt động dữ liệu tuyệt vời mà không bị hỏng. Và ngay cả với 2 lỗi ổ đĩa đồng thời, bạn vẫn sẽ có sẵn dữ liệu chẵn lẻ của FS để tránh trình bày dữ liệu bị hỏng cho người dùng.


2

Bạn mô tả hiệu quả tình huống, trong đó một đĩa ghi (hoặc đọc) một lỗi. Bộ điều khiển RAID không có cách thực tế (ví dụ ghi và đọc lại sẽ giết chết hiệu suất của bạn) để bảo vệ chống lại tình huống này. Nó phải dựa vào các đĩa có khả năng phát hiện loại lỗi này và sử dụng một khối khác hoặc bảo lãnh ra khỏi ổ đĩa - gây ra sự xuống cấp của RAID.

Nếu bạn nghĩ về tình huống đĩa đơn, bảo vệ duy nhất chống lại việc ghi (hoặc đọc) không nhất quán là chính đĩa. RAID dựa trên điều đó, nhưng không giới thiệu một biện pháp bảo vệ bổ sung.

NB Tôi biết từ kinh nghiệm rằng XFS phản ứng khá hợp lý với các đĩa bị lỗi trong một mảng. Vì vậy, ít nhất các bộ điều khiển không cấp thấp của tôi và HĐH đã nhận ra nhưng không bảo vệ chống lại sự không nhất quán đó (một đĩa bị lỗi được thêm mạnh vào một ổ đĩa).

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.