Tìm kiếm lần
Vấn đề là, khuếch đại ghi tìm hành vi rất khác với khuếch đại thông lượng ghi . Sự khuếch đại thông lượng ghi tối thiểu với tính chẵn lẻ xảy ra khi toàn bộ một dải được viết cùng một lúc (hãy gọi tính từ này là 'toàn dải') nhưng ngược lại, sự khuếch đại tìm kiếm ghi tối thiểu xảy ra, ngược lại, khi toàn bộ ghi sau khi tìm kiếm trong thiết bị ảo khớp với một đoạn duy nhất. Trước khi đi vào chi tiết, các mối quan hệ dễ dàng hơn nhiều để truyền đạt dưới dạng bảng:
RAID | write throughput amplification factor | write seek amplification factor
| full-stripe (e.g.) | single-chunk | full-stripe | single-chunk
0 | 1 ; 1 | 1 ; 1 | n ; 12 | 1 ; 1
1 | n ; 12 | n ; 12 | n ; 12 | n ; 12
5 | n/(n - 1) ; ~1.1 | min [3, n] ; 3 | n ; 12 | min [3, n] ; 3
6 | n/(n - 2) ; 1.2 | min [5, n] ; 5 | n ; 12 | min [5, n] ; 5
*1+0 | n₁ ; 3 | n₁ ; 3 | n ; 12 | n₁ ; 3*
1+5 | n/(n₅ - 1) ; 2.4 | expr₁ ; 5 | n ; 12 | expr₁ ; 5
*1+6 | n/(n₆ - 2) ; 3 | expr₂ ; 8 | n ; 12 | expr₂ ; 8*
expr₁ = 2n₁ + min [1, n₅ - 2]
expr₂ = 3n₁ + min [2, n₆ - 3]
Trong đó n là tổng số ổ đĩa, n₁ là số lượng ổ đĩa trong các nhóm RAID 1 và n₅ và n₆ là số lượng nhóm trong mảng RAID 5 hoặc RAID 6 tương ứng. Các ví dụ liên quan đến ví dụ 12 ổ đĩa trong câu hỏi (các hàng có liên quan là ' *bolded*
'); ví dụ cho các cấp độ RAID 1 + 0, 1 + 5, 1 + 6 lần lượt là 4 × 3, 6 × 2, 6 × 2.
Lưu ý rằng chỉ có hệ số khuếch đại thông lượng ghi toàn dải có liên quan trực tiếp đến tỷ lệ dự phòng. Các trường hợp đơn chunk phức tạp hơn cho những người có tương đương. Chúng phát sinh bởi vì viết một đoạn đơn yêu cầu đọc bất kỳ đoạn nào là dễ nhất trong các đoạn dữ liệu chẵn lẻ hoặc các đoạn dữ liệu khác, trước khi viết các đoạn chẵn lẻ cùng với khối dữ liệu mới. (Chúng không được nhân trực tiếp bởi vì các lần đọc cảm ứng thay vào đó phải được nhân với hệ số khuếch đại đọc / tìm kiếm tương ứng cho RAID 1, cả hai đều là 1; xem bên dưới.)
Thật không may, việc chọn kích thước khối giúp giảm thiểu khuếch đại thông lượng ghi thêm này có tác dụng phụ là thực sự tối đa hóa là khuếch đại tìm kiếm ghi. Đối với các ghi nhỏ với thời gian ghi không đáng kể so với thời gian tìm kiếm, hiệu suất ghi của dải với kích thước khối rất nhỏ (phải là toàn dải) chỉ là 1 ×, như phản chiếu, vì nó yêu cầu tất cả các ổ đĩa phải tìm các khối cho mỗi lần ghi và thông lượng thu được từ việc huy động tất cả các ổ đĩa này là không liên quan. Nó đã chia tỷ lệ thời gian ghi để tìm thời gian cho số lượng ổ đĩa trong mảng, nhưng đối với việc ghi nhỏ thì điều này đã không đáng kể. Sẽ không có nghĩa gì khi sử dụng kích thước khối nhỏ đến mức làm cho ngay cả những chữ viết nhỏ xíu cũng có đầy đủ. Đối với viết đủ nhỏ để cảm nhận được hiệu quả của việc tìm kiếm, tốt nhất là chúng phù hợp trong một đoạn duy nhất.
RAID | large contiguous write throughput | concurrent tiny writes throughput
| full-stripe | single-chunk | full-stripe | single-chunk
0 | n× ; 12× | n× ; 12× | 1× ; 1× | n× ; 12×
1 | 1× ; 1× | 1× ; 1× | 1× ; 1× | 1× ; 1×
5 | (n - 1)× ; 11× | max[n/3, 1]×; 4× | 1× ; 1× | max[n/3, 1]×; 4×
6 | (n - 2)× ; 10× | max[n/5, 1]×; 2.4× | 1× ; 1× | max[n/5, 1]×; 2.4×
*1+0 | n₀× ; 4× | n₀× ; 4× | 1× ; 1× | n₀× ; 4× *
1+5 | (n₅ - 1)×; 5× | expr₃× ; 2.4× | 1× ; 1× | expr₃× ; 2.4×
*1+6 | (n₆ - 2)×; 4× | expr₄× ; 1.5× | 1× ; 1× | expr₄× ; 1.5×*
expr₃ = n/(2n₁ + min [1, n₅ - 2]) = max [n/(2n₁ + 1), n/(2n₁ + n₅ - 2)]
expr₄ = n/(3n₁ + min [2, n₆ - 3]) = max [n/(3n₁ + 2), n/(3n₁ + n₆ - 3)]
Lưu ý: Có thể bỏ qua các cột thông lượng giữa 2 với kích thước khối hợp lý lớn hơn ghi mà thời gian tìm kiếm là đáng kể, nhưng đủ nhỏ để ghi lớn có đầy đủ. Kích thước khối lớn của cột thông lượng thứ 2 gần giống với các ổ đĩa được kéo dài. Chữ viết 'nhỏ' là nơi ảnh hưởng của thông lượng không đáng kể.
Có kích thước khối nhỏ không phù hợp cũng làm tăng hiệu quả của việc tìm kiếm khuếch đại cho các lần đọc, mặc dù không nhiều và chỉ trong trường hợp toàn dải.
RAID | read throughput amplification factor | read seek amplification factor
| full-stripe | single-chunk | full-stripe (e.g.) | single-chunk
0 | 1 | 1 | n to n; 12 | 1
1 | 1 | 1 | 1 to n; 1–12 | 1
5 | 1 | 1 | n - 1 to n; 11–12 | 1
6 | 1 | 1 | n - 2 to n; 10–12 | 1
*1+0 | 1 | 1 | n₀ to n; 4–12 | 1 *
1+5 | 1 | 1 | n₅ - 1 to n; 5–12 | 1
*1+6 | 1 | 1 | n₆ - 2 to n; 4–12 | 1 *
Lưu ý: 'đến n' là vì khi chỉ có một lần đọc xảy ra đồng thời, về mặt lý thuyết có thể huy động tất cả các ổ đĩa để tìm đến những nơi thích hợp và đọc chung dữ liệu cho thông lượng đọc tiếp giáp lớn nhất.
RAID | large contiguous read throughput | concurrent tiny reads throughput
| full-stripe (e.g.)| single-chunk | full-stripe | single-chunk
0 | n× ; 12× | n× ; 12× | 1× ; 1× | n× ; 12×
1 | n× ; 12× | n× ; 12× | n× ; 12× | n× ; 12×
5 | n× ; 12× | n× ; 12× | n/(n - 1)× ; ~1.1× | n× ; 12×
6 | n× ; 12× | n× ; 12× | n/(n - 2)× ; 1.2× | n× ; 12×
*1+0 | n× ; 12× | n× ; 12× | n₁× ; 3× | n× ; 12×*
1+5 | n× ; 12× | n× ; 12× | n/(n₅ - 1)× ; 2.4× | n× ; 12×
*1+6 | n× ; 12× | n× ; 12× | n/(n₆ - 2)× ; 3× | n× ; 12×*
Lưu ý: Một lần nữa, các cột thông lượng giữa có thể được bỏ qua với kích thước khối hợp lý. Cột thông lượng thứ 3 một lần nữa được kết nối chặt chẽ với tỷ lệ dự phòng.
Tuy nhiên, kích thước khối đủ lớn có nghĩa là các lần đọc nhỏ không bao giờ là toàn dải. Vì vậy, được thực hiện hiệu quả và kích thước khối phù hợp, hiệu suất đọc phải tỷ lệ thuận với số lượng ổ đĩa giống hệt nhau khi không bị suy giảm.
Vì vậy, thực sự, "hệ số khuếch đại" phức tạp hơn nhiều so với công thức trong câu hỏi, trong đó chỉ xem xét khuếch đại thông lượng toàn dải. Cụ thể, hiệu suất ghi của 6 × 2 RAID 1 + 6 đối với ghi đồng thời đủ nhỏ để bị ràng buộc tìm kiếm sẽ kém hơn so với 4 × 3 RAID 1 + 0. Và đối với các bài viết nhỏ, tất cả đều được tìm kiếm, hiệu suất chỉ có thể bằng khoảng 3 so với 4 × 3 RAID 1 + 0 ở mức tuyệt đối tốt nhất (nghĩa là được thực hiện hoàn hảo).
Đã giải quyết được vấn đề đó, so sánh 12 ổ không có người chiến thắng hoàn toàn:
| 4×3 RAID 1+0 | 6×2 RAID 1+6
number of identical 1TB drives | 12 | 12
storage capacity | 4TB | 4TB
redundancy proportion | 2/3 | 2/3
large contiguous write throughput | 4× | 4×
large contiguous read throughput | 12× | 12×
concurrent tiny writes throughput |*4× | 1.5×
concurrent tiny reads throughput | 12× | 12×
safe number of random drive loses | 2 |*5
12 - 1 large write throughput | 4× | 4×
12 - 1 large read throughput | 8× |*11×
12 - 1 tiny writes throughput |*4× | ~1.42×
12 - 1 tiny reads throughput | 8× |*~9.33×
can split-off a copy for backup | yes[1] | yes[1]
2-site failover | yes | yes
2-copy large write throughput | 4× | 4×
2-copy large read throughput |*8× | 6×
2-copy tiny writes throughput |*4× | ~1.28×
2-copy tiny reads throughput |*8× | 6×
2-copy safe random drive loses | 1 |*2
2-copy - 1 large write throughput | 4× | 4×
2-copy - 1 large read throughput | 4× |*5× or 6×[2]
2-copy - 1 tiny writes throughput |*4× | ~1.46× or 1.2×[2]
2-copy - 1 tiny reads throughput | 4× |*3.6x or 6×[2]
can be divided into 3 full copies | yes | yes
3-site failover | yes | yes
1-copy large write throughput | 4× | 4×
1-copy large read throughput | 4× | 4×
1-copy tiny writes throughput |*4× | ~0.85×
1-copy tiny reads throughput |*4× | 2×
1-copy safe random drive loses | 0 | 0
complexity |*simple | more complex
Lưu ý 1: Một bản sao đầy đủ của dữ liệu được lưu trữ tương ứng là một bộ tứ RAID 0 hoặc một mảng RAID 6 bị suy giảm 4/6. Lưu ý 2: Có khả năng thậm chí là lỗi ổ đĩa có làm mất đi một trong 4 cặp RAID 1 bị xuống cấp hay làm giảm một trong 2 cặp bình thường hay không.
Tuy nhiên, nó sẽ tăng gấp đôi hiệu suất đọc của một mảng 6 ổ RAID 6 và thông lượng ghi nhỏ sẽ tốt hơn 25% (1,5 / 1,2) do các lần đọc yêu cầu được phân chia giữa các cặp RAID 1 và rõ ràng RAID 6 có các ứng dụng phù hợp, vì vậy trong các ứng dụng của tính sẵn sàng cao có ghi lớn hơn hoặc được nhiều lo ngại về hiệu suất đọc hơn hiệu suất ghi, có lẽ đó là một niche cho RAID 1 + 6 sau tất cả. Nhưng đó không phải là tất cả…
Phức tạp
Đây vẫn chỉ là lý thuyết cho đến nay (chủ yếu là tổ hợp ), trong thực tế, sự phức tạp sẽ có nghĩa là việc triển khai RAID 1 + 6 có thể có những thiếu sót mà bỏ lỡ cơ hội và không đạt được kết quả lý thuyết. RAID 6 đã phức tạp hơn và việc lồng vào làm tăng thêm một chút phức tạp trên đỉnh này.
Ví dụ, không rõ ràng ngay lập tức rằng 6 × 2 RAID 1 + 6 có thể được trừu tượng hóa khi có 3 đầu đọc ảo độc lập có khả năng đọc đồng thời 3 lần đọc lớn liền kề ở tốc độ 4 × mỗi lần, giống như 4 × 3 RAID 1 + 0. Đơn giản chỉ cần lồng 6 cặp RAID 1 trong mảng RAID 6 bằng phần mềm RAID có thể không quá trang nhã; việc thực hiện có thể là ngu ngốc và ly kỳ (mặc dù tôi chưa thử nghiệm giả thuyết này).
Sự phức tạp cũng thể hiện sự gia tăng chi phí phát triển các triển khai và công cụ. Mặc dù có thể có các ứng dụng có thể được hưởng lợi từ việc lồng nhau như vậy, các cải tiến có thể không xứng đáng với chi phí phát triển.