Dải ZFS trên đầu phần cứng RAID 6. Điều gì có thể xảy ra?


9

Tôi có giá đỡ SAN SAN 36 * 4TB. Bộ điều khiển RAID không hỗ trợ RAID60 và không quá 16 ổ cứng trong một nhóm RAID. 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. Tôi muốn có được tất cả lưu trữ như một phân vùng.

Vậy, điều gì có thể xảy ra nếu tôi sử dụng nhóm zfs trên phần cứng RAID6? Vâng, tôi biết rằng nên sử dụng ổ cứng gốc hoặc chế độ truyền qua. Nhưng tôi không có lựa chọn này.

Hay tôi nên tránh xa ZFS và các cuộc tấn công phần mềm trong tình huống này? (Tôi chủ yếu quan tâm đến nén và ảnh chụp nhanh)


2
Nếu bạn sẽ sử dụng ZFS thì tại sao không chỉ phơi bày tất cả các đĩa riêng lẻ (đôi khi được gọi là chế độ HBA) và để ZFS xử lý nó - đó là điều tốt nhất. Chúng tôi có một số chuyên gia thực sự về điều này (ewwhite for a start), người sẽ giúp bạn điều này - bạn đang sử dụng bộ điều khiển đĩa chính xác nào?
Chopper3

1
Bạn sẽ phá vỡ nhiều tính năng ZFS bằng phương pháp này, nhưng nhìn chung sẽ không ảnh hưởng gì khi làm theo cách này. Checksumming là vô dụng hơn một chút trong cấu hình này, vì bộ điều khiển RAID sẽ trừu tượng hóa tất cả các chi tiết đĩa. Tôi quan tâm nhiều hơn đến lý do tại sao bạn nói rằng bạn không thể sử dụng JBOD. Đảm bảo 3530 là các đơn vị có khả năng JBOD.
đệm

2
Tôi sẽ đợi ewwhite - anh ấy ở miền trung Hoa Kỳ nên đang ngủ nhưng anh ấy biết ZFS hơn bất cứ ai tôi biết
Chopper3

1
@Severgun Ngoài ra 4 ổ cứng ở lại vô dụng cuz không cần trong hotspare Bạn có thực sự nghĩ rằng nó tốt hơn cho một mảng RAID với ổ thất bại trong việc đi khập khiễng cùng trong chế độ xuống cấp hơn là để tự động nhặt một phụ kiện nóng, xây dựng lại, và trở về fully- Trạng thái của chức năng?
Andrew Henle

1
@ Chopper3 Tôi sẽ trả lời ... một cách miễn cưỡng.
ewwhite

Câu trả lời:


5

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.


Đ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à 32kB. Tôi hơi bối rối với môn toán này. Tại sao 8 đĩa - 32kB chunk? Sửa lỗi cho tôi nếu tôi sai: 128kB (khối ZFS) / 3 (mảng RAID) = 43 kB trên mỗi mảng RAID. RAID6 gồm 10 đĩa 43kB / 8 = 5kB (không có sẵn khối) 8 khối gần nhất cũng không có sẵn bằng phần cứng. Vì vậy, hiệu suất tốt nhất không thể truy cập?
Severgun

@Severgun Tôi đặt kích thước chunk ngược. Vấn đề với việc nhắm đến hiệu năng tuyệt đối tốt nhất trên RAID5 / 6 là nó sẽ chỉ xảy ra khi gần như tất cả các hoạt động IO hoàn toàn khớp với kích thước dải mảng RAID. Số lượng đáng kể các hoạt động IO nhỏ hơn kích thước sọc có thể làm giảm hiệu suất nghiêm trọng. Đi với kích thước khối nhỏ hơn giúp hạn chế tác động của việc ghi khối nhỏ ngẫu nhiên. Theo kinh nghiệm của tôi, tốt hơn hết là từ bỏ 1-2% hiệu suất tối đa có thể để đổi lấy việc hạn chế trường hợp xấu nhất xảy ra. Các hệ thống tập tin đa năng có xu hướng có số lượng ghi nhỏ.
Andrew Henle

