RAID, ou Redundante Umrray de Iindependente (ou I >caro) Disks, é uma tecnologia de armazenamento de dados usada para redundância de dados (proteção contra falhas de hardware), ganho de desempenho ou uma combinação de ambos.

Os vários tipos de RAID ( níveis) armazenam dados de maneira diferente, concentram-se em coisas diferentes (tolerância a falhas, rendimento, custo) e, como tal, são adequados para diferentes situações. E há também a questão da eficácia do RAID nos dias atuais.

Com o advento de tecnologias alternativas como SSDs e Erasure Coding, a questão paira; RAID ainda vale a pena? Discutiremos todos esses e outros tópicos semelhantes neste artigo.

O que é RAID? Como funciona

RAID é uma tecnologia de armazenamento usada para configurar vários discos físicos como um único disco lógico chamado Número de Unidade Lógica (LUN). De um modo geral, em uma configuração RAID, os dados são armazenados em vários discos, com o objetivo principal de redundância de dados e/ou melhoria de desempenho.

A redundância de dados aumenta a confiabilidade, agindo como uma rede de segurança contra falhas de disco. Da mesma forma, combinar as especificações de vários discos fornece aumentos de desempenho significativos para operações de E/S.

Claro, esta é apenas uma descrição ampla. O grau em que o array se concentra na redundância ou no desempenho depende do tipo de RAID usado, normalmente chamado de níveis de RAID. Alguns são projetados para um propósito exclusivo, enquanto outros oferecem o melhor dos dois mundos.

Os Níveis de RAID padrão são RAID 0 – RAID 6, mas existem vários outros níveis de RAID que se enquadram em categorias como RAID aninhado e RAID não padrão. Falaremos sobre tudo isso com mais detalhes mais tarde, mas, por enquanto, vamos encerrar com uma breve introdução.

Quanto ao modo como o RAID realmente funciona, ele implementa técnicas como distribuição de dados, espelhamento de disco e paridade. Dependendo do nível do RAID, uma ou qualquer combinação dessas técnicas pode ser usada.

Distribuição de dados é o processo de divisão de segmentos consecutivos de dados logicamente sequenciais em discos diferentes. Ao acessar simultaneamente os dados espalhados por vários discos, você pode utilizar a taxa de transferência de dados combinada, o que basicamente leva a um desempenho aprimorado.

Espelhamento é autoexplicativo-os dados de um disco é copiado para outro. Isso torna os dados em um disco redundantes, mas tem a intenção de permitir que os dados sejam recuperados caso um dos discos da matriz falhe.

Paridade é uma técnica de proteção contra erros comumente usado para fornecer tolerância a falhas e obter redundância. Os dados de paridade são armazenados em um disco dedicado ou espalhados por todos os discos e, quando qualquer disco no array falha, você pode trocá-lo por um disco novo e usar os dados de paridade e os dados de outros discos para reconstruir os dados perdidos. dados.

Geralmente, o XOR básico é executado nos dados dos discos para calcular os dados de paridade, mas certos níveis de RAID, como RAID 2 ou RAID 6, usam paridades dedicadas, das quais falamos sobre mais adiante no artigo.

Finalmente, há a questão da implementação do RAID. A matriz RAID pode ser gerenciada por um controlador RAID dedicado, implementações baseadas em software (md, ZFS, etc.) ou implementações baseadas em firmware e driver.

Os controladores RAID físicos podem ser caros, enquanto os controladores de software são gratuitos ou acessíveis. No entanto, como os controladores de software dependem da máquina host para recursos, o aumento de desempenho do RAID também é afetado. Geralmente, o RAID 0 – 4 pode ser gerenciado com controladores de software, enquanto o RAID 5 e níveis superiores exigem um controlador RAID físico.

Níveis de RAID padrão

Os níveis de RAID evoluíram ao longo dos anos , mas o padrão atualmente aceito, mantido pela SNIA, categoriza RAID 0 – 6 como os níveis padrão.

RAID 0

