Apesar de existir há mais de 50 anos, o RAID ainda é muito popular, principalmente em ambientes corporativos. No geral, é uma grande conquista para qualquer tecnologia ser relevante por tanto tempo.

Se nos concentrarmos no status do RAID nos dias atuais, alguns níveis de RAID são certamente mais relevantes do que outros. O RAID 5 especificamente tem sido uma das versões de RAID mais populares nas últimas duas décadas.

Como os tamanhos dos discos aumentaram exponencialmente, isso levanta a questão; O RAID 5 ainda é confiável? Para responder a essa pergunta, primeiro teremos que falar sobre o que é exatamente o RAID 5, seus mecanismos de trabalho, aplicativos e falhas.

Terminologia RAID

RAID 5 usa blocos intercalados paridade distribuída. Para entender isso, teremos que começar com o básico do RAID.

Redundant Array of Independent Disks (RAID) é basicamente uma tecnologia de armazenamento de dados usada para fornecer proteção contra falhas de disco por meio de redundância de dados ou tolerância a falhas enquanto também melhora o desempenho geral do disco.

Os sistemas RAID implementam técnicas como distribuição, espelhamento e paridade. Striping distribui pedaços de dados logicamente sequenciais em todos os discos em uma matriz, o que resulta em melhor desempenho de leitura e gravação.

Paridade, no contexto de RAID, são dados de recuperação que são gravados em um disco de paridade dedicado ou espalhados por todos os discos da matriz. Se um disco na matriz falhar, esses dados de paridade, juntamente com os dados nas unidades de trabalho restantes, podem ser usados ​​para reconstruir os dados perdidos.

Como funciona o RAID 5?

As matrizes RAID 5 usam distribuição em nível de bloco com paridade distribuída. Como são necessários pelo menos dois discos para distribuição e um espaço a mais para a paridade, os arrays RAID 5 precisam de pelo menos 3 discos. Vamos usar um array RAID 5 de 4 discos como exemplo para entender melhor como ele funciona.

Ao gravar no array, um bloco de dados (A1) é gravado no primeiro disco. Esse bloco de dados também é chamado de tira. O tamanho do bloco é chamado de tamanho do bloco, e seu valor varia conforme o usuário define.

Continuando com a operação de gravação, o próximo bloco de dados logicamente consecutivo (A2) é gravado no segundo disco e o o mesmo com o terceiro (A3). Como os blocos de dados estão espalhados por essas três faixas, eles são chamados coletivamente de faixa.

Tamanho da faixa, como o nome indica, refere-se à soma do tamanho de todas as tiras ou pedaços na tira. Geralmente, os controladores RAID de hardware usam tamanho de faixa, mas algumas implementações de RAID também usam tamanho de bloco.

Continuando novamente, depois que os dados são distribuídos pelos discos (A1, A2, A3), os dados de paridade são calculados e armazenados como um bloco do tamanho de um bloco no disco restante (Ap). Com isso, uma faixa completa de dados foi gravada.

Em nosso exemplo, o mesmo processo se repete novamente à medida que os dados são distribuídos em três discos, enquanto o quarto disco armazena dados de paridade. Para simplificar, isso continua até que a operação de gravação seja concluída.

Mas há mais algumas coisas a serem abordadas aqui, como como os dados de paridade são realmente calculados e o layout de dados e blocos de paridade no array. Então, vamos mudar o foco para os da próxima seção.

Paridade no RAID 5

Diferentes níveis de RAID usam algoritmos diferentes para calcular dados de paridade. O RAID 5 usa especificamente o operador OR exclusivo (XOR) em cada byte de dados.

XOR retorna uma saída verdadeira quando apenas uma das entradas é verdadeira. Se ambas as entradas forem verdadeiras (1,1) ou falsas (0,0), a saída será falsa. A tabela abaixo e o exemplo a seguir devem ilustrar isso melhor.

Primeira entradaSegunda entradaSaída000011101110

Vamos voltar ao nosso exemplo anterior e olhar para a primeira faixa. Digamos que o primeiro byte de dados nas faixas seja o seguinte:

A1 – 10111001
A2 – 11001010
A3 – 10011011

Executando uma operação A1 XOR A2 , obtemos a saída 01110011. Quando realizamos outra operação XOR com esta saída e A3, obtemos os dados de paridade (Ap) que saem para 11101000.

Digamos que um dos discos da matriz (por exemplo, Disco 2) falhe. Podemos realizar uma operação A1 XOR A3 para obter 00100010 como saída. Se realizarmos outra operação XOR com esta saída e os dados de paridade, obteremos a seguinte saída:

00100010
11101000
11001010

Com isso, reconstruímos o primeiro byte de dados no Disco 2. E é assim, em poucas palavras, como os dados de paridade fornecem tolerância a falhas e protegem seus dados em caso de falha do disco. Essa redundância tem seus limites, no entanto, já que o RAID 5 protege apenas contra uma falha de disco. Se dois discos falharem simultaneamente, todos os dados serão perdidos.

