J'ai donc décidé de faire 2 groupes RAID6 de 16HDD ou 4 de 8 HDD.
Ce n'est pas la meilleure façon de faire les choses. Cela peut fonctionner assez bien, mais en fonction de vos exigences de performances, il se peut que cela ne fonctionne pas.
La taille idéale pour une matrice RAID5 / 6 sera telle qu'un multiple exact de la quantité de données qui "s'étend" la matrice correspond à la taille de bloc du système de fichiers construit au-dessus.
Les baies RAID5 / 6 fonctionnent comme des unités de blocs - un seul bloc de données s'étend sur les disques de la baie, et ce bloc contient également des données de parité. La plupart des contrôleurs RAID écrivent un bloc de données d'une puissance de deux sur chaque disque de la matrice - dont la valeur exacte est configurable dans de meilleurs systèmes RAID - et votre unité Dot Hill est l'un de ces "meilleurs systèmes RAID". C'est important.
Il faut donc N x (quantité de données stockées par bloc de disque) pour s'étendre sur la baie, où N est le nombre de disques de données. Une matrice RAID5 à 5 disques possède 4 disques de «données» et une matrice RAID6 à 10 disques a 8 disques de données.
Parce que lorsque les données sont écrites sur une matrice RAID5 / 6, si le bloc de données est tel qu'il est suffisamment grand pour s'étendre à l'ensemble de la matrice, la parité est calculée pour ces données - généralement dans la mémoire du contrôleur - alors toute la bande est écrite dans disque. Simple et rapide.
Mais si le bloc de données en cours d'écriture n'est pas assez grand pour s'étendre à l'ensemble de la baie, que doit faire le contrôleur RAID pour calculer les nouvelles données de parité? Pensez-y - il a besoin de toutes les données de toute la bande pour recalculer les nouvelles données de parité.
Donc, si vous créez une matrice RAID6 à 16 disques avec le bloc par disque par défaut de 512 Ko, cela signifie qu'il faut 7 Mo pour "étendre" la matrice.
ZFS fonctionne généralement en blocs de 128 Ko.
ZFS écrit donc un bloc de 128 Ko - dans une matrice RAID6 à 16 disques. Dans la configuration que vous proposez, cela signifie que le contrôleur RAID doit lire près de 7 Mo à partir de la baie et recalculer la parité sur ces 7 Mo. Réécrivez ensuite l'intégralité de ces 7 Mo sur le disque.
Si vous êtes chanceux, tout est dans le cache et vous ne prenez pas un énorme coup de performance. (C'est une des principales raisons pour lesquelles la position "ne pas utiliser RAID5 / 6" a un tel suivi - RAID1 [0] n'en souffre pas.)
Si vous n'avez pas de chance et que vous n'avez pas correctement aligné vos partitions de système de fichiers, ce bloc de 128 Ko s'étend sur deux bandes RAID qui ne sont pas dans le cache, et le contrôleur doit lire 14 Mo, recalculer la parité, puis écrire 14 Mo. Tout pour écrire un bloc de 128 Ko.
Maintenant, c'est ce qui doit se passer logiquement . Il existe de nombreuses optimisations que de bons contrôleurs RAID peuvent prendre pour réduire les E / S et la charge de calcul de ces modèles d'E / S, donc ce n'est peut- être pas si mal.
Mais sous une lourde charge d'écriture de blocs de 128 Ko dans des emplacements aléatoires, il y a de très bonnes chances que les performances d'une matrice RAID6 à 16 disques avec une taille de bande de 7 Mo soient absolument terribles.
Pour ZFS, les LUN RAID5 / 6 sous-jacents "idéaux" pour un système de fichiers à usage général où la plupart des accès sont effectivement aléatoires auraient une taille de bande qui est un diviseur pair de 128 Ko, comme 32 Ko, 64 Ko ou 128 Ko. Dans ce cas, cela limite le nombre de disques de données dans une matrice RAID5 / 6 à 1 (ce qui est absurde - même si cela est possible à configurer, il est préférable d'utiliser simplement RAID1 [0]), 2, 4 ou 8. Meilleures performances dans le meilleur des cas, il faudrait utiliser une taille de bande de 128 Ko pour les matrices RAID5 / 6, mais le meilleur des cas ne se produit pas souvent dans les systèmes de fichiers à usage général - souvent parce que les systèmes de fichiers ne stockent pas les métadonnées de la même manière qu'elles stocker les données du fichier.
Je recommanderais de configurer des matrices RAID5 à 5 disques ou des matrices RAID6 à 10 disques, avec la taille de bloc par disque définie suffisamment petite pour que la quantité de données pour couvrir une bande de matrice entière soit de 64 Ko (oui, je l'ai fait avant pour ZFS - plusieurs fois). Cela signifie que pour une matrice RAID avec 4 disques de données, la taille de bloc par disque doit être de 16 Ko, tandis que pour une matrice RAID à 8 disques de données, la taille de bloc par disque doit être de 8 Ko.
Ensuite ZFS permettent d'utiliser l' ensemble de tableau - ne pas partitionner. ZFS s'alignera correctement sur un lecteur entier, qu'il s'agisse d'un simple disque unique ou d'une matrice RAID présentée par un contrôleur RAID.
Dans ce cas, et sans connaître votre espace exact et vos exigences de performances, je vous recommande de configurer trois baies RAID6 à 10 disques ou six baies RAID5 à 5 disques avec une taille de bande de 64 Ko, de configurer quelques disques de rechange et d'enregistrer quatre de vos disques pour tout ce qui arrivera à l'avenir. Parce que quelque chose le fera.
Je n'utiliserais certainement pas ce système de disques en mode JBOD - c'est un appareil entièrement conforme au niveau 3 de NEBS qui offre des protections de fiabilité et de disponibilité importantes intégrées directement dans le matériel. Ne jetez pas ça juste parce que "ZFS !!!!". S'il s'agit d'un matériel bon marché que vous assemblez à partir de pièces? Oui, le mode JBOD avec ZFS gérant le RAID est le meilleur - mais ce n'est PAS le matériel dont vous disposez. UTILISEZ les fonctionnalités fournies par le matériel.