RAID 0 usa distribuição em pelo menos dois discos. À medida que os arquivos são distribuídos em vários discos, a taxa de transferência disponível também é multiplicada. Mas, da mesma forma, também é muito mais propenso a falhas, pois qualquer falha na unidade significaria que todos os dados seriam perdidos.

Como o RAID 0 não fornece redundância, alguns argumentam se ele deveria ser chamado de RAID. Como o risco de falha é alto, não é usado com muita frequência, principalmente com um grande número de discos, pois a chance de falha seria ainda maior. Mas ainda tem seus casos de uso. Para cenários em que você se preocupa apenas com desempenho, como jogos, o RAID 0 pode ser útil.

Em uma configuração RAID 0, a capacidade total de armazenamento é a soma de todos os discos usados. Por exemplo, se dois discos de 1 TB forem usados, o espaço disponível será de 2 TB.

RAID 1

RAID 1 espelha os dados de um disco para os outros discos da matriz. O ponto de venda do RAID 1 é sua confiabilidade, pois a matriz não falhará enquanto pelo menos uma unidade estiver operacional. No entanto, como ele foi projetado para confiabilidade, outros fatores, como desempenho e armazenamento utilizável, sofrem.

Como os dados podem ser lidos de qualquer um dos discos do array, o desempenho de leitura é geralmente próximo ao da unidade mais rápida do variedade. O mesmo não pode ser dito para o desempenho de gravação, pois todas as alterações de gravação devem ser aplicadas a todos os discos.

Por design, o armazenamento utilizável também pode ser tão grande quanto o menor disco do array. Por exemplo, se uma unidade de 500 GB e 1 TB for usada, o espaço utilizável seria de 500 GB e 500 GB seriam usados ​​para espelhamento, enquanto os outros 500 GB não seriam usados.

RAID 2, 3, 4

RAID 2 usa distribuição em nível de bits em discos com paridade de código de Hamming dedicada. Basicamente, cada bit sequencial é armazenado em uma unidade diferente, enquanto pelo menos um disco é usado para armazenar dados de paridade. Como a maioria dos discos de armazenamento modernos inclui Error Correction Code (ECC), o RAID 2 não é mais usado.

O RAID 3 é semelhante, mas usa distribuição em nível de byte, enquanto um disco dedicado é usado para armazenar dados de paridade. O RAID 3 também raramente é usado, pois foi substituído pelo RAID 4.

O RAID 4 usa distribuição em nível de bloco com um disco de paridade dedicado. À medida que os blocos de dados são distribuídos pelos discos, as solicitações de leitura podem ser atendidas por vários discos, permitindo a sobreposição de E/S. Embora o RAID 4 tenha suas vantagens sobre o RAID 2 e 3, como o paralelismo de E/S, também não é comumente usado, pois os níveis mais altos, como RAID 5 e 6, são amplamente preferidos.

RAID 5

RAID 5 usa striping em nível de bloco com paridade distribuída , onde os dados de paridade são distribuídos em cada disco. O RAID 5 requer pelo menos 3 discos e, mesmo que uma unidade falhe, a paridade distribuída pode ser usada para reconstruir a matriz. O RAID 5 essencialmente oferece benefícios de desempenho e redundância.

A gravação de dados de paridade tem algum impacto no desempenho de gravação, mas não é tão estressante quanto os níveis mais baixos de RAID, pois todos os discos no array são capazes de atender escreva solicitações no RAID 5.

Em todas as suas qualidades, o RAID 5 tem uma grande falha: sua suscetibilidade a falhas. Quando um disco falha, a reconstrução do array pode levar várias horas ou até dias. Mas o problema ainda maior é que a reconstrução da matriz exige que os dados de todos os discos sejam lidos, criando a possibilidade de uma segunda unidade falhar, o que levaria à perda completa dos dados.

Duas unidades falhando ao mesmo tempo é muito improvável, mas ainda é algo a ser considerado ao decidir sobre sua configuração. Assim, para uma confiabilidade ideal, seria melhor manter os níveis de RAID mais altos que discutiremos abaixo.

RAID 6