Finalmente, há também a questão do layout dos dados no array. Ao contrário dos níveis 2, 3 e 4 do RAID, que usam um disco de paridade dedicado, o RAID 5 usa paridade distribuída. Isso significa que os blocos de paridade são distribuídos pelo array em vez de serem armazenados em uma única unidade.

Nosso exemplo anterior mostra um layout assíncrono da esquerda para a direita, mas isso pode mudar dependendo de alguns fatores. Por exemplo, os blocos de dados podem ser escritos da esquerda para a direita ou da direita para a esquerda na matriz. Consequentemente, o bloco de paridade pode estar localizado no início ou no final da faixa.

No caso de um layout síncrono, a localização do bloco de paridade também determina onde a próxima faixa começará. Por exemplo, a matriz abaixo é configurada como síncrona à esquerda, o que significa que os dados são gravados da esquerda para a direita. Além disso, o bloco de paridade (Ap) determina onde a próxima faixa (B1) começa e assim por diante.

Você deve usar RAID 5?

O RAID 5 oferece ganhos de desempenho por meio de distribuição e tolerância a falhas por meio de paridade. E, ao contrário dos níveis mais baixos de RAID, ele não precisa lidar com o gargalo de um disco de paridade dedicado. Isso o tornou muito popular nos anos 2000, principalmente em ambientes de produção.

No entanto, o RAID 5 sempre teve uma falha crítica, pois protege apenas contra uma única falha de disco. Em teoria, dois discos falhando sucessivamente são extremamente improváveis. Mas durante as aplicações do mundo real, as coisas são diferentes.

Para começar, os tamanhos de HDD cresceram exponencialmente, enquanto as velocidades de leitura/gravação não tiveram grandes melhorias. Devido a essa disparidade, quando um disco falha, a reconstrução do array demora bastante. Dependendo do tamanho e das especificações da matriz, isso pode variar de horas a dias.

Em seguida, as pessoas geralmente compram discos em conjuntos. Quando você expõe as mesmas unidades de marca à mesma carga de trabalho e ambiente, as chances de elas falharem ao mesmo tempo aumentam.

Mas digamos que apenas um disco falhou. Se você está regularmente esfregando o disco, provavelmente é bom. Mas se você não estiver verificando erros, existe o risco de encontrar UREs durante o processo de reconstrução, pois um dos discos na matriz falhou agora.

Erros de leitura irrecuperáveis ​​(UREs) são um grande problema ao reconstruir arrays porque um único MB de dados ilegíveis pode tornar o array inteiro inútil. Isso se deve ao modo como a maioria das configurações de RAID funciona.

Certas implementações de RAID como RAID ZFS e RAID por software Linux e alguns controladores de hardware marcam o setor como ruim e continuam a reconstrução. No entanto, a maioria dos controladores RAID de hardware simplesmente interrompe a reconstrução e marca todo o array como com falha.

O raciocínio para isso é que é melhor parar a matriz em vez de arriscar a corrupção de dados. Isso é feito supondo que você restaurará a partir de um backup ou recuperará os dados de cada unidade individualmente.

Quando você combina todos esses fatores, não é difícil ver por que o RAID 5 caiu em desuso nos últimos anos. É por isso que outras versões de RAID, como RAID 6 ou ZFS RAID-Z2, são preferidas atualmente, principalmente para arrays maiores, onde os tempos de reconstrução são maiores e há uma chance de perder mais dados.

Isso não é para dizer que o RAID 5 já é irrelevante. Os fabricantes de HDD levaram essas coisas em consideração e melhoraram as unidades reduzindo exponencialmente as taxas de ocorrência de URE nos últimos anos. Recomendamos que você geralmente opte por outros níveis de RAID, mas se você quiser usar o RAID 5 de qualquer maneira, você só deve fazê-lo no caso de arrays de pequeno porte.

Finalmente, aqui estão alguns requisitos e coisas que vale a pena saber se você planeja configurar uma matriz RAID 5:

Como mencionado anteriormente, uma matriz RAID 5 requer no mínimo 3 unidades de disco. Isso ocorre porque pelo menos 2 unidades são necessárias para distribuição e um espaço a mais em disco é necessário para armazenar dados de paridade. O armazenamento utilizável em uma configuração RAID 5 pode ser calculado com (N – 1) x (menor tamanho do disco). Você deve usar unidades de mesmo tamanho porque se você usar uma configuração desigual, o menor disco criará um gargalo significativo. O RAID 5 oferece excelente desempenho de leitura, pois a distribuição permite que os dados sejam lidos de vários discos ao mesmo tempo. No entanto, da mesma forma, o desempenho de gravação não é tão bom quanto as informações de paridade para vários discos também precisam ser gravadas. O RAID 5 pode ser configurado por meio de implementações de software, mas é melhor usar controladores RAID de hardware para uma matriz RAID 5 como o desempenho sofre com implementações de software. Finalmente, a redundância do RAID não é a mesma coisa que os backups. O objetivo do RAID é simplesmente proteger contra falhas de disco. Há muitas razões para ter backups externos separados, de malware a erro humano e acidentes.

Categories: IT Info