Uma matriz RAID-Z grande é tão ruim quanto uma matriz RAID-5 grande?


11

Por um longo tempo, ouvi falar de quão ruim é uma idéia de um grande conjunto (> 5 TB) de RAID-5, simplesmente porque há um alto risco de falha de outra unidade.

O RAID-Z1 conseguiu remediar isso para uma matriz de qualquer tamanho (se você absolutamente precisar de um número, considere 4x2TB ou 5x2TB)? Talvez uma maneira mais segura de replicar novamente os dados que não são tão intensos em todas as unidades?

Respostas:


8

Mesmo considerando as outras respostas aqui definidas, a saber, que o ZFS funciona apenas com blocos usados ​​reais e não com espaço vazio, sim, ainda é perigoso criar um grande RAIDZ1 vdev. A maioria dos pools acaba com pelo menos 30-50% de utilização, muitos vão até o máximo recomendado de 80% (alguns passam, recomendo que você não faça isso por motivos de desempenho), para que o ZFS lide apenas com blocos usados ​​não é uma grande vitória. Além disso, algumas das outras respostas fazem parecer que uma leitura ruim é o que causa o problema. Isto não é verdade. Um pouco de podridão dentro de um bloco não é o que vai te ferrar aqui, geralmente, é outro disco simplesmente ficando ruim enquanto o resilver do primeiro disco com defeito ainda está acontecendo que o mata .. e em discos de 3 TB em um grande raidz1 pode levar dias, até semanas se transformar novamente em um novo disco, para que sua chance de isso não seja insignificante.

Minha recomendação pessoal aos clientes é nunca usar RAIDZ1 (equivalente a RAID5) com discos> 750 GB, apenas para evitar muito desagradável potencial. Eu estive bem com eles quebrando essa regra por outras razões (o sistema possui um backup em outro lugar, os dados não são tão importantes etc.), mas geralmente faço o possível para usar o RAIDZ2 como uma opção mínima com grandes discos.

Além disso, por várias razões, eu geralmente recomendo não colocar mais de 8 a 12 discos em uma faixa raidz2 ou 11 a 15 discos em uma faixa raidz3. Você deve estar no limite inferior desses intervalos com discos de 3 TB e talvez possa estar bem no limite superior desses intervalos em discos de 1 TB. Que isso ajudará a mantê-lo longe da idéia de que mais discos falharão enquanto um resilver estiver em andamento é apenas uma dessas razões, mas é uma delas.

Se você estiver procurando por algumas regras básicas sãs (editar 10/10/15 - eu escrevi essas regras com apenas discos giratórios em mente - porque elas também são lógicas [por que você faria menos de 3 discos em um raidz1]) faz algum sentido, mesmo para conjuntos SSD, mas todos os conjuntos SSD não eram uma coisa na minha cabeça quando eu escrevi estes):

  • Não use o raidz1 em discos com> 750 GB.
  • Não use menos de 3 ou mais de 7 discos em um raidz1.
  • Se você estiver pensando em usar o 3-disk raidz1 vdevs, considere seriamente os 3-way mirror vdevs.
  • Não use menos de 6 ou mais de 12 discos em um raidz2.
  • Não use menos de 7 ou mais de 15 discos em um raidz3.
  • Lembre-se sempre de que, diferentemente das matrizes RAID tradicionais, em que o número de discos aumenta o IOPS, no ZFS é o número do VDEVS; portanto, usar vdevs com faixas mais curtas melhora o potencial do IOPS do pool.

Com a mudança no tamanho e no desempenho do disco, você ainda recomendaria a mesma regra? (2014)
Lord Loh.

Alguma fonte ou motivação para as regras de ouro?
Kenny Evitt

