Raid no Linux

Raid no Linux, mas o que é Raid?

RAID é o acrônimo de Redundant Array of Independent Disks.

A ideia básica por trás do RAID é combinar várias unidades de disco pequenas e baratas em uma matriz para atingir metas de desempenho ou redundância não atingíveis com uma unidade grande e cara. 

Essa matriz de unidades aparece no computador como uma única unidade de armazenamento lógica ou unidade.

Antes de entra em mais detalhes sobre o Raid no Linux, o artigo foi criado para ajudar os Alunos/Profissionais do curso Analista de Suporte Linux (Red Hat, Ubuntu).

Resumindo, o artigo tem a parte conceitual não são para os profissionais do curso, mas publicado aqui para ajudar outros profissionais.

Vamos continuar.

Administradores de sistema e outros que gerenciam grandes quantidades de dados se beneficiariam do uso da tecnologia RAID. Os principais motivos para implantar o RAID incluem:

  • Melhora a velocidade
  • Aumenta a capacidade de armazenamento usando um único disco virtual
  • Minimiza a perda de dados devido a falhas no disco

Tipos de Raid

Existem três abordagens possíveis de RAID: Firmware RAID, Hardware RAID e Software RAID.

RAID de Firmware

RAID de Firmware, também conhecido como ATARAID, é um tipo de RAID de software onde os conjuntos RAID podem ser configurados usando um menu baseado em firmware. 

O firmware usado por esse tipo de RAID também conecta-se ao BIOS, permitindo que você inicialize a partir de seus conjuntos de RAID. 

Diferentes fornecedores usam diferentes formatos de metadados em disco para marcar os membros do conjunto RAID. O Intel Matrix RAID é um bom exemplo de um sistema RAID de firmware.

RAID de hardware

A matriz baseada em hardware gerencia o subsistema RAID independentemente do host. Apresenta um único disco por matriz RAID para o host.


Um dispositivo RAID de hardware pode ser interno ou externo ao sistema, com dispositivos internos comumente consistindo em uma placa controladora especializada que manipula as tarefas RAID de forma transparente para o sistema operacional e com dispositivos externos comumente conectados ao sistema via SCSI, Fibre Channel, iSCSI, InfiniBand, ou outra interconexão de rede de alta velocidade e apresentando volumes lógicos ao sistema.


As placas controladoras RAID funcionam como um controlador SCSI para o sistema operacional e lidam com todas as comunicações reais da unidade. O usuário conecta as unidades ao controlador RAID (como um controlador SCSI normal) e as adiciona à configuração dos controladores RAID. O sistema operacional não será capaz de dizer a diferença.

RAID de software

O software RAID implementa os vários níveis de RAID no código do disco do kernel (dispositivo de bloco). 

Ele oferece a solução mais barata possível, já que placas de controlador de disco caras ou chassi de troca a quente não são necessários. 

O RAID de software também funciona com discos IDE mais baratos, bem como com discos SCSI.

 Com as CPUs atuais mais rápidas, o RAID de software também supera em geral o RAID por hardware.


O kernel Linux contém um driver multi-disco (MD) que permite que a solução RAID seja completamente independente de hardware. O desempenho de uma matriz baseada em software depende do desempenho e da carga da CPU do servidor.

Níveis de Raid no Linux

O RAID suporta várias configurações, vamos abordar aqui os níveis 0, 1, 5, 6 e 10. Esses tipos de RAID são definidos da seguinte maneira:

Raid Nível 0 (striping)

O nível RAID 0, geralmente chamado de “striping“, é uma técnica de mapeamento de dados distribuídos orientada para o desempenho. 

Você precisa de pelo menos 2 discos.

Isso significa que os dados que estão sendo gravados na matriz são divididos em tiras e gravados nos discos membros da matriz, permitindo alto desempenho de I/O a baixo custo inerente, mas sem redundância.


Muitas implementações RAID nível 0 irão apenas distribuir os dados pelos dispositivos membros até o tamanho do menor dispositivo na matriz. 

Isso significa que, se você tiver vários dispositivos com tamanhos ligeiramente diferentes, cada dispositivo será tratado como se fosse do mesmo tamanho que o menor disco. 

Portanto, a capacidade de armazenamento comum de uma matriz de nível 0 é igual à capacidade do menor disco de membro em um RAID de hardware ou a capacidade da menor partição de membro em um RAID de software multiplicado pelo número de discos ou partições na matriz.

Raid Nível 1 (mirroring)

O nível de RAID 1, ou “espelhamento”, foi usado por mais tempo que qualquer outra forma de RAID. 

Você precisa de pelo menos 2 discos.

O nível 1 fornece redundância ao gravar dados idênticos em cada disco membro da matriz, deixando uma cópia “espelhada” em cada disco. 

O espelhamento continua popular devido à sua simplicidade e alto nível de disponibilidade de dados. 

O nível 1 opera com dois ou mais discos e fornece confiabilidade de dados muito boa e melhora o desempenho para aplicativos de leitura intensiva, mas a um custo relativamente alto.


A capacidade de armazenamento do array de nível 1 é igual à capacidade do menor disco rígido espelhado em um Hardware RAID ou a menor partição espelhada em um Software RAID. 

