Así que decidí hacer 2 grupos RAID6 de 16HDD o 4 de 8 HDD.
Esa no es la mejor manera de hacer las cosas. Puede funcionar lo suficientemente bien, pero dependiendo de sus requisitos de rendimiento, puede que no.
El tamaño ideal para una matriz RAID5 / 6 será tal que un múltiplo exacto de la cantidad de datos que "abarca" la matriz coincida con el tamaño de bloque del sistema de archivos construido encima.
Las matrices RAID5 / 6 funcionan como dispositivos de bloque: un solo bloque de datos abarca los discos de la matriz, y ese bloque también contiene datos de paridad. La mayoría de los controladores RAID escribirán una porción de datos del tamaño de una potencia de dos en cada disco de la matriz, cuyo valor exacto es configurable en mejores sistemas RAID, y su unidad Dot Hill es uno de esos "mejores sistemas RAID". Eso es importante.
Por lo tanto, se necesita N x (cantidad de datos almacenados por porción de disco) para abarcar la matriz, donde N es el número de discos de datos. Una matriz RAID5 de 5 discos tiene 4 discos de "datos", y una matriz RAID6 de 10 unidades tiene 8 discos de datos.
Porque cuando los datos se escriben en una matriz RAID5 / 6, si el bloque de datos es lo suficientemente grande como para abarcar toda la matriz, la paridad se calcula para esos datos, generalmente en la memoria del controlador, entonces la franja completa se escribe en disco. Simple y rápido.
Pero si la porción de datos que se está escribiendo no es lo suficientemente grande como para abarcar toda la matriz, ¿qué tiene que hacer el controlador RAID para calcular los nuevos datos de paridad? Piénselo: necesita todos los datos en toda la franja para volver a calcular los nuevos datos de paridad.
Entonces, si crea una matriz RAID6 de 16 unidades con la porción por disco predeterminada de 512kb, eso significa que se necesitan 7 MB para "abarcar" la matriz.
ZFS funciona en bloques de 128 kb, en general.
Entonces ZFS escribe un bloque de 128kB, en una matriz RAID6 de 16 unidades. En la configuración que está proponiendo, eso significa que el controlador RAID necesita leer casi 7 MB de la matriz y volver a calcular la paridad en esos 7 MB. Luego, vuelva a escribir esos 7 MB completos en el disco.
Si tienes suerte, todo está en caché y no recibes un gran impacto en el rendimiento. (Esta es una de las principales razones por las que la posición "no usar RAID5 / 6" tiene ese siguiente seguimiento: RAID1 [0] no sufre esto).
Si no tiene suerte y no alineó correctamente sus particiones del sistema de archivos, ese bloque de 128kB abarca dos bandas RAID que no están en caché, y el controlador necesita leer 14 MB, recalcular la paridad y luego escribir 14 MB. Todo para escribir un bloque de 128kB.
Ahora, eso es lo que debe suceder lógicamente . Hay muchas optimizaciones que los buenos controladores RAID pueden tomar para reducir el IO y la carga computacional de tales patrones de IO, por lo que podría no ser tan malo.
Pero bajo la gran carga de escribir bloques de 128kB en ubicaciones aleatorias, hay una muy buena posibilidad de que el rendimiento de una matriz RAID6 de 16 unidades con un tamaño de banda de 7 MB sea absolutamente terrible.
Para ZFS, los LUN RAID5 / 6 subyacentes "ideales" para un sistema de archivos de propósito general donde la mayoría de los accesos son efectivamente aleatorios tendrían un tamaño de franja que es un divisor par de 128kB, como 32kB, 64kB o 128kB. En este caso, eso limita el número de discos de datos en una matriz RAID5 / 6 a 1 (lo cual no tiene sentido, incluso si es posible configurarlo, es mejor usar RAID1 [0]), 2, 4 u 8. Mejor rendimiento en el mejor de los casos sería usar un tamaño de banda de 128kB para las matrices RAID5 / 6, pero el mejor de los casos no ocurre a menudo en los sistemas de archivos de propósito general, a menudo porque los sistemas de archivos no almacenan los metadatos de la misma manera que ellos almacenar datos de archivo.
Recomiendo configurar matrices RAID5 de 5 discos o matrices RAID6 de 10 discos, con un tamaño de fragmento por disco lo suficientemente pequeño como para que la cantidad de datos para abarcar una franja de matriz completa sea de 64kB (sí, lo he hecho antes para ZFS - muchas veces). Eso significa que para una matriz RAID con 4 discos de datos, el tamaño del fragmento por disco debe ser de 16kB, mientras que para una matriz RAID de 8 discos de datos, el tamaño del fragmento por disco debe ser de 8kB.
Luego permita que ZFS use toda la matriz; no la particione. ZFS se alineará correctamente con una unidad completa, ya sea que se trate de un disco simple o una matriz RAID presentada por un controlador RAID.
En este caso, y sin conocer sus requisitos exactos de espacio y rendimiento, recomendaría configurar tres conjuntos RAID6 de 10 unidades o seis conjuntos RAID5 de 5 unidades con un tamaño de banda de 64kB, configurar un par de repuestos dinámicos y guardar cuatro de sus discos para lo que surja en el futuro. Porque algo lo hará.
Ciertamente, no usaría ese sistema de disco en modo JBOD: es un dispositivo totalmente compatible con el Nivel 3 de NEBS que proporciona protecciones significativas de confiabilidad y disponibilidad integradas directamente en el hardware. No tire eso solo porque "ZFS !!!!". ¿Si se trata de una pieza barata de hardware que se ensambla a partir de piezas? Sí, el modo JBOD con ZFS manejando el RAID es el mejor, pero ese NO es el hardware que tienes. USE las características que proporciona el hardware.