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

11

Durante muito tempo, ouvi falar de quão ruim é uma ideia uma matriz RAID-5 grande (> 5 TB?), 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ê realmente precisa considerar um número 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?

    
por TheLQ 13.03.2012 / 20:51

3 respostas

8

Mesmo considerando o que uma das outras respostas aqui expostas, ou seja, que o ZFS só funciona com blocos usados reais e não com espaço vazio, sim, ainda é perigoso criar um vdev RAIDZ1 grande. A maioria dos pools é usada pelo menos 30-50%, muitos vão até o máximo recomendado de 80% (alguns passam por isso, eu recomendo que você não faça isso, por motivos de desempenho), de modo 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 é assim. Um pouco de putrefação dentro de um bloco não é o que vai atrapalhar você aqui, geralmente, é um outro disco indo mal, enquanto o resilver do primeiro disco indo mal ainda está acontecendo e vai te matar ... e em discos de 3 TB em um raidz1 grande, pode levar dias, até mesmo semanas , para fazer o resilver em um novo disco, então sua chance de isso acontecer não é insignificante.

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

Além disso, por vários motivos, geralmente não recomendo ir de mais de 8 a 12 discos em uma faixa do raidz2 ou 11 a 15 discos em uma faixa do raidz3. Você deve estar no limite inferior desses intervalos com discos de 3 TB e talvez esteja bem no limite desses intervalos em discos de 1 TB. Isso ajudará a mantê-lo longe da ideia de que mais discos falharão enquanto um resilver está acontecendo é apenas uma dessas razões, mas uma grande delas.

Se você está procurando algumas regras sãs (edite 04/10/15 - eu escrevi estas regras com apenas discos girando em mente - porque elas também são lógicas [por que você faria menos de 3 discos em um raidz1] eles fazem algum sentido, mesmo para os pools SSD, mas todos os pools SSD não era uma coisa na minha cabeça quando eu escrevi estes para baixo):

  • Não use o raidz1 no > Discos de 750 GB.
  • Não use menos de 3 ou mais de 7 discos em um raidz1.
  • Se estiver pensando em usar o 3-disk raidz1 vdevs, considere seriamente o vdevs espelho em três direções.
  • 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 dos arrays RAID tradicionais, em que um número de discos aumenta o IOPS, no ZFS ele é # de VDEVS, portanto, o uso de vdevs de faixa mais curta melhora o potencial de IOPS do pool.
por 20.03.2012 / 07:44
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 o R5 não está. Então, o RAID-Z só precisa 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 terá que ler exatamente o mesmo número de dados que o espaço usado na matriz (se 1 MB for usado em uma matriz de 5 TB, então uma reconstrução precisará ler apenas 1 MB).

Indo para o outro lado, se a maioria de uma matriz grande estiver cheia, a maioria dos dados precisará ser lida em todos os discos. Em comparação com R1 ou R10, onde os dados precisam ser retirados exatamente de um disco (por disco com falha; se vários discos falharem somente em situações em que o array ainda é recuperável também).

O que você está preocupando é o fato de que, em cada operação de leitura do setor, há uma chance de encontrar um setor que não tenha sido escrito corretamente ou não esteja mais legível. Para uma unidade comum atualmente, isso é em torno de 1x10 ^ -16 (nem todas as unidades são iguais, portanto, pesquise as especificações de suas unidades para descobrir sua classificação). Isso é incrivelmente infrequente, mas sai aproximadamente uma vez a cada 1PB; para uma matriz de 10 TB, há uma chance de 1% de sua matriz ser torrada e você não sabe até tentar recuperá-la.

O ZFS também ajuda a reduzir essa chance, já que a maioria dos setores ilegíveis são notáveis antes de começar a tentar reconstruir sua matriz. Se você esfregar seu array ZFS regularmente, a operação de scrub irá detectar esses erros e contorná-los (ou alertá-los para que você possa substituir o disco se for assim). Eles recomendam que você esfregue os discos de nível corporativo cerca de uma a quatro vezes por mês; e unidades de grau de consumo pelo menos uma vez por semana, ou mais.

    
por 13.03.2012 / 21:11
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 ao evitar buracos de gravação RAID-5.

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

Se você quiser sobreviver à falha de dois discos com o ZFS, poderá usar o RAIDZ2 e três discos com falha < href="https://blogs.oracle.com/ahl/entry/triple_parity_raid_z"> RAIDZ3 .

    
por 14.03.2012 / 03:27

Tags