Então, decidi criar 2 grupos RAID6 de 16HDD ou 4 de 8 HDDs.
Essa não é a melhor maneira de fazer as coisas. Pode funcionar bem o suficiente, mas, dependendo dos requisitos de desempenho, pode não funcionar.
O tamanho ideal para uma matriz RAID5 / 6 será tal que um múltiplo exato da quantidade de dados que "abrange" a matriz corresponda ao tamanho do bloco do sistema de arquivos construído sobre ela.
As matrizes RAID5 / 6 funcionam como dispositivos de bloco - um único bloco de dados abrange os discos na matriz e esse bloco também contém dados de paridade. A maioria dos controladores RAID gravará uma grande quantidade de dados de tamanho dois em cada disco da matriz - cujo valor exato é configurável em melhores sistemas RAID - e sua unidade Dot Hill é um desses "melhores sistemas RAID". Isso é importante.
Portanto, é necessário N x (quantidade de dados armazenados por parte do disco) para estender a matriz, onde N é o número de discos de dados. Uma matriz RAID5 de 5 discos possui 4 discos de "dados" e uma matriz RAID6 de 10 unidades possui 8 discos de dados.
Como quando os dados são gravados em uma matriz RAID5 / 6, se o bloco de dados é grande o suficiente para abranger toda a matriz, a paridade é calculada para esses dados - geralmente na memória do controlador -, então a faixa inteira é gravada em disco. Simples e rápido.
Mas se o pedaço de dados gravados não é grande o suficiente para abranger toda a matriz, o que o controlador RAID precisa fazer para calcular os novos dados de paridade? Pense nisso - ele precisa de todos os dados em toda a faixa para recalcular os novos dados de paridade.
Portanto, se você criar uma matriz RAID6 de 16 unidades com o pedaço por disco padrão de 512kb, isso significa que são necessários 7 MB para "expandir" a matriz.
O ZFS funciona em blocos de 128kb, geralmente.
Portanto, o ZFS grava um bloco de 128kB - em um array RAID6 de 16 unidades. Na configuração que você está propondo, isso significa que o controlador RAID precisa ler quase 7 MB da matriz e recalcular a paridade nesses 7 MB. Em seguida, reescreva os 7 MB inteiros novamente no disco.
Se você tiver sorte, tudo está em cache e você não sofre muito com o desempenho. (Esse é um dos principais motivos pelos quais a posição "não use RAID5 / 6" tem os seguintes itens - o RAID1 [0] não sofre com isso.)
Se você tiver azar e não alinhar corretamente as partições do sistema de arquivos, esse bloco de 128kB abrange duas faixas RAID que não estão no cache e o controlador precisa ler 14 MB, refazer a paridade e escrever 14 MB. Tudo para escrever um bloco de 128kB.
Agora, é isso que precisa acontecer logicamente . Existem muitas otimizações que os bons controladores RAID podem realizar para reduzir a carga e a carga computacional desses padrões de E / S, portanto, pode não ser tão ruim.
Mas, sob uma carga pesada de gravação de blocos de 128kB em locais aleatórios, há uma chance muito boa de que o desempenho de um array RAID6 de 16 unidades com um tamanho de faixa de 7 MB seja absolutamente terrível.
Para o ZFS, os LUNs RAID5 / 6 subjacentes "ideais" para um sistema de arquivos de uso geral em que a maioria dos acessos são efetivamente aleatórios teriam um tamanho de faixa que é um divisor uniforme de 128kB, como 32kB, 64kB ou 128kB. Nesse caso, isso limita o número de discos de dados em uma matriz RAID5 / 6 a 1 (o que não faz sentido - mesmo que seja possível configurar, é melhor usar apenas RAID1 [0]), 2, 4 ou 8. Melhor desempenho no melhor cenário, seria usar um tamanho de faixa de 128kB para as matrizes RAID5 / 6, mas o melhor caso não ocorre frequentemente em sistemas de arquivos de uso geral - geralmente porque os sistemas de arquivos não armazenam metadados da mesma forma que armazenar dados do arquivo.
Eu recomendo a configuração de matrizes RAID5 de 5 discos ou matrizes RAID6 de 10 discos, com o tamanho do bloco por disco definido pequeno o suficiente para que a quantidade de dados para abranger uma faixa inteira da matriz seja de 64kB (sim, eu fiz isso antes para o ZFS - muitas vezes). Isso significa que, para uma matriz RAID com 4 discos de dados, o tamanho do pedaço por disco deve ser 16kB, enquanto que para uma matriz RAID com 8 dados, o tamanho do pedaço por disco deve ser 8kB.
Em seguida, permita que o ZFS use toda a matriz - não a particione. O ZFS se alinhará corretamente a uma unidade inteira, independentemente de ser um disco único simples ou uma matriz RAID apresentada por um controlador RAID.
Nesse caso, e sem conhecer seus requisitos exatos de espaço e desempenho, eu recomendo configurar três matrizes RAID6 de 10 unidades ou seis matrizes RAID5 de 5 unidades com tamanho de faixa de 64 kB, configurar alguns hot spares e salvar quatro dos seus discos para o que vier no futuro. Porque algo vai.
Certamente, eu não usaria esse sistema de disco no modo JBOD - é um dispositivo totalmente compatível com NEBS Nível 3 que fornece proteções significativas de confiabilidade e disponibilidade integradas diretamente no hardware. Não jogue isso fora só porque "ZFS !!!!". Se é uma peça barata de hardware comum que você junta a partir de peças? Sim, o modo JBOD com o ZFS manipulando o RAID é melhor - mas esse NÃO é o hardware que você possui. USE os recursos que o hardware fornece.