그래서 16HDD의 2 개의 RAID6 그룹 또는 8 개의 HDD 중 4 개를 만들기로 결정했습니다.
이것이 최선의 방법은 아닙니다. 제대로 작동하지만 성능 요구 사항에 따라 그렇지 않을 수 있습니다.
RAID5 / 6 어레이의 이상적인 크기는 어레이를 "스팬"하는 데이터 양의 정확한 배수가 그 위에 구축 된 파일 시스템의 블록 크기와 일치하는 것입니다.
RAID5 / 6 어레이는 블록 장치로 작동합니다. 단일 데이터 블록이 어레이의 디스크에 걸쳐 있으며 해당 블록에도 패리티 데이터가 포함됩니다. 대부분의 RAID 컨트롤러는 어레이의 각 디스크에 2의 제곱 크기의 데이터를 기록 합니다. 정확한 값은 더 나은 RAID 시스템에서 구성 할 수 있습니다. Dot Hill 장치는 "더 나은 RAID 시스템"중 하나입니다. 중요합니다.
따라서 배열에 걸치려면 N x (디스크 청크 당 저장된 데이터 양)가 필요합니다. 여기서 N은 데이터 디스크 수입니다. 5 디스크 RAID5 어레이에는 4 개의 "데이터"디스크가 있고 10 드라이브 RAID6 어레이에는 8 개의 데이터 디스크가 있습니다.
데이터가 RAID5 / 6 어레이에 기록 될 때, 데이터 블록이 전체 어레이를 확장 할 수있을 정도로 큰 경우 일반적으로 컨트롤러의 메모리에서 해당 데이터에 대해 패리티가 계산되고 전체 스트라이프가 디스크. 간단하고 빠릅니다.
그러나 작성중인 데이터 청크가 전체 배열에 걸쳐서 충분하지 않은 경우 새 패리티 데이터를 계산하기 위해 RAID 컨트롤러는 무엇을해야합니까? 새로운 패리티 데이터 를 다시 계산하려면 전체 스트라이프 의 모든 데이터가 필요합니다 .
따라서 디스크 당 기본 청크가 512kb 인 16 드라이브 RAID6 어레이를 만들 경우 어레이를 "스팬"하는 데 7MB가 필요합니다.
ZFS는 일반적으로 128kb 블록으로 작동합니다.
따라서 ZFS는 128 드라이브 블록을 16 드라이브 RAID6 어레이에 씁니다. 제안하는 구성에서 RAID 컨트롤러 는 어레이에서 거의 7MB 를 읽고 7MB에서 패리티를 다시 계산해야합니다. 그런 다음 전체 7MB를 디스크에 다시 씁니다.
운이 좋으면 캐시에 모두 포함되어 있으며 성능이 크게 저하되지 않습니다. (이것은 "RAID5 / 6을 사용하지 마십시오"위치가 다음과 같은 주요한 이유입니다. RAID1 [0]은이 문제를 겪지 않습니다.
운이 좋지 않고 파일 시스템 파티션을 올바르게 정렬하지 않은 경우 128kB 블록은 캐시에없는 두 개의 RAID 스트라이프에 걸쳐 있으며 컨트롤러는 14MB를 읽고 패리티를 다시 계산 한 다음 14MB를 써야합니다. 하나의 128kB 블록을 작성합니다.
이제 그것이 논리적으로 일어나야하는 것 입니다. 좋은 RAID 컨트롤러가 있으므로, 이러한 IO 패턴의 IO 및 계산 부하를 줄이기 위해 취할 수있는 최적화가 많이 있습니다 수도 나쁜되지는.
그러나 임의의 위치에 128kB 블록을 쓰면 7MB 스트라이프 크기의 16 드라이브 RAID6 어레이의 성능이 절대적으로 끔찍할 가능성이 매우 높습니다.
ZFS의 경우, 대부분의 액세스가 사실상 무작위 인 범용 파일 시스템에 대한 "이상적인"기본 RAID5 / 6 LUN 은 32kB, 64kB 또는 128kB와 같은 128kB의 제수 인 스트라이프 크기를 갖습니다 . 이 경우 RAID5 / 6 어레이의 데이터 디스크 수를 1로 제한합니다 (무의미한 구성-구성이 가능하더라도 RAID1 [0], 2, 4 또는 8을 사용하는 것이 좋습니다). 가장 좋은 시나리오는 RAID5 / 6 어레이에 128kB 스트라이프 크기를 사용하는 것이지만, 일반적인 경우는 파일 시스템이 메타 데이터를 동일하게 저장하지 않기 때문에 범용 파일 시스템에서는 종종 발생하지 않습니다. 파일 데이터를 저장하십시오.
디스크 당 청크 크기가 전체 어레이 스트라이프에 걸쳐있는 데이터 양이 64kB가되도록 충분히 작게 설정된 5 디스크 RAID5 배열 또는 10 디스크 RAID6 배열을 설정하는 것이 좋습니다 (예,이 작업을 완료했습니다) ZFS 이전-여러 번). 즉, 데이터 디스크가 4 개인 RAID 어레이의 경우 디스크 당 청크 크기는 16kB 여야하고, 8 데이터 디스크 RAID 어레이의 경우 디스크 당 청크 크기는 8kB 여야합니다.
그런 다음 ZFS가 전체 배열 을 사용하도록 허용 하십시오. 분할 하지 마십시오 . ZFS는 드라이브가 단순한 단일 디스크이든 RAID 컨트롤러가 제공하는 RAID 배열이든 전체 드라이브에 올바르게 정렬됩니다.
이 경우 정확한 공간 및 성능 요구 사항을 모르는 경우 64kB 스트라이프 크기의 3 개의 10 드라이브 RAID6 어레이 또는 6 개의 5 드라이브 RAID5 어레이를 설정하고 2 개의 핫 스페어를 구성하고 4 개를 저장하는 것이 좋습니다. 앞으로 나올 모든 것을위한 디스크. 뭔가가 있기 때문입니다.
JBOD 모드에서는 디스크 시스템을 사용하지 않을 것입니다 . 하드웨어에 내장 된 상당한 안정성과 가용성 보호 기능을 제공하는 NEBS 레벨 3 호환 장치 입니다. 그냥 "ZFS !!!!"때문에 버리지 마십시오. 저렴한 상용 하드웨어라면 부품으로 구성 할 수 있습니까? 예, ZFS가 RAID를 처리하는 JBOD 모드가 가장 좋습니다. 그러나 이것이 여러분이 가진 하드웨어는 아닙니다 . 하드웨어가 제공하는 기능을 사용 하십시오.