Eu tenho 36 * 4 TB HDD SAN Rack. O controlador RAID não suporta RAID60 e não mais que 16 HDDs em um grupo RAID. Então, decidi criar 2 grupos RAID6 de 16HDD ou 4 de 8 HDDs. Quero obter todo o armazenamento como uma partição.
Então, o que poderia dar errado se eu usasse o pool zfs em cima do RAID6 de hardware? Sim, eu sei que é altamente recomendável usar HDDs nativos ou modo de passagem. Mas eu não tenho essa opção.
Ou devo ficar longe do ZFS e dos ataques de software nessa situação? (Estou interessado principalmente em compactação e instantâneos)
storage
zfs
storage-area-network
hardware-raid
Severgun
fonte
fonte
Respostas:
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.
fonte
Ok, eu vou morder ...
Este é o hardware errado para o aplicativo. A configuração do DotHill tem as mesmas limitações que um HP StorageWorks MSA2000 / P2000, pois apenas 16 unidades podem ser usadas em um único agrupamento de matrizes.
O ZFS no topo do RAID de hardware ou um SAN LUN exportado não é necessariamente um problema.
No entanto, a distribuição de LUNs do ZFS por interconexões desconhecidas, através do chassi de expansão, pode apresentar alguns riscos.
Sério, pode valer a pena avaliar se você precisa de todo esse armazenamento em um único espaço para nome ...
Se você precisar desse tipo de capacidade em uma única montagem, deverá usar um gabinete JBOD dedicado conectado ao HBA e possivelmente várias unidades principais com cabeamento resiliente e um layout mais inteligente.
fonte
Você deve anexar DIRETAMENTE todas as unidades a uma caixa executando o ZFS. Obtenha um HBA SAS e conecte as unidades à caixa compatível com ZFS (por exemplo, executando o OmniOS ou SmartOS). Você pode compartilhar o espaço via NFS, SMB, iScsi ...
fonte
A razão pela qual o ZFS sobre os volumes lógicos HW RAID é uma idéia MUITO RUIM , é porque o ZFS requer acesso no nível do bloco para realmente funcionar corretamente. Sim, será utilizável, mas a funcionalidade não estará completa até você conectar unidades diretamente ao sistema operacional por meio de conexões HBA ou SATA diretas. Um exemplo é que, na configuração que você está propondo, o ZFS não pode proteger razoavelmente seus dados contra alterações nos dados abaixo (do outro lado do controlador HW RAID) e, como tal, não garante a segurança de seus dados . Esse é um dos motivos pelos quais o ZFS é usado, além de ser super rápido.
O ZFS é uma tecnologia incrível, e eu recomendo. Mas você precisará revisar sua estrutura aqui para poder usá-la corretamente. Ou seja, fazer com que o ZFS crie os volumes lógicos (vdevs) diretamente dos discos.
Parece que há muito mais a ler sobre como o ZFS opera antes de entender com precisão o que o propôs, em contraste com o que realmente deve ser feito.
fonte