Vì vậy, tôi quyết định tạo 2 nhóm RAID6 gồm 16HDD hoặc 4 trong số 8 ổ cứng.
Đó không phải là cách tốt nhất để làm việc. Nó có thể hoạt động đủ tốt, nhưng tùy thuộc vào yêu cầu hiệu suất của bạn, nó có thể không.
Kích thước lý tưởng cho mảng RAID5 / 6 sẽ là một bội số chính xác của lượng dữ liệu "kéo dài" mảng phù hợp với kích thước khối của hệ thống tệp được xây dựng bên trên nó.
Mảng RAID5 / 6 hoạt động như các thiết bị khối - một khối dữ liệu duy nhất trải rộng các đĩa trong mảng và khối đó cũng chứa dữ liệu chẵn lẻ. Hầu hết các bộ điều khiển RAID sẽ ghi một khối dữ liệu có kích thước bằng hai vào mỗi đĩa trong mảng - giá trị chính xác có thể định cấu hình trong các hệ thống RAID tốt hơn - và đơn vị Dot Hill của bạn là một trong những "hệ thống RAID tốt hơn". Đó là quan trọng.
Vì vậy, phải mất N x (lượng dữ liệu được lưu trữ trên mỗi khối đĩa) để trải rộng mảng, trong đó N là số lượng đĩa dữ liệu. Mảng RAID5 5 đĩa có 4 đĩa "dữ liệu" và mảng RAID6 10 ổ có 8 đĩa dữ liệu.
Bởi vì khi dữ liệu được ghi vào mảng RAID5 / 6, nếu khối dữ liệu đủ lớn để bao trùm toàn bộ mảng, thì tính chẵn lẻ được tính cho dữ liệu đó - thường là trong bộ nhớ của bộ điều khiển - sau đó toàn bộ dải được ghi vào đĩa. Đơn giản và nhanh chóng.
Nhưng nếu khối dữ liệu được ghi không đủ lớn để bao trùm toàn bộ mảng, bộ điều khiển RAID phải làm gì để tính toán dữ liệu chẵn lẻ mới? Hãy suy nghĩ về nó - nó cần tất cả dữ liệu trong toàn bộ dải để tính toán lại dữ liệu chẵn lẻ mới .
Vì vậy, nếu bạn tạo một mảng RAID6 16 ổ đĩa với khối lượng mỗi ổ đĩa mặc định là 512kb, điều đó có nghĩa là phải mất 7 MB để "mở rộng" mảng.
ZFS hoạt động trong các khối 128kb, nói chung.
Vì vậy, ZFS ghi một khối 128kB - vào mảng RAID6 16 ổ đĩa. Trong cấu hình bạn đang đề xuất, điều đó có nghĩa là bộ điều khiển RAID cần đọc gần 7 MB từ mảng và tính toán lại tính chẵn lẻ trên 7 MB đó. Sau đó viết lại toàn bộ 7 MB trở lại đĩa.
Nếu bạn may mắn, tất cả đều nằm trong bộ nhớ cache và bạn không đạt được thành tích lớn. (Đây là một lý do chính khiến vị trí "không sử dụng RAID5 / 6" có vị trí như vậy - RAID1 [0] không bị như vậy.)
Nếu bạn không may mắn và bạn không căn chỉnh chính xác các phân vùng hệ thống tệp của mình, khối 128kB đó sẽ trải qua hai sọc RAID không có trong bộ đệm và bộ điều khiển cần đọc 14 MB, tính toán lại chẵn lẻ, sau đó viết 14 MB. Tất cả để viết một khối 128kB.
Bây giờ, đó là những gì cần phải xảy ra một cách hợp lý . Có rất nhiều tối ưu hóa mà các bộ điều khiển RAID tốt có thể thực hiện để giảm IO và tải tính toán của các mẫu IO đó, vì vậy nó có thể không tệ.
Nhưng với khối lượng lớn khi viết các khối 128kB đến các vị trí ngẫu nhiên, rất có khả năng hiệu năng của mảng RAID6 16 ổ đĩa với kích thước sọc 7 MB sẽ hoàn toàn khủng khiếp.
Đối với ZFS, RAID5 / 6 LUN cơ bản "lý tưởng" cho hệ thống tệp mục đích chung trong đó hầu hết các truy cập đều ngẫu nhiên sẽ có kích thước sọc là ước số thậm chí là 128kB, chẳng hạn như 32kB, 64kB hoặc 128kB. Trong trường hợp này, điều đó giới hạn số lượng đĩa dữ liệu trong mảng RAID5 / 6 thành 1 (không hợp lý - ngay cả khi có thể định cấu hình, tốt hơn là chỉ sử dụng RAID1 [0]), 2, 4 hoặc 8. Hiệu suất tốt nhất trong trường hợp tốt nhất sẽ là sử dụng kích thước sọc 128kB cho mảng RAID5 / 6, nhưng trường hợp tốt nhất thường không xảy ra trong các hệ thống tệp có mục đích chung - thường là do hệ thống tệp không lưu trữ siêu dữ liệu giống như chúng lưu trữ dữ liệu tập tin.
Tôi khuyên bạn nên thiết lập mảng RAID5 5 đĩa hoặc mảng RAID6 10 đĩa, với kích thước khối trên mỗi đĩa được đặt đủ nhỏ để lượng dữ liệu trải rộng trên toàn bộ một mảng là 64kB (vâng, tôi đã làm điều này trước cho ZFS - nhiều lần). Điều đó có nghĩa là đối với một mảng RAID có 4 đĩa dữ liệu, kích thước khối trên mỗi đĩa phải là 16kB, trong khi đối với mảng RAID 8 đĩa dữ liệu, kích thước khối trên mỗi đĩa phải là 8kB.
Sau đó cho phép ZFS sử dụng toàn bộ mảng - không phân vùng nó. ZFS sẽ căn chỉnh chính xác cho toàn bộ ổ đĩa, cho dù ổ đĩa là một đĩa đơn hay mảng RAID được trình bày bởi bộ điều khiển RAID.
Trong trường hợp này và không biết chính xác các yêu cầu về không gian và hiệu suất của bạn, tôi khuyên bạn nên thiết lập ba mảng RAID6 10 ổ đĩa hoặc sáu mảng RAID5 5 ổ đĩa với kích thước sọc 64kB, định cấu hình một vài phụ tùng nóng và lưu bốn đĩa cho bất cứ điều gì đi lên trong tương lai. Bởi vì một cái gì đó sẽ.
Tôi chắc chắn sẽ không sử dụng hệ thống đĩa đó trong chế độ JBOD - đó là một thiết bị hoàn toàn tuân thủ NEBS Cấp 3 , cung cấp sự bảo vệ đáng tin cậy và khả dụng sẵn có được tích hợp ngay trong phần cứng. Đừng vứt nó đi chỉ vì "ZFS !!!!". Nếu đó là một phần cứng hàng hóa giá rẻ bạn ghép lại từ các bộ phận? Vâng, chế độ JBOD với ZFS xử lý RAID là tốt nhất - nhưng đó KHÔNG phải là phần cứng bạn có. SỬ DỤNG các tính năng mà phần cứng cung cấp.