O RAID 6 é semelhante ao RAID 5, pois usa striping em nível de bloco com paridade distribuída, mas há uma diferença crítica; ele usa dois esquemas de paridade em vez de um. A paridade distribuída dupla permite que o array permaneça operacional apesar de duas falhas de disco. O failsafe extra tem um custo óbvio, o desempenho de gravação é afetado e o dobro do espaço é usado para armazenar dados de paridade.

No caso de um array pequeno como 4 discos (o mínimo para RAID 6), você pode escolher entre RAID 5 ou 6 dependendo se desempenho ou confiabilidade é a prioridade. Mas com arrays maiores, é altamente recomendável manter o RAID 6. 

É claro que nem mesmo a confiabilidade do RAID 6 é à prova de falhas. À medida que os tamanhos dos discos aumentam, aumentam também os tempos de reconstrução e, com eles, a probabilidade de falha do disco. A eficácia do RAID 6 está diminuindo e, em breve, a tripla paridade pode ser necessária.

Níveis de RAID aninhados

O RAID aninhado ou RAID híbrido é basicamente uma combinação de diferentes níveis de RAID. Eles são usados ​​para redundância adicional, ganho de desempenho ou uma combinação de ambos.

Por exemplo, com RAID 10 (RAID 1+0), onde 0 é o matriz superior, uma série de discos é espelhada primeiro, depois os espelhos são distribuídos. RAID 01 (RAID 0+1) é o oposto, onde 1 é a matriz superior. Aqui, os dados são distribuídos primeiro pelos discos, depois o conjunto é espelhado.

É a mesma ideia com outros níveis de RAID aninhados, como RAID 03, RAID 50, RAID 60, etc. O RAID aninhado geralmente não t ir mais fundo do que um nível, mas há exceções como RAID 100 (RAID 10+0), onde as matrizes RAID 10 são distribuídas usando RAID 0.

E embora não entraremos em detalhes sobre elas, também vale a pena mencionar que existem níveis de RAID não padrão. Essas são principalmente tecnologias proprietárias projetadas com uma organização ou projeto específico em mente. Alguns exemplos incluem Linux MD RAID 10, RAID-Z e Hadoop.

Uso de RAID e o futuro

Não é nenhum segredo que o futuro do RAID, como as coisas estão, é finito >. Tecnologias capazes de melhor proteção de dados, desempenho e confiabilidade, como Erasure Coding e SSDs, surgiram nos últimos anos. Com o aumento do tamanho dos discos, os tempos de reconstrução (tempo de inatividade) e a chance de falha durante a reconstrução também aumentam.

E embora vários discos não devam falhar juntos em teoria, expondo as mesmas unidades de marca às mesmas condições ambientais pode tornar isso muito mais provável do que a maioria das pessoas pensa.

No entanto, isso não quer dizer que o RAID já esteja desatualizado. Em ambientes de servidores corporativos com grandes arrays onde o tempo de atividade é importante e, em geral, quando você precisa configurar seu sistema da maneira mais eficiente, RAID ainda é muito relevante.

Com isso dito, há algumas coisas a serem lembradas se você estiver analisando as configurações de RAID. Primeiro, redundância não é a mesma coisa que backups. O RAID ajuda, mas não garante a proteção de dados. Ele ainda é suscetível a erros humanos ou vírus e, caso os discos sejam perdidos por qualquer motivo, ter um backup externo pode salvar vidas.

Segundo, se você valoriza exclusivamente o desempenho, pode optar pelo RAID 0 O RAID 1 é ótimo para redundância, enquanto algo como o RAID 5 oferece o melhor dos dois mundos. Se você valoriza mais a confiabilidade, o que é importante à medida que o array cresce, RAID 6 ou níveis de RAID aninhados seriam opções ainda melhores, mas têm um custo adicional, pois são necessários mais discos para os níveis de RAID mais altos.

Em última análise, é apenas uma questão de encontrar o melhor equilíbrio entre desempenho, proteção e custo para suas circunstâncias específicas.

Categories: IT Info