Tại sao RAID 0 không thể sử dụng tất cả không gian đĩa trên hai đĩa có kích thước khác nhau?


9

Để trích dẫn bài viết Wikipedia về RAID :

RAID 0 có thể được tạo với các đĩa có kích thước khác nhau, nhưng không gian lưu trữ được thêm vào mảng bởi mỗi đĩa bị giới hạn ở kích thước của đĩa nhỏ nhất. Ví dụ: nếu một đĩa 100 GB bị sọc cùng với một đĩa 350 GB, kích thước của mảng sẽ là 200 GB (100 GB × 2).

Tuy nhiên, bài viết không nêu rõ lý do tại sao nó không thể RAID chúng lại với nhau và sử dụng toàn bộ dung lượng đĩa. Tôi hiểu rằng việc phân chia ghi giữa hai phần, nhưng chắc chắn nó không nên ngăn việc ghi vào các phần sau của đĩa thứ hai, trong khi chạy trong hiệu suất bị suy giảm? Có một hệ thống RAID thay thế (ví dụ RAID phần mềm) cung cấp tính năng như vậy không?


Tôi không chắc liệu điều này có hoạt động với một số cuộc tấn công phần cứng không nhưng với các cuộc tấn công phần mềm, Để tận dụng một số khía cạnh của cuộc đột kích 0 trong khi sử dụng nhiều không gian có sẵn trên hai ổ đĩa có kích thước khác nhau như một ổ 100 GB và một 350 GB bạn có thể thử tạo 3 Phân vùng 100 GB trên ổ đĩa lớn hơn và sọc phân vùng 100KB trên ổ đĩa thứ nhất và 3 phân vùng 100 GB trên ổ đĩa thứ hai. Raid level 0 sẽ cung cấp cho bạn 400 hợp đồng biểu diễn để sử dụng trong khi cung cấp một số tăng hiệu suất đọc / ghi, nhưng có lẽ sẽ ít hơn nếu bạn sọc hai ổ đĩa 200 GB.
Keith Reynold

Thông thường bạn sẽ không muốn làm điều này, Vì mục đích trình diễn, tôi đã thiết lập RAID0 bằng một ổ đĩa flash 1G và 16G. Tôi đã thực hiện một phân vùng mở rộng lấp đầy mỗi đĩa. Sau đó, tôi đã tạo một phân vùng 981 MB trên mỗi ổ đĩa cho đến khi chúng đầy. Sau đó, tôi thực hiện một cuộc đột kích bằng cách sử dụng 16 phân vùng với lệnh trên linux mdadm --create --verbose /dev/md0 --chunk=512 -l0 -n16 /dev/sdd5 /dev/sde5 /dev/sde6 /dev/sde7 /dev/sde8 /dev/sde9 /dev/sde10 /dev/sde11 /dev/sde12 /dev/sde13 /dev/sde14 /dev/sde15 /dev/sde16 /dev/sde17 /dev/sde18 /dev/sde19. Tôi đã kết thúc với ít dung lượng hơn so với việc tôi vừa sử dụng ổ đĩa 16 GB
Keith Reynold

Câu trả lời:


10

Lý do kích thước bị giới hạn ở kích thước của đĩa nhỏ nhất có liên quan đến thực tế là các sọc được viết "xen kẽ" và phải có cùng kích thước.

Trong một hệ thống hai đĩa, tất cả các sọc lẻ nằm trên một đĩa, các sọc chẵn trên đĩa kia. Ghi xen kẽ giữa các đĩa, lẻ / chẵn / lẻ / chẵn / ...

Vì các sọc phải có cùng kích thước và được ghép nối (đối với hai đĩa), bạn bị giới hạn trong không gian có thể sử dụng tối đa là 2 * (kích thước của đĩa nhỏ nhất).


2

