Làm thế nào để chẵn lẻ hoạt động trên một mảng RAID-5?


31

Tôi đang tìm cách xây dựng một mảng RAID nhỏ để sao lưu chuyên dụng. Tôi muốn có khoảng 2-4TB dung lượng trống, vì tôi có thói quen nhỏ khó chịu này là số hóa mọi thứ. Vì vậy, tôi cần rất nhiều dung lượng lưu trữ và rất nhiều dự phòng trong trường hợp ổ đĩa bị lỗi. Về cơ bản, tôi cũng sẽ sao lưu 2-3 /homethư mục của máy tính bằng một trong những bản sao "Cỗ máy thời gian" cho Linux. Mảng này sẽ có thể truy cập qua mạng cục bộ của tôi thông qua SSH.

Tôi đang gặp khó khăn trong việc hiểu RAID-5 đạt được tính chẵn lẻ như thế nào và thực sự cần bao nhiêu ổ đĩa. Người ta sẽ cho rằng nó cần 5 ổ đĩa, nhưng tôi có thể sai. Hầu hết các sơ đồ tôi nhìn thấy chỉ làm tôi bối rối. Có vẻ như đây là cách RAID-5 hoạt động, vui lòng sửa cho tôi vì tôi chắc chắn rằng tôi không nắm bắt đúng cách:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

Dường như các ổ 1-3 xuất hiện và hoạt động như một ổ đĩa lớn ( capacity * number_of_drives) và ổ đĩa chẵn lẻ sao lưu các ổ đĩa đó. Điều có vẻ lạ đối với tôi là tôi thường thấy 3+ ổ lưu trữ trong sơ đồ chỉ có 1 hoặc 2 ổ tương đương. Giả sử chúng tôi đang chạy 4 ổ 1TB trong một mảng RAID-5, 3 lưu trữ đang chạy và 1 tương đương đang chạy, chúng tôi có 3TB dung lượng lưu trữ thực tế, nhưng chỉ có 1TB tương đương!?

Tôi biết tôi đang thiếu một cái gì đó ở đây, ai đó có thể giúp tôi không? Ngoài ra, đối với trường hợp sử dụng của tôi, điều gì sẽ tốt hơn, RAID-5 hoặc RAID-6? Khả năng chịu lỗi là ưu tiên cao nhất đối với tôi vào thời điểm này, vì nó sẽ được chạy qua một mạng để sử dụng ngôi nhà duy nhất, tốc độ không phải là vô cùng quan trọng.

Câu trả lời:


30

Nó chỉ XOR mỗi bit tương ứng từ mỗi ổ đĩa - Nếu bạn mất bất kỳ ổ đĩa nào, bạn có thể xây dựng lại dữ liệu bị thiếu.

Đối với nền:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

Giả sử rằng D là XOR của các cột khác, miễn là bạn chỉ mất một ổ đĩa, bạn có thể tìm ra những gì bạn đã mất.

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

Một số lần bit sọc sẽ được phân phối trên các ổ đĩa, nhưng khái niệm là như nhau.

Vì vậy, đối với RAID-5, cho dù có bao nhiêu ổ đĩa, bạn chỉ cần 1 ổ đĩa cho chẵn lẻ bằng hoặc lớn hơn ổ đĩa nhỏ nhất trong mảng bạn muốn RAID.

RAID-5 cho sử dụng cá nhân có lẽ là tốt nhất vì độ phức tạp tính toán thấp hơn nhiều so với RAID-6.

RAID-6 phức tạp hơn khi sử dụng Galois Field để tính toán chẵn lẻ. Và điều đó có thể tính thuế ngang giá. Tuy nhiên, bạn có thể mất nhiều ổ đĩa hơn, nhưng nếu bạn xây dựng lại mảng của mình ngay khi gặp một lỗi duy nhất, bạn sẽ ổn khi gắn bó với RAID-5.


Câu trả lời tuyệt vời. Tôi đã suy nghĩ ở quy mô quá lớn, trên cơ sở đĩa cứng hoàn chỉnh thực tế, thay vì ở cấp độ bit. Vì vậy, RAID-5 có sử dụng một ổ đĩa chuyên dụng cho tính chẵn lẻ, hay đúng hơn là tất cả các ổ đĩa cho tính chẵn lẻ? Tôi bối rối về điều đó.
Naftuli Kay

2
Tôi tin rằng phương pháp hiện đại là phân phối chẵn lẻ theo đường chéo trên tất cả các ổ đĩa. Điều này có tác dụng tăng tốc thời gian đọc lên các bit chẵn lẻ vì nhiều yêu cầu IO có thể được gửi song song đến các ổ đĩa khác nhau, nhưng đừng trích dẫn tôi về điều đó.
Matt

Có một công thức toán học nào tôi có thể sử dụng để xác định dung lượng xổ đĩa và yGB có sẵn trên mỗi ổ đĩa không?
Naftuli Kay

2
Vâng, đó là (kích thước ổ đĩa nhỏ nhất) * (số lượng ổ đĩa trong mảng - 1)
Matt

1
Nếu chẵn lẻ chỉ là một XOR của hai đĩa khác, làm thế nào để bạn biết cái nào trong hai đĩa bị hỏng? Sẽ không một chút lật trên một trong hai đĩa dẫn đến một chút lật trong chẵn lẻ?
Jay Sullivan

8

Đây là những gì tôi nghĩ là một sơ đồ tốt hơn để cho thấy tính chẵn lẻ hoạt động như thế nào trong RAID4 và RAID5

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

Hoặc, hãy xem SVG này trên Wikipedia en.wikipedia.org/wiki/St
Chuẩn_RAID_levels # / media / trộm

4

Tôi khuyên bạn nên đọc bài viết Wikipedia này về Raid 5 và Raid 6

http://en.wikipedia.org/wiki/St Chuẩn_RAID_levels # RAID_5_parity_handling

RAID 5 ghi một khối chẵn lẻ trong mỗi dải, do đó, đối với Dải A của một mảng 4 đĩa, nó ghi kiểm tra chẵn lẻ trên đĩa thứ 4, với Dữ liệu trên các đĩa 1, 2 và 3

Đối với Dải B, khối chẵn lẻ nằm trên đĩa 3, với dữ liệu trên các đĩa 1,2 và 4 .. vv ..

Nếu nói đĩa 4 không thành công, dữ liệu có thể được phục hồi cho Dải B vì bạn biết dữ liệu trên đĩa 1 và 2 và kiểm tra chẵn lẻ trên đĩa 3.

Nếu dải B có chẵn lẻ là "2" và đĩa 1 có dữ liệu là "1" và dữ liệu đĩa 2 "0" thì đĩa 4 phải có dữ liệu bằng "1" để đĩa được ghi với dữ liệu = "1"

Toàn bộ đĩa có thể được tạo lại theo cách này, RAID 6 mở rộng điều này bằng cách có 2 khối bên trên mỗi sọc.

Về không gian cho Raid 5, bạn chỉ mất một đĩa có giá trị bằng nhau, vì nó chỉ ghi trên khối chẵn lẻ trên mỗi sọc, trong khi với Raid 6, bạn sẽ mất 2 đĩa nhưng cũng có thể mất hai đĩa thay vì ổ bạn có thể mất Đột kích 5;)

Bài viết Wikipedia giải thích điều này tốt hơn!


3

RAID 5 sử dụng một ổ đĩa cho tính chẵn lẻ, bất kể có bao nhiêu ổ dữ liệu trong mảng. Điều này có nghĩa là nó trở nên hiệu quả hơn, về mặt không gian có thể sử dụng, càng nhiều ổ đĩa được thêm vào.

Tính chẵn lẻ đạt được bằng cách thực hiện thao tác XOR trên cùng một khối trong mỗi ổ đĩa; nội dung của ổ đĩa chẵn lẻ được điều chỉnh sao cho tất cả các ổ XOR về 0 . Điều này không có nghĩa là RAID 5 bị hạn chế bởi dung lượng nhỏ nhất trong tất cả các ổ đĩa trong mảng.

RAID 6 tương tự ngoại trừ hai lỗi ổ đĩa đồng thời có thể được chấp nhận. Điều này rất hữu ích vì quá trình " phục hồi " một mảng sau một lỗi ổ đĩa có thể đủ căng thẳng để khiến ổ đĩa thứ hai bị hỏng.


Vậy điều đó có nghĩa là tôi có thể có 4 ổ 2TB và có 6TB dung lượng lưu trữ dự phòng hiệu quả?
Naftuli Kay

@TK Kocheran Với RAID 5, vâng. Lưu ý rằng việc lưu trữ hiệu quả sẽ ít hơn một chút do hệ thống tệp. Ví dụ: NAS của tôi với 4 ổ 2TB trong RAID-Z1 (phiên bản RAID 5 của ZFS) có không gian có thể sử dụng là 5,18TB.
sblair

Vâng, tất nhiên :) Luôn luôn xảy ra theo cách đó. Câu hỏi tiếp theo là sử dụng hệ thống tập tin nào ...
Naftuli Kay

0

Nếu khả năng chịu lỗi là mục tiêu của bạn, RAID-6 sẽ cung cấp đủ số lượng dự phòng để mất hai ổ đĩa. Thông thường RAID-5 sẽ chỉ chấp nhận một lỗi ổ đĩa đơn.


Tỷ lệ của các ổ đĩa tương đương (tổng dung lượng lưu trữ) cho RAID-6 là bao nhiêu? drive_size * (drive_count - 2)?
Naftuli Kay

1
Cũng như khả năng chịu lỗi cho ổ đĩa thứ hai bị hỏng trước khi bạn có thể thay thế ổ đĩa thứ nhất, có một tình huống khác rất tuyệt vời và tôi đã gặp hơn một lần: Một ổ đĩa bị hỏng trong một mảng RAID, và vì vậy ổ đĩa mới được đặt hàng. Một số anh chàng ngẫu nhiên không biết gì về mảng RAID đi vào phòng máy chủ với ổ đĩa mới trong tay, làm rối loạn việc đánh số và đẩy ổ đĩa sai ra khỏi mảng để thay thế. Trong RAID5, mảng của bạn được bắt vít ngay tại đó. RAID6 có nghĩa là bạn vẫn có thể phục hồi.
camster342
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.