(tt) 8 đĩa dữ liệu trong một mảng RAID5 / 6 với kích thước khối 16kB trên mỗi đĩa tạo ra kích thước sọc 128kB trên toàn mảng. Tương tự, các khối 32kB cho một mảng 4 dữ liệu. ZFS ghi một khối dữ liệu tệp 128kB vào một thiết bị - nó không được phân chia trên tất cả các zdev. Mặc dù vậy, một lần nữa, đối với hệ thống tệp đa năng, sẽ có rất nhiều ghi phụ 128kB, do đó, kích thước sọc nhỏ hơn (64kB) sẽ tránh suy giảm hiệu suất tốt hơn khi tải nặng, nhưng với chi phí nhỏ là tốt nhất- hiệu suất trường hợp.
Andrew Henle

4

Được rồi, tôi sẽ cắn ...

Đây là phần cứng sai cho ứng dụng. Thiết lập DotHill có những hạn chế tương tự như HP StorageWorks MSA2000 / P2000 trong đó chỉ có 16 ổ đĩa có thể được sử dụng trong một nhóm duy nhất.

ZFS trên đỉnh RAID phần cứng hoặc SAN LUN xuất khẩu không nhất thiết là một vấn đề.

Tuy nhiên, việc loại bỏ các ZFS LUN qua các kết nối không xác định, trên khung gầm mở rộng có thể gây ra một số rủi ro.

  • Chẳng hạn, bạn có đang chạy đa luồng SAS trong cấu trúc liên kết vòng với bộ điều khiển kép không?
  • Bạn có cáp dự phòng trở lại máy chủ?
  • Bạn đã phân phối các ổ đĩa theo chiều dọc trên các vỏ bọc theo cách có thể giảm thiểu sự thất bại của một khung / cáp / bộ điều khiển duy nhất và ngăn nó phá hủy một phần của dải RAID0 của bạn chưa?

Nghiêm túc mà nói, có thể đáng để đánh giá xem bạn có cần tất cả bộ lưu trữ này trong một không gian tên không ...

Nếu bạn yêu cầu loại công suất đó trong một giá treo đơn, bạn nên sử dụng bao vây JBOD chuyên dụng gắn với HBA và có thể nhiều bộ phận đầu với hệ thống cáp đàn hồi và bố trí thông minh hơn.


1

Bạn nên TRỰC TIẾP tất cả các ổ đĩa vào một hộp chạy ZFS. Nhận một HBA SAS và kết nối các ổ đĩa với hộp có khả năng ZFS (ví dụ: chạy OmniOS hoặc SmartOS). Sau đó, bạn có thể chia sẻ không gian thông qua NFS, SMB, iScsi ...


Bạn nên TRỰC TIẾP tất cả các ổ đĩa vào một hộp chạy ZFS. Không nhất thiết - thay thế các ổ đĩa bị lỗi trong một mảng phần cứng trên một số bộ điều khiển rất dễ dàng : rút ổ đĩa cứng ra với đèn báo lỗi rồi bật một cái mới vào. Không cần quản trị viên hệ thống để chạy các lệnh ZFS để thay thế ổ đĩa. Trong một thiết lập doanh nghiệp với hàng trăm hoặc hàng ngàn máy chủ và có thể hàng chục ngàn ổ cứng trải rộng trên nhiều trung tâm dữ liệu, đó là một mối quan tâm. Ổ đĩa không thành công nhiều hơn nhiều so với thối bit xảy ra.
Andrew Henle

@Tobi Oetiker cho tôi biết cách đặt 36 3,5 "hdds vào trường hợp 2U
Severgun

chúng tôi chỉ cần đặt chúng vào một hộp thêm ... sử dụng một bộ mở rộng sas ... như đối với các triển khai lớn, có thể hỏi làm thế nào niềm vui được xử lý nó.
Tobi Oetiker