Bạn có thể sử dụng không gian còn lại. Bạn có thể tạo một âm lượng bằng cách sử dụng không gian còn lại hoặc thậm chí sử dụng nó như một phần của RAID khác. Tuy nhiên, việc sử dụng không gian bổ sung này sẽ làm giảm hiệu suất mà RAID 0 mang lại cho bạn, vì hai quá trình khác nhau có thể đang cố truy cập vào cùng một bộ điều khiển vật lý và đĩa.

Tại sao bạn không thể thêm không gian bổ sung này vào RAID gốc? Chà, không đi sâu vào chi tiết, đó là do thuật toán RAID sử dụng. RAID 0 ghi vào đĩa đầu tiên trong RAID sau đó tiếp theo. Điều này làm tăng hiệu suất, vì nó không phải đợi đĩa trước đó đọc xong hoặc ghi. Nếu 250 GB trong bài đăng của bạn đã được sử dụng, phần lớn ghi sẽ là vào đĩa đầu tiên, loại bỏ khá nhiều hiệu suất đạt được.

RAID có thể không phải là giải pháp bạn đang tìm kiếm, nếu bạn muốn sử dụng tất cả dung lượng của các ổ đĩa bạn nên sử dụng trong các ổ đĩa. Spanning cho phép bạn lấy nhiều tập và ghép chúng lại với nhau thành một tập lớn. Spanning cung cấp không tăng hiệu suất hoặc dự phòng.


Điều này không giải thích tại sao nó không thể sử dụng tất cả hai ổ đĩa trong một ổ đĩa. Ngoài ra, phần âm lượng riêng biệt sẽ không gây ra vấn đề về hiệu năng - điều khiển IO của đĩa ở mức thấp được xử lý bằng các ngắt thông qua đĩa.sys, do đó, các yêu cầu đọc / ghi cũng được xử lý và Windows cũng hỗ trợ IO chồng chéo.
Đa thức

Ok, bạn cập nhật vẫn không giải thích nó. Tôi quen thuộc với cách phân chia hoạt động, nhưng điều đó không giải thích tại sao nó không thể chuyển sang chế độ một đĩa đơn (với hiệu suất đĩa đơn tiêu chuẩn) khi đĩa nhỏ hơn đã đầy. Cảm ơn vì đã đề cập đến âm lượng kéo dài - có vẻ hữu ích.
Đa thức

1
Bởi vì đó là cách RAID hoạt động. Nếu bạn thực sự muốn, bạn có thể RAID 0 những gì bạn có thể, sau đó tạo một âm lượng với không gian trống, sau đó mở rộng RAID và âm lượng bổ sung. Nhưng tôi không nghĩ rằng bất kỳ bộ điều khiển RAID nào sẽ cho phép bạn làm điều đó. Bạn có thể làm điều đó với sự kết hợp của RAID phần cứng và phần mềm.
Keltari

1
-1 "Điều này làm tăng hiệu suất, vì nó không phải đợi đĩa trước đọc xong hoặc ghi" có thể nói tương tự đối với hai đĩa cứng có kích cỡ khác nhau trong RAID 0
Celeritas

2
@Polynomial Đó không phải là RAID 0. Bạn đã hỏi tại sao RAID 0 không thể sử dụng tất cả dung lượng đĩa và sau đó bạn trả lời "tại sao nó không thể ...". Không thể vì nó là RAID 0. Nếu nó làm một cái gì đó khác, nó sẽ là thứ khác.
David Schwartz

0

RAID là một tiêu chuẩn giả mô tả cách lưu trữ dữ liệu trên một mảng đĩa. Tiêu chuẩn mô tả bốn cách khác nhau để lưu trữ dữ liệu (về mặt kỹ thuật nhiều hơn, nhưng hầu như không ai quan tâm đến những cách khác):

Raid-0: Dải. Mỗi khối dữ liệu được phân chia theo từng thành viên của thiết bị RAID. Không có dự phòng, vì vậy nó không chỉ là một mảng của các đĩa rẻ tiền, không phải là mảng dự phòng của đĩa rẻ tiền.