A fonte é a experiência de mim e de colegas de trabalho em milhares de implementações de ZFS na Nexenta. Quanto a uma atualização - as regras permanecem (10/04/15), nada mudou que me fez querer editar os pontos, embora eu diria que escrevi essas regras sem os SSDs em mente. As regras não são necessariamente as mesmas para SSDs, dependendo de fatores circunstanciais. Com eles, você também tem outras considerações, como o gargalo do HBA.
Nex7

1
@ Nex7, qual é a lógica para isso no artigo do seu blog? "8. RAIDZ - Contagens pares / ímpares de disco: tente (e não muito difícil) manter o número de discos de dados em um raidz vdev em um número par"
Costin Gu

É importante lembrar os casos de uso. Aqui no serverfault, nos concentramos em aplicativos profissionais / comerciais, para que sua resposta seja correta. Dito isto, para aqueles que estão instalando instalações para consumidores (e talvez até aplicativos de negócios limitados?), Considere o quão ruim seria perder um único bloco de um único arquivo (talvez alguns) de sua matriz se você falhar durante um reconstruir. Nada demais? Então o RAIDZ1 pode estar bem.
Dan Pritts

11

O RAID-Z é tão ruim quanto o R5, não. É tão bom quanto R1 ou R10, geralmente não.

O RAID-Z está ciente dos pontos em branco nas unidades, onde R5 não está. Portanto, o RAID-Z precisa apenas ler as áreas com dados para recuperar o disco ausente. Além disso, os dados não são necessariamente distribuídos em todos os discos. Um arquivo muito pequeno pode residir em apenas um único disco, com a paridade em outro disco. Por causa disso, o RAID-5 precisará ler exatamente a quantidade de dados que o espaço usado na matriz (se 1mb for usado em uma matriz de 5 TB, uma reconstrução precisará ler apenas 1 mb).

Indo de outra maneira, se a maioria de uma grande matriz estiver cheia, a maioria dos dados precisará ser lida em todos os discos. Comparado com R1 ou R10, onde os dados precisam ser extraídos apenas exatamente de um disco (por disco com falha; se vários discos falharem apenas em situações em que a matriz ainda é recuperável também).

Você se preocupa com o fato de que, a cada operação de leitura de setor, há uma chance de você encontrar um setor que não foi escrito corretamente ou que não é mais legível. Atualmente, para uma unidade típica atualmente em torno de 1x10 ^ -16 (nem todas as unidades são iguais, consulte as especificações de suas unidades para descobrir sua classificação). Isso é incrivelmente pouco frequente, mas ocorre cerca de uma vez a cada 1PB; para uma matriz de 10 TB, há 1% de chance de sua matriz ser brindada e você não a conhecer até tentar recuperá-la.

O ZFS também ajuda a atenuar essa chance, pois a maioria dos setores ilegíveis é perceptível antes de você começar a tentar reconstruir sua matriz. Se você esfregar sua matriz do ZFS regularmente, a operação de depuração detectará esses erros e contorná-los (ou alertará você para que você possa substituir o disco, se é assim que rola). Eles recomendam que você limpe os discos de nível corporativo cerca de uma a quatro vezes por mês; e unidades de nível de consumidor pelo menos uma vez por semana ou mais.


3

Algumas das vantagens do RAID-Z em relação ao RAID-5 tradicional é que ele não requer hardware especializado e é mais confiável, evitando o furo de gravação RAID-5.

No entanto, o RAID-Z e o RAID-5 não suportam mais de uma falha no disco.

Se você deseja sobreviver à falha de dois discos com o ZFS, pode usar o RAIDZ2 e a falha de três discos RAIDZ3 .


1
+1 Além disso, as somas de verificação perblock permitem que o ZFS, caso encontre corrupção em uma matriz, selecione os arquivos afetados. A maioria dos HBAs R5 simplesmente marcará o volume inteiro como corrompido ou informará ao sistema operacional que um setor está corrompido, de qualquer forma, o HBA não tem como saber qual disco está errado em um cenário de corrupção.
21712

Mais discussão sobre o tratamento de falhas do resilver do ZFS
um CVn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.