@AndrewHenle Để công bằng, có thể đạt được quy trình thay thế và đèn LED trạng thái dễ dàng tương tự với ZFS và HBA bên phải (có thể liên quan đến một số tập lệnh nhỏ nếu không sử dụng giải pháp đóng gói sẵn).
121391

0

Lý do ZFS trên khối lượng logic RAID RAID là một ý tưởng RẤT BẮT ĐẦU , là vì ZFS yêu cầu truy cập cấp khối để thực sự hoạt động đúng chức năng. Có, nó sẽ có thể sử dụng được, nhưng chức năng sẽ không hoàn thành cho đến khi bạn gắn ổ đĩa trực tiếp vào HĐH thông qua kết nối HBA hoặc kết nối SATA trực tiếp. Một ví dụ là trong cấu hình mà bạn đề xuất ZFS không thể bảo vệ dữ liệu của bạn một cách hợp lý trước các thay đổi đối với dữ liệu bên dưới (ở phía bên kia của bộ điều khiển RAID RAID) và do đó không thể đảm bảo an toàn cho dữ liệu của bạn . Đây là một trong những lý do CHÍNH HÃNG ZFS được sử dụng, ngoài ra nó còn siêu nhanh.

ZFS là công nghệ tuyệt vời, và tôi đánh giá cao nó. Nhưng bạn sẽ cần phải xem lại cấu trúc của mình ở đây để có thể sử dụng chính xác nó. Cụ thể là có ZFS tạo các khối logic (vdevs) từ các đĩa trực tiếp.

Có vẻ như bạn cần phải đọc nhiều hơn về cách ZFS hoạt động trước khi bạn có thể hiểu chính xác những gì bạn đã đề xuất, tương phản với những gì thực sự nên được thực hiện thay thế.


Có và có. Tôi hiểu cách ZFS hoạt động nhiều nhất có thể. Nhưng có một số biến chứng: 1) Tôi đã có vỏ bọc SAN và cần sử dụng nó. Tôi không xây dựng kho từ đầu. 2) Đây không phải là NAS nhà tôi, nơi tôi có thể mua và vứt bỏ mọi thứ. 3) Ngân sách cho cấu hình lưu trữ xây dựng lại bằng không . Từ lưu trữ, tôi cần tốc độ ghi tối đa có sẵn với không gian khoảng 100Tb. Tôi đang tìm kiếm ZFS chủ yếu là do nén và ảnh chụp nhanh. Tôi có thể thử btrfs nhưng nó là thử nghiệm. Hmm có thể là ZoL không ổn định quá? Tôi không biết.
Severgun

@Severgun Miễn là bạn biết nhược điểm là gì, theo ý kiến ​​của tôi bạn sẽ ổn thôi. ZFS có nhiều tính năng hay (như ảnh chụp nhanh) hoạt động độc lập với người khác. Hầu hết các lời khuyên trên internet nhấn mạnh tầm quan trọng của các thực tiễn tốt nhất trong tất cả các lĩnh vực, nhưng chúng là các khuyến nghị, không phải là yêu cầu nghiêm ngặt. Điểm này sẽ trở nên ít quan trọng hơn trong tương lai, vì ngày càng nhiều bản phân phối LInux thay đổi thành ZFS và hầu hết các hệ thống Linux chạy ảo hóa, vì vậy chúng sẽ có tình huống chính xác của bạn.
121391

1
Lý do ZFS trên khối lượng logic RAID RAID là một ý tưởng RẤT BẮT ĐẦU, bởi vì ZFS yêu cầu truy cập cấp khối để thực sự hoạt động đúng chức năng. Điều đó thật tệ, nó thậm chí không đủ tốt để được gọi là sai. Bạn dường như không biết một phần cứng tương thích NEBS 3 nghĩa là gì, phải không? ngoài ra nó còn siêu nhanh. ZFS là rất nhiều điều tốt. "siêu lừa đảo nhanh" KHÔNG phải là một trong số họ. Đây là một hệ thống tập tin nhanh . Vì vậy, là thế này . Khi hệ thống tập tin đi, ZFS không nhanh.
Andrew Henle
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.