A redundância de nível 1 é a mais alta possível entre todos os tipos de RAID, com o array sendo capaz de operar com apenas um único disco presente.

Raid Nível 5 (parity)

Este é o tipo mais comum de RAID. 

Você precisa de pelo menos 3 discos.

Ao distribuir a paridade por todas as unidades de disco de membro de um array.

O único gargalo de desempenho é o próprio processo de cálculo de paridade. 

Com CPUs modernas e Software RAID, isso geralmente não é um gargalo, já que CPUs modernas podem gerar paridade muito rapidamente. 

No entanto, se você tiver um número suficientemente grande de dispositivos membros em um array RAID5 de software, de modo que a velocidade combinada de transferência de dados agregados em todos os dispositivos seja alta o suficiente, esse gargalo pode começar a entrar em ação.

O RAID nível 5 tem desempenho assimétrico, com leituras que superam substancialmente as gravações. 

A capacidade de armazenamento do Hardware RAID nível 5 é igual à capacidade da menor partição membro multiplicada pelo número de partições menos um .

Raid Nível 6

Este é um nível comum de RAID quanto a redundância e a preservação de dados, e não o desempenho, são as preocupações primordiais, mas onde a ineficiência de espaço do nível 1 não é aceitável. 

Você precisa de pelo menos 4 discos. Aqui a paridade é dupla.

O nível 6 usa um esquema de paridade complexo para poder recuperar da perda de quaisquer duas unidades na matriz. 

Esse esquema de paridade complexo cria uma carga de CPU significativamente maior em dispositivos RAID de software e também impõe uma carga maior durante as transações de gravação. 

Como tal, o nível 6 é consideravelmente mais assimétrico no desempenho do que o nível 5.

A capacidade total de uma matriz RAID nível 6 é calculada de forma semelhante ao nível 5 do RAID.

Você deve subtrair 2 dispositivos (em vez de 1) da contagem de dispositivos para o espaço de armazenamento de paridade extra.

Raid Nível 10

Este nível de RAID tenta combinar as vantagens de desempenho do nível 0 com a redundância do nível 1.

Também ajuda a aliviar parte do espaço desperdiçado em matrizes de nível 1 com mais de 2 dispositivos. 

Com o nível 10, é possível criar uma matriz de 3 unidades configurada para armazenar apenas 2 cópias de cada peça de dados.

O que permite que o tamanho total da matriz seja 1,5 vezes o tamanho dos dispositivos menores, em vez de ser igual ao menor dispositivo (como seria com um array de 3 dispositivos, nível 1).

O número de opções disponíveis ao criar arrays de nível 10, bem como a complexidade de selecionar as opções corretas para um caso de uso específico, tornam impraticável a criação durante a instalação. 

Raid no Linux com MDADM

O mdadm gerencia dispositivos MD também conhecidos como Linux Software RAID.

Os dispositivos Linux RAID de software são implementados através do driver de dispositivo md (Multiple Devices).

Atualmente, o Linux suporta dispositivos LINEAR MD, RAID0 (striping), RAID1 (espelhamento ou mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH, Faulty Container.

MULTIPATH

O MULTIPATH não é um mecanismo de Software RAID, mas envolve vários dispositivos: cada dispositivo é um caminho para um físico comum dispositivo de armazenamento.

Novas instalações não devem usar o md/multipath, pois ele não é bem suportado e não tem desenvolvimento contínuo.

Use as ferramentas multipath baseadas em Device Mapper.

FAULTY

O FAULTY também não é um verdadeiro RAID e envolve apenas um dispositivo. Ele fornece uma camada sobre um dispositivo real que pode ser usado para injete falhas.

CONTAINER

O CONTAINER é uma coleção de dispositivos que são gerenciados como um conjunto.

Isso é semelhante ao conjunto de dispositivos conectados a um controlador RAID de hardware.

Com um CONTAINER, há um conjunto de metadados que descreve todos os arrays no contêiner.

Então, quando mdadm cria um Dispositivo CONTAINER, o dispositivo representa apenas os metadados.

Outras matrizes normais (RAID1, etc.) podem ser criadas dentro da recipiente.

Conclusão

RAID nível 1 tem um custo alto porque você grava as mesmas informações em todos os discos da matriz, fornece confiabilidade de dados.

Isso é uma maneira muito menos eficiente em termos de espaço do que os níveis de RAID baseados em paridade, como nível 5.

Essa ineficiência de espaço vem com um benefício de desempenho:

Os níveis de RAID baseados em paridade consomem consideravelmente mais energia da CPU para gerar a paridade.

Enquanto o RAID nível 1 simplesmente grava os mesmos dados mais de uma vez nos vários membros RAID com pouca sobrecarga de CPU. 

Dessa forma, o nível 1 do RAID pode superar os níveis de RAID baseados em paridade nas máquinas em que o RAID de software é empregado.

Os recursos da CPU na máquina são constantemente sobrecarregados com operações que não sejam de RAID.

Quem ainda não adquiriu o curso Analisa de Suporte Linux, mas ficou interessado, então clique aqui e aproveite o preço atual.

Leave a Reply

Your email address will not be published. Required fields are marked *

Begin typing your search above and press return to search. Press Esc to cancel.