giải thích md's raid10, f2


14

Tôi biết hầu hết các RAID hoạt động như thế nào. Nhưng tôi đã vấp phải chế độ raid10, f2 được đề xuất trong khi nghiên cứu đột kích phần mềm linux. Tôi thực sự không hiểu làm thế nào nó hoạt động trên 2 hoặc 3 đĩa. ai đó có thể giải thích cho tôi? hoặc chỉ cho tôi một bài viết thực sự tốt giải thích nó?

Câu trả lời:


17

thực sự tôi nghĩ Wikipedia giải thích nó tốt hơn các tài liệu thực tế. Đây là văn bản từ bài viết.

Có thể sử dụng trình điều khiển RAID phần mềm nhân Linux (gọi là md, cho "nhiều thiết bị") để xây dựng mảng RAID 1 + 0 cổ điển, nhưng cũng (từ phiên bản 2.6.9) dưới dạng một cấp [4] với một số tiện ích mở rộng thú vị [ 5]. Bố cục "gần" tiêu chuẩn, trong đó mỗi đoạn được lặp lại n lần trong một mảng sọc k-way, tương đương với cách sắp xếp RAID-10 tiêu chuẩn, nhưng không yêu cầu n chia k. Ví dụ: bố cục n2 trên các ổ đĩa 2, 3 và 4 sẽ như sau:

2 drives         3 drives            4 drives
--------         ----------        --------------
A1  A1           A1  A1  A2        A1  A1  A2  A2
A2  A2           A2  A3  A3        A3  A3  A4  A4
A3  A3           A4  A4  A5        A5  A5  A6  A6
A4  A4           A5  A6  A6        A7  A7  A8  A8
..  ..           ..  ..  ..        ..  ..  ..  ..

Ví dụ 4 ổ đĩa giống hệt với mảng RAID-1 + 0 tiêu chuẩn, trong khi ví dụ 3 ổ đĩa là phần mềm triển khai RAID-1E. Ví dụ 2 ổ đĩa tương đương RAID 1. Trình điều khiển cũng hỗ trợ bố trí "xa" trong đó tất cả các ổ đĩa được chia thành các phần f. Tất cả các khối được lặp lại trong mỗi phần nhưng được bù bởi một thiết bị. Ví dụ, bố trí f2 trên mảng 2 và 3 ổ đĩa sẽ trông như sau:

2 drives             3 drives
--------             --------------
A1  A2               A1   A2   A3
A3  A4               A4   A5   A6
A5  A6               A7   A8   A9
..  ..               ..   ..   ..
A2  A1               A3   A1   A2
A4  A3               A6   A4   A5
A6  A5               A9   A7   A8
..  ..               ..   ..   ..

Điều này được thiết kế để phân chia hiệu năng của một mảng được nhân đôi; Việc đọc tuần tự có thể bị sọc, vì trong RAID-0, việc đọc ngẫu nhiên có phần nhanh hơn (có thể 10-20% do sử dụng các phần bên ngoài nhanh hơn của đĩa và thời gian tìm kiếm trung bình nhỏ hơn) và ghi tuần tự và ngẫu nhiên có hiệu suất tương đương cho các cuộc đột kích nhân đôi khác. Bố cục thực hiện tốt cho các hệ thống mà việc đọc thường xuyên hơn mà viết, đó là một tình huống rất phổ biến trên nhiều hệ thống. 1 / f đầu tiên của mỗi ổ đĩa là một mảng RAID-0 tiêu chuẩn. Do đó, bạn có thể có được hiệu năng phân chia trên một bộ nhân đôi chỉ có 2 ổ đĩa. Các tùy chọn gần và xa đều có thể được sử dụng cùng một lúc. Các khối trong mỗi phần được bù bởi n thiết bị. Ví dụ: bố cục n2 f2 lưu trữ 2 × 2 = 4 bản sao của mỗi khu vực, do đó cần ít nhất 4 ổ đĩa:

A1  A1  A2  A2        A1  A1  A2  A2  A3
A3  A3  A4  A4        A3  A4  A4  A5  A5
A5  A5  A6  A6        A6  A6  A7  A7  A8
A7  A7  A8  A8        A8  A9  A9  A10 A10
..  ..  ..  ..        ..  ..  ..  ..  ..
A2  A2  A1  A1        A2  A3  A1  A1  A2
A4  A4  A3  A3        A5  A5  A3  A4  A4
A6  A6  A5  A5        A7  A8  A6  A6  A7
A8  A8  A7  A7        A10 A10 A8  A9  A9
..  ..  ..  ..        ..  ..  ..  ..  ..

Kể từ Linux 2.6.18, trình điều khiển cũng hỗ trợ bố trí bù trong đó mỗi dải được lặp lại o lần. Ví dụ: bố trí o2 trên mảng 2 và 3 ổ được trình bày dưới dạng:

2 drives       3 drives
--------       --------
A1  A2         A1  A2  A3
A2  A1         A3  A1  A2
A3  A4         A4  A5  A6
A4  A3         A6  A4  A5
A5  A6         A7  A8  A9
A6  A5         A9  A7  A8
..  ..         ..  ..  ..

Lưu ý: k là số lượng ổ đĩa, n #, f # và o # là các tham số trong tùy chọn mdadm --layout. Linux cũng có thể tạo các cấu hình RAID tiêu chuẩn khác bằng trình điều khiển md (0, 1, 4, 5, 6).


6

Từ những gì tôi đọc một f2 mảng RAID10 giữ ít nhất 2 bản sao của mỗi khối và họ lưu trữ xa nhau.

Dưới đây là các phần có liên quan từ các trang người đàn ông.

mdadm (8)

-p, --layout = Tùy chọn này định cấu hình chi tiết tốt về bố cục dữ liệu cho raid5 và mảng raid10
...
Cuối cùng, các tùy chọn bố trí cho RAID10 là một trong các 'n', 'o' hoặc 'p' theo sau là nhỏ con số. Mặc định là 'n2'.

n tín hiệu 'gần' bản sao. Nhiều bản sao của một khối dữ liệu có giá trị tương tự trong các thiết bị khác nhau.

o tín hiệu 'bù' bản sao. Thay vì các khối được nhân đôi trong một sọc, toàn bộ các sọc được nhân đôi nhưng được xoay bởi một thiết bị để các khối trùng lặp nằm trên các thiết bị khác nhau. Do đó, các bản sao tiếp theo của một khối nằm trong ổ đĩa tiếp theo và là một đoạn tiếp theo.

f tín hiệu ' xa ' bản sao (nhiều bản sao có offsets rất khác nhau). Xem md (4) để biết thêm chi tiết về 'gần' và 'xa'.

md (4)

RAID10 cung cấp sự kết hợp của RAID1 và RAID0, và đôi khi được gọi là RAID1 + 0. Mỗi datablock được nhân đôi một số lần và tập hợp dữ liệu kết quả được phân phối trên nhiều ổ đĩa. Khi định cấu hình mảng RAID10, cần chỉ định số lượng bản sao của từng khối dữ liệu được yêu cầu (thông thường sẽ là 2) và liệu các bản sao sẽ là 'gần', 'bù' hay 'xa'. (Lưu ý rằng bố cục 'offset' chỉ khả dụng từ 2.6.18).

Khi các bản sao ' gần ' được chọn, nhiều bản sao của một đoạn nhất định được đặt liên tiếp trên các sọc của mảng, do đó hai bản sao của một cơ sở dữ liệu có thể sẽ ở cùng một giá trị trên hai thiết bị liền kề.

Khi các bản sao ' xa ' được chọn, nhiều bản sao của một đoạn nhất định sẽ được đặt cách xa nhau. Bản sao đầu tiên của tất cả các khối dữ liệu sẽ được sọc trên phần đầu của tất cả các ổ đĩa theo kiểu RAID0, và sau đó bản sao tiếp theo của tất cả các khối sẽ được sọc trên một phần sau của tất cả các ổ đĩa, luôn đảm bảo rằng tất cả các bản sao của bất kỳ khối nào đã cho trên các ổ đĩa khác nhau.

Sự sắp xếp ' xa ' có thể mang lại hiệu suất đọc tuần tự bằng với mảng RAID0, nhưng với chi phí cho hiệu suất ghi bị suy giảm.

Khi các bản sao 'offset' được chọn, nhiều bản sao của một đoạn nhất định sẽ được đặt trên các ổ đĩa liên tiếp và tại các lần bù liên tiếp. Thực tế, mỗi sọc được nhân đôi và các bản sao được bù bởi một thiết bị. Điều này sẽ cung cấp các đặc điểm đọc tương tự như 'xa' nếu kích thước khối lớn phù hợp được sử dụng, nhưng không có nhiều tìm kiếm để viết.

Cần lưu ý rằng số lượng thiết bị trong mảng RAID10 không cần phải là bội số của số lượng bản sao của mỗi khối dữ liệu, những thiết bị đó phải có ít nhất nhiều thiết bị như bản sao.

Ví dụ: nếu một mảng được tạo với 5 thiết bị và 2 bản sao, thì không gian tương đương với 2,5 thiết bị sẽ có sẵn và mọi khối sẽ được lưu trữ trên hai thiết bị khác nhau.


âm thanh như bù đắp là cách để đi ...
xenoterracide

Tôi nghĩ rằng lời giải thích trực quan hơn của Wikipedia rõ ràng hơn ... vì vậy tôi đã đăng nó ở đây.
xenoterracide

2

Đó là điều thú vị và được giải thích tốt. Tuy nhiên, RAID1 đơn giản cũng có tính năng, ít nhất là trên RAID phần mềm Linux, để có thể duy trì nhiều đầu đọc song song với hiệu suất rất tốt:

Dữ liệu được đọc từ bất kỳ một thiết bị. Trình điều khiển cố gắng phân phối các yêu cầu đọc trên tất cả các thiết bị để tối đa hóa hiệu suất.
[...] Về lý thuyết, có RAID1 đĩa N sẽ cho phép N luồng liên tiếp đọc từ tất cả các đĩa. (người đàn ông 4 md, phần RAID1)

Dường như RAID10, trong bố cục gần của nó, phù hợp hơn với hành vi này (tăng tốc không phải I / O đơn luồng như RAID0 mà là I / O đa luồng). n2f2 với 4 đĩa tương tự RAID1 với 4 đĩa.

Bố cục n2 với 4 đĩa sẽ thực hiện cả hai: tăng gấp đôi hiệu suất đọc cho một luồng và tăng gấp bốn lần hiệu suất đọc cho hai luồng (nếu bộ lập lịch md RAID10 của Linux được triển khai tốt, một luồng nên đọc trên một cặp và một luồng khác cặp kia).

Tất cả phụ thuộc vào những gì bạn cần! Tôi chưa làm điểm chuẩn.

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.