Por que os níveis de RAID aninhados 1 + 5 ou 1 + 6 são quase desconhecidos? O artigo da Wikipedia sobre níveis RAID aninhados está ausente nas seções. Não entendo por que eles não são mais comuns que o RAID 1 + 0, especialmente quando comparado ao espelhamento triplo do RAID 1 + 0.
É aparente que o tempo de reconstrução está se tornando cada vez mais problemático, pois as capacidades da unidade estão aumentando mais rapidamente do que seu desempenho ou confiabilidade. Disseram-me que o RAID 1 é reconstruído mais rapidamente e que uma matriz RAID 0 de pares RAID 1 evita o problema, mas certamente o faria uma matriz RAID 5 ou 6 de pares RAID 1. Eu pelo menos esperaria que eles fossem uma alternativa comum ao RAID 1 + 0.
Para 16 dos drives de 1 TB, aqui estão meus cálculos da probabilidade ingênua de recorrer ao backup, ou seja, com a suposição simplificada de que os drives são independentes com probabilidade uniforme:
RAID | storage | cumulative probabilities of resorting to backup /m
1+0 | 8TB | 0, 67, 200, 385, 590, 776, 910, 980, 1000, 1000, 1000
1+5 | 7TB | 0, 0, 0, 15, 77, 217, 441, 702, 910, 1000, 1000
1+6 | 6TB | 0, 0, 0, 0, 0, 7, 49, 179, 441, 776, 1000
(m = 0.001, i.e. milli.)
Se isso estiver correto, é bastante claro que o RAID 1 + 6 é excepcionalmente mais confiável que o RAID 1 + 0, apenas para uma redução de 25% na capacidade de armazenamento. Como é o caso em geral, a taxa de transferência teórica de gravação (sem contar os tempos de busca) é a capacidade de armazenamento / tamanho da matriz × número de unidades × taxa de transferência de gravação da unidade mais lenta da matriz (os níveis de RAID com redundância têm uma amplificação de gravação mais alta para gravações que não preencha uma faixa, mas isso depende do tamanho do pedaço), e a taxa de transferência de leitura teórica é a soma das taxas de transferência de leitura das unidades na matriz (exceto que RAID 0, RAID 5 e RAID 6 ainda podem ser teoricamente limitados por as taxas de leitura mais lenta, 2ª mais lenta e 3ª mais lenta, respectivamente). Ou seja, assumindo unidades idênticas, que seriam respectivamente 8 ×, 7 ×,
Além disso, considere um quádruplo RAID 0 de triplos RAID 1, ou seja, espelhamento triplo RAID 1 + 0 de 12 unidades e um sextuplo RAID 6 de pares RAID 1, ou seja, RAID 1 + 6 de 12 unidades. Novamente, essas são unidades de 1 TB idênticas. Ambos os layouts têm o mesmo número de unidades (12), a mesma quantidade de capacidade de armazenamento (4 TB), a mesma proporção de redundância (2/3), a mesma taxa de transferência máxima de gravação (4 ×) e a mesma taxa de transferência máxima de leitura ( 12 ×). Aqui estão meus cálculos (até agora):
RAID | cumulative probabilities of resorting to backup /m
1+0 (4×3) | 0, 0, 18, ?, ?, ?, ?, ?, 1000
1+6 (6×2) | 0, 0, 0, 0, 0, 22, 152, 515, 1000
Sim, isso pode parecer um exagero, mas onde o espelhamento triplo é usado para separar um clone para backup, o RAID 1 + 6 também pode ser usado, simplesmente congelando e removendo 1 de cada unidade de todos, exceto 2 do RAID 1 pares e, ao fazê-lo, ainda tem uma confiabilidade muito melhor quando degradada do que a matriz RAID 1 + 0 degradada. Aqui estão meus cálculos para 12 unidades degradadas por 4 desta maneira:
RAID | cumulative probabilities of resorting to backup /m
1+0 (4×3) | (0, 0, 0, 0), 0, 143, 429, 771, 1000
1+6 (6×2) | (0, 0, 0, 0), 0, 0, 71, 414, 1000
A taxa de transferência de leitura, no entanto, pode ser reduzida para 6 × durante esse tempo para o RAID 1 + 6, enquanto o RAID 1 + 0 é reduzido apenas para 8 ×. No entanto, se uma unidade falhar enquanto a matriz estiver nesse estado degradado, a matriz RAID 1 + 6 teria 50 a 50 chances de permanecer em cerca de 6 × ou ficar mais limitada a 5 ×, enquanto a matriz RAID 1 + 0 ser limitado a um gargalo de 4 × . A taxa de transferência de gravação não deve ser afetada (pode até aumentar se as unidades tomadas para backup forem as mais lentas e limitantes).
De fato, ambos podem ser vistos como 'espelhamento triplo' porque a matriz RAID 1 + 6 degradada é capaz de separar um grupo RAID 6 adicional de 4 unidades. Em outras palavras, esse layout RAID 1 + 6 de 12 unidades pode ser dividido em 3 matrizes RAID 6 degradadas (mas funcionais)!
Então, é que a maioria das pessoas não estudou a matemática em detalhes? Estaremos vendo mais RAID 1 + 6 no futuro?
Respostas:
Geralmente, eu diria que o RAID 1 + 0 tenderá a ser mais amplamente usado que 1 + 5 ou 1 + 6, porque o RAID 1 + 0 é confiável o suficiente e fornece um desempenho marginalmente melhor e armazenamento mais utilizável.
Eu acho que a maioria das pessoas consideraria o fracasso de um par completo de RAID 1 dentro do grupo RAID 1 + 0 como um evento incrivelmente raro que vale a pena interromper os backups - e provavelmente não está muito entusiasmado com a redução de 50% de sua capacidade física. disco como espaço utilizável.
Se você precisar de uma confiabilidade melhor que o RAID 1 + 0, vá em frente! ..mas a maioria das pessoas provavelmente não precisa disso.
fonte
A resposta prática está em algum ponto da interseção das especificações do controlador RAID de hardware, tamanhos médios de disco, fatores de forma da unidade e design do servidor.
A maioria dos controladores RAID de hardware é limitada nos níveis de RAID suportados. Aqui estão as opções de RAID para um controlador HP ProLiant Smart Array:
nota: o "adm" é apenas o espelhamento triplo
Controladores LSI RAID suportam:
0, 1, 5, 6, 10, 50, and 60
Portanto, esses controladores são capazes apenas de RAID 50 e 60 como níveis aninhados. O LSI (ou Dell PERC ) e a HP compreendem a maior parte do mercado de adaptadores de armazenamento para servidores corporativos. Essa é a principal razão pela qual você não vê algo como RAID 1 + 6 ou RAID 61 em campo.
Além dessa consideração, os níveis de RAID aninhados além do RAID 10 requerem um número relativamente grande de discos. Dadas as crescentes capacidades de unidade disponíveis atualmente (com unidades SAS e SATA nearline de 3,5 "), juntamente com o fato de muitos chassis de servidor serem projetados em torno de compartimentos de unidade de 8 x 2,5", não há muita oportunidade de configurar fisicamente o RAID 1+ 6 ou RAID 61.
As áreas em que você pode ver algo como RAID 1 + 6 seriam grandes soluções RAID de software de chassi. O MD MD RAID ou o ZFS do Linux são definitivamente capazes disso. Porém, a essa altura, a falha da unidade pode ser atenuada por discos quentes ou de reposição a frio. Atualmente, a confiabilidade do RAID não é um problema muito grande, desde que você evite combinações tóxicas de nível e hardware de RAID (por exemplo, discos RAID 5 e 6 TB). Além disso, o desempenho de leitura e gravação seria abstraído por camadas e camadas de armazenamento em cache. As cargas de trabalho médias de armazenamento geralmente se beneficiam de uma ou de outra.
Então, no final, parece que a necessidade / demanda simplesmente não existe.
fonte
Você tem retornos decrescentes de confiabilidade. É pouco provável que o RAID 6 componha falhas mesmo em unidades SATA desagradáveis com uma taxa de 1 em 10 ^ 14 UBER. Em unidades FC / SAS, seu UBER é de 1 em 10 ^ 16 e você obtém consideravelmente mais desempenho.
A confiabilidade do grupo RAID não protege você contra exclusão acidental. (então você precisa dos backups de qualquer maneira)
além de certos níveis de RAID, suas chances de falha composta em discos se tornam menores do que a falha composta de infraestrutura de suporte (energia, rede, vazamento de ar condicionado, etc.)
Escreva penalidade. Cada gravação recebida no seu RAID 61 acionará 12 operações de E / S (ingenuamente realizadas). O RAID 6 já é doloroso em cenários de 'baixo nível' em termos de PIOs por gravação aleatória de TB. (e em níveis mais altos, sua taxa de falhas é 100x melhor de qualquer maneira)
não é 'redução de 25%', é mais uma redução de 25%. Seu 16TB está se transformando em 6TB. Então você está recebendo 37,5% de armazenamento utilizável. Você precisa de 3x o número de discos por capacidade e de 3x o máximo de espaço no datacenter. Você provavelmente obteria mais confiabilidade simplesmente criando conjuntos RAID6 menores. Não fiz o processamento de números, mas tente - por exemplo, as somas de RAID 6 em conjuntos de 3 x 3 + 2 (15 unidades, menos sobrecarga de armazenamento que o seu RAID10). Ou fazendo espelhos de 3 vias.
Dito isto, é mais comum do que você pensa em fazer DR em vários sites. Executo matrizes de armazenamento replicadas nas quais tenho grupos RAID5 / 6 / DP RAID de forma assíncrona ou síncrona em um site de recuperação de desastres. (Não faça a sincronização se você puder evitá-la - parece bom, é realmente horrível).
Com meu NetApps, esse é um metrocluster com alguns agregados espelhados. Com meus VMAXes, temos o Symmetrix Remote Data Facility (SRDF). E meus 3PARs fazem cópias remotas.
É caro, mas fornece os níveis de DR de 'data center pegando fogo'.
Em relação aos espelhos triplos - eu os usei, mas não como medidas diretas de resiliência RAID, mas como clones completos como parte de uma estratégia de backup. Sincronize um terceiro espelho, divida-o, monte-o em um servidor separado e faça backup usando uma infraestrutura totalmente diferente. E às vezes gire o terceiro espelho como uma opção de recuperação.
O ponto que estou tentando destacar é que, em minha experiência direta como administrador de armazenamento - em uma área de aproximadamente 40.000 eixos (sim, estamos substituindo dezenas de unidades diariamente) - tivemos que fazer backups para uma variedade de razões nos últimos 5 anos, mas nenhuma delas foi falha do grupo RAID. Debatemos os méritos relativos e o tempo de recuperação aceitável, o ponto de recuperação e as janelas de interrupção. E apoiar tudo isso SEMPRE é o custo da resiliência extra.
Nossa matriz prevê toda a eliminação e falha de mídia, além de poupar e testar agressivamente as unidades.
Mesmo que houvesse uma implementação adequada de RAID, o custo-benefício simplesmente não existe. O dinheiro gasto no espaço de armazenamento seria melhor investido em uma retenção mais longa ou em um ciclo de backup mais frequente. Ou comunicações mais rápidas. Ou apenas eixos geralmente mais rápidos, porque mesmo com números de resiliência idênticos, a reconstrução mais rápida de peças aumenta a probabilidade de falha composta.
Portanto, acho que ofereceria a resposta para sua pergunta:
Você não vê o RAID 1 + 6 e 1 + 5 com muita frequência, porque o custo-benefício simplesmente não se compara. Dada uma quantidade finita de dinheiro e dada a necessidade de implementar uma solução de backup em primeiro lugar, tudo o que você está fazendo é gastar dinheiro para reduzir sua frequência de interrupções. Existem melhores maneiras de gastar esse dinheiro.
fonte
Sistemas modernos e avançados não implementam formas assim porque são excessivamente complicados, completamente desnecessários e contrários a qualquer aparência de eficiência.
Como outros já apontaram, a proporção de espaço bruto para espaço útil é essencialmente 3: 1. São essencialmente três cópias (duas cópias redundantes). Devido ao custo de cálculo de "raid6" (duas vezes, se espelhado) e a perda resultante de IOPS, isso é muito ineficiente. No ZFS, que é muito bem projetado e ajustado, a solução equivalente, em termos de capacidade, seria criar uma faixa de espelhos de três vias.
Por exemplo, em vez de um espelho de 6 formas raid6 / raidz2 (total de 12 unidades), o que seria muito ineficiente (também não é algo que o ZFS tenha algum mecanismo para implementar), você teria quatro espelhos de três vias (também 12 unidades). E, em vez de 1 unidade no valor de IOPS, você teria 4 unidades no valor de IOPS. Especialmente com máquinas virtuais, essa é uma grande diferença. A largura de banda total para as duas formas pode ser muito semelhante nas leituras / gravações sequenciais, mas a faixa dos espelhos de três vias seria mais responsiva com a leitura / gravação aleatória.
Resumindo: o raid1 + 6 geralmente é impraticável, ineficiente e, sem surpresa, nada que alguém sério sobre armazenamento considere desenvolver.
Para esclarecer a disparidade de IOPS: Com um espelho de formas raid6 / raidz2, a cada gravação, todas as 12 unidades devem agir como uma. Não há capacidade para a forma total dividir a atividade em várias ações que várias formas podem executar independentemente. Com uma faixa de espelhos de três vias, cada gravação pode ser algo com o qual apenas um dos quatro espelhos deve lidar; portanto, outra gravação que chega não precisa esperar a forma omnibus inteira lidar antes de analisar outras ações .
fonte
Como ninguém disse isso diretamente o suficiente: o desempenho de gravação do Raid6 não é marginalmente pior. É horrível além da descrição se for carregado.
A gravação sequencial é boa e, desde que o cache, a mesclagem de gravações etc. sejam capazes de encobri-la, ela parece correta. Sob carga alta, as coisas parecem ruins e esse é o principal motivo pelo qual uma configuração 1 + 5/6 quase nunca é usada.
fonte
Tempos de busca
A questão é que, a amplificação de busca por gravação se comporta de maneira muito diferente da amplificação da taxa de transferência de gravação . A amplificação mínima da taxa de transferência de gravação com paridade ocorre quando uma faixa inteira é gravada de uma só vez (vamos chamar esse adjetivo de 'faixa completa'), mas a amplificação mínima da pesquisa de gravação ocorre, por outro lado, quando a gravação inteira após uma busca no dispositivo virtual se encaixa um único pedaço. Antes de entrar em detalhes, os relacionamentos são muito mais fáceis de transmitir em forma de tabela:
onde n é o número total de unidades, n₁ é o número de unidades nos grupos RAID 1 e n₅ e n₆ são o número de grupos nas matrizes RAID 5 ou RAID 6, respectivamente. Os exemplos estão relacionados ao exemplo de 12 unidades na pergunta (as linhas relevantes são '
*bolded*
'); exemplos para os níveis de RAID 1 + 0, 1 + 5, 1 + 6 são 4 × 3, 6 × 2, 6 × 2, respectivamente.Observe que apenas o fator de amplificação da taxa de transferência de gravação de faixa completa está diretamente relacionado à proporção de redundância. Os casos de bloco único são mais complicados para aqueles com paridade. Eles surgem porque a gravação de um único bloco exige a leitura do que for mais fácil entre os blocos de paridade ou os outros blocos de dados, antes de gravar os blocos de paridade junto com o novo bloco de dados. (Eles não são diretamente multiplicativos porque as leituras induzidas devem ser multiplicadas pelo respectivo fator de ampliação da taxa de transferência / busca de leitura para o RAID 1, sendo ambos 1; veja abaixo.)
Infelizmente, escolher um tamanho de bloco que minimize essa amplificação extra da taxa de gravação tem o efeito colateral de realmente maximizara gravação busca amplificação. Para gravações minúsculas com um tempo de gravação desprezível em comparação com o tempo de busca, o desempenho de gravação de faixas com um tamanho de bloco muito pequeno (para ser uma faixa completa) é de apenas 1 ×, como espelhamento, pois exige que todas as unidades procurem os blocos para cada gravação e a taxa de transferência obtida com a mobilização de todas essas unidades são irrelevantes. Ele dividiu a proporção entre o tempo de gravação e o tempo de busca pelo número de unidades na matriz, mas, para pequenas gravações, isso já era insignificante. Não faria sentido usar um tamanho de pedaço tão pequeno que faça gravações minúsculas serem de faixa completa. Para gravações pequenas o suficiente para sentir os efeitos da busca, é melhor que caibam em um único pedaço.
Nota: As duas colunas de taxa de transferência do meio podem ser ignoradas, devido a um tamanho de bloco sensível que é maior que as gravações para as quais o tempo de busca é significativo, mas pequeno o suficiente para que gravações grandes sejam de faixa completa. O tamanho grande da parte da segunda coluna de taxa de transferência é mais semelhante às unidades estendidas. Uma gravação 'minúscula' é onde o efeito da taxa de transferência é insignificante.
Ter um tamanho de pedaço inapropriadamente pequeno também aumenta o efeito da amplificação de busca para leituras, embora não tanto e apenas no caso de faixa completa.
Nota: O 'to n' ocorre porque, quando apenas uma leitura ocorre simultaneamente, é teoricamente possível mobilizar todas as unidades para procurar locais apropriados e ler coletivamente os dados para obter uma taxa de transferência de leitura contígua máxima máxima.
Nota: Novamente, as duas colunas de taxa de transferência do meio podem ser ignoradas, considerando um tamanho de bloco sensato. A terceira coluna de taxa de transferência está novamente estreitamente conectada à proporção de redundância.
No entanto, um tamanho de bloco grande o suficiente significa que pequenas leituras nunca são de faixa completa. Portanto, dada uma implementação eficiente e um tamanho de bloco apropriado, o desempenho da leitura deve ser proporcional ao número de unidades idênticas quando não degradadas.
Realmente, 'fator de amplificação' é muito mais complicado do que a fórmula da pergunta, onde apenas a amplificação da taxa de transferência de faixa completa foi considerada. Em particular, o desempenho de gravação de 6 × 2 RAID 1 + 6 para gravações simultâneas pequenas o suficiente para serem vinculadas à procura será pior do que o de 4 × 3 RAID 1 + 0. E para gravações pequenas, todas procuradas, o desempenho pode ser apenas cerca de um terço do valor de 4 × 3 RAID 1 + 0 no melhor absoluto (ou seja, com uma implementação perfeita).
Depois de esclarecer essa questão, a comparação de 12 unidades não tem um vencedor definitivo:
Nota 1: Uma cópia completa dos dados armazenados é respectivamente um RAID 0 quádruplo ou um RAID 6 degradado 4/6. Nota 2: Há uma chance uniforme de saber se a falha da unidade desconectou um dos quatro pares de RAID 1 degradados ou degradou um dos dois pares normais.
No entanto, ele teria o dobro do desempenho de leitura de uma matriz de 6 unidades RAID 6 e a pequena taxa de transferência de gravações deveria ser 25% melhor (1,5 / 1,2), devido à divisão das leituras necessárias entre os pares RAID 1, e o RAID 6 obviamente têm aplicações adequadas, portanto, em aplicações de alta disponibilidade que têm gravações maiores ou que estão mais preocupados com o desempenho de leitura do que o desempenho de gravação, talvez lá é um nicho para RAID 1 + 6 afinal. Mas isso não é tudo…
Complexidade
Isso ainda é apenas na teoria até agora (principalmente combinatória ), na prática a complexidade significará que as implementações do RAID 1 + 6 podem ter deficiências que perdem oportunidades e não atingem os resultados teóricos. O RAID 6 já é mais complexo e o aninhamento acrescenta um pouco mais de complexidade.
Por exemplo, não é imediatamente óbvio que 6 × 2 RAID 1 + 6 podem ser abstraídos como tendo 3 cabeças de leitura virtuais independentes capazes de ler simultaneamente 3 leituras grandes contíguas com taxa de transferência 4 × cada, assim como 4 × 3 RAID 1 + 0. Simplesmente aninhar 6 pares RAID 1 em uma matriz RAID 6 usando um RAID de software pode não ser tão elegante; a implementação pode ser estúpida e complicada (ainda não testei essa hipótese).
A complexidade também apresenta um aumento no custo de desenvolvimento de implementações e ferramentas. Mesmo que haja aplicativos que possam se beneficiar desse aninhamento, as melhorias podem não valer os custos de desenvolvimento.
fonte