Raid-1: Phản chiếu. Mỗi khối dữ liệu được lưu trữ trên mỗi đĩa trong mảng. Điều này chỉ thực sự làm cho với hai đĩa. RAID 1/0 hoặc chỉ RAID 10 là sự kết hợp giữa phản chiếu và phân loại và có thể được sử dụng để tận dụng nhiều hơn hai đĩa.

Raid-5: Chẵn lẻ. Mỗi khối dữ liệu được phân chia theo từng thành viên của thiết bị RAID + một đĩa được dành riêng cho tính chẵn lẻ.

Raid-6: Double Parity: Tương tự Raid-5, nhưng có hai đĩa chẵn lẻ.

Đó là nó. Raid không mô tả những gì cần làm về kích thước khớp sai hoặc bất cứ điều gì, nhưng tước chỉ thực sự hoạt động với các đĩa có kích thước tương đương. Thông thường, cách để khắc phục điều này là bạn có thể sử dụng không gian còn lại như một ổ đĩa riêng.

Bước ra khỏi RAID như một cách tạo ra một mảng đĩa lớn, bạn có thể sử dụng những thứ như ZFS và chỉ cần thêm đĩa vào một kho lưu trữ. ZFS sẽ luôn cố gắng sử dụng cả hai đĩa một cách hiệu quả nhất có thể và bạn có thể cho ZFS biết mức độ dự phòng mà bạn hài lòng.

Các công nghệ ưu tiên là những thứ như ánh xạ âm lượng (ví dụ LVM, hoặc tương đương với cửa sổ), trừu tượng hóa ý tưởng ánh xạ các khối vào đĩa lên mức cao hơn. Với LVM, bạn có thể trải rộng trên các đĩa, mở rộng các phân vùng, có các phân vùng không liền kề, v.v. Ánh xạ âm lượng không phải là RAID và thay vì tăng hiệu suất khi bạn tăng đĩa, nó sẽ chỉ chọn ngẫu nhiên để ghi vào đĩa này hoặc đĩa khác tùy thuộc vào vị trí của bạn trong hệ thống tệp. Điều này được gọi là mở rộng và thường tốt hơn RAID nếu bạn đang dùng IOPS thay vì hiệu năng thô.


0
A RAID 0 can be created with disks of differing sizes, but the storage
space added to the array by each disk is limited to the size of the
smallest disk.

Điều này có thể đúng và sẽ đúng với hầu hết các cài đặt RAID0. Tuy nhiên không phải cho tất cả.

Có hai lý do để sử dụng RAID 0:

  1. Kết hợp nhiều đĩa thành một khối lớn.
  2. Hiệu suất.

Tùy chọn 2 là phổ biến nhất và tôi nghĩ rằng nó được sử dụng trong hầu hết các triển khai RAID 0 hiện tại. Giải thích về công nghệ là thông tin được ghi xen kẽ giữa các đĩa.

IN một cách không kỹ thuật: nghĩ về các đĩa như hai cuốn sách. Những cuốn sách này có tốc độ truy cập (đọc / ghi) hạn chế. Vì vậy, thay vì hai cuốn sách 100 trang, chúng tôi định dạng lại chúng thành hai cuốn sách nhưng đánh số lại các trang để tất cả các số chẵn được viết trong một cuốn sách và tất cả các số lẻ trong cuốn sách khác.

Bây giờ, cuốn sách 'R0' mới của chúng tôi hoạt động nếu đó là một cuốn sách duy nhất với số lượng trang gấp đôi và tốc độ gấp đôi.


Tùy chọn 1 có thể đơn giản như 'dán vào sách trở lại'. Trong trường hợp bạn không tăng tốc nhưng bạn có thể dán sách với số trang khác nhau. Tôi dường như nhớ lại một số triển khai 'RAID0' như thế vào khoảng năm 1990. Nhưng đó không phải là điều mà hầu hết mọi người sẽ coi là 'RAID 0' phù hợp.

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.