Aula #17 - RAID


O uso de RAID distribui atividade de I/O entre vários discos físicos, ao invés de apenas um. Sua finalidade é melhorar a integridade dos dados e a capacidade de recuperação em caso de falha, bem como aumentar o desempenho quando utilizado com dispositivos de armazenamento modernos. Há vários níveis diferentes de RAID que tem pontos fortes diferentes como segurança, desempenho, custo e complexidade.



RAID (Redundant Array of Independent Disks ou Array Redundante de discos Independentes) divide I/O entre vários discos. Isso pode realmente melhorar o desempenho em controladores de disco modernos como SCSI, que conseguem executar trabalho em paralelo de forma eficiente.

O RAID pode ser implementado tanto em software (é uma parte madura do kernel do Linux) ou em hardware. Se o seu hardware RAID (controladora) é conhecida por ter boa qualidade, ela deve ser mais eficiente do que o RAID via software.  Com a implementação no hardware, o sistema operacional não está necessariamente ciente do uso de RAID; é transparente.  Por exemplo, três discos de 512 GB (dois para dados, um para paridade) configurados com RAID-5 será apresentado ao sistema operacional(e ao usuário) como um único disco de 1 TB.

Entretanto, uma desvantagem de utilizar o hardware RAID é que em caso de falha do controlador de disco, é necessário substituí-lo por um controlador compatível o que pode não ser fácil de conseguir (tatno por causa de equipamentos em EOL -End Of Life-  quanto por questão de preço e disponibilidade do fornecedor).
Ao utilizar software RAID, os mesmos discos podem ser conectados a qualquer controlador de disco e a camada de RAID vai funcionar normalmente. Essas considerações costumam ser mais relevante em ambientes de pequeno e médio porte.

Três características essenciais do RAID são:

  •     Espelhamento: escrever os mesmos dados em mais de um disco.
  •     striping: dividir dados em mais de um arquivo.
  •     paridade: informação adicional é armazenada para permitir detecção e reparo de problemas, produzindo tolerância a falhas (fault tolerance).


Logo o uso de RAID pode aumentar tanto o desempenho quando a disponibilidade/confiabilidade.

Um das principais funções de um volume RAID é criar um sistema de arquivo espalhado em mais de um disco. Isso permite criar sistemas de arquivo que são maiores do que um disco.  Dispositivos RAID são normalmente criados combinando partições de vários discos.

Outra vantagem do RAID é a capacidade de oferecer melhor, performance, redundância, ou os dois. Striping oferece melhor desempenho por dividir a informação entre vários discos, de forma que escritas e leituras paralelas são possíveis. Espelhamento escreve a mesma informação em vários discos para melhor redundância.

mdadm é a ferramenta utilizada para criar e gerenciar dispositivos software RAID.

Uma vez criado, o nome do software RAID será algo como /dev/mdX e pode ser usado exatamente como partições normais como /dev/sda1.


Há vários níveis de RAID. Os mais usados ​​são os níveis 0, 1 e 5.

    RAID 0 usa apenas distribuição. Os dados são distribuídos em vários discos. No entanto, apesar do nome, não há redundância e não há nenhuma capacidade de recuperação. Na verdade, se qualquer disco falhar os dados serão perdidos. Mas o desempenho pode ser significativamente melhorado por causa de paralelamento de tarefas de I/O.

    RAID 1 utiliza apenas espelhamento; Cada disco tem uma cópia completa. Isso é bom para a recuperação. Pelo menos dois discos são necessários.


    RAID 5 usa um rotativa paridade; a falha de um disco não causará nenhuma perda de dados, apenas uma queda de desempenho. Deve haver pelo menos 3 discos.

    RAID 6 tem discos com dupla paridade; ele pode lidar com a perda de dois discos, e requer pelo menos quatro discos. Como o RAID 5 pode impor um estresse significativo durante a recuperação de uma falha, procedimentos de recuperação podem levar a falhas não recuperáveis. O RAID 6 é uma resposta a este problema.   




    RAID 10 (1+0) é um conjunto de dados espelhados e distribuídos. São necessários pelo menos 4 unidades.

RAID 100 - Não tão comum é um grupo de dados espelhados em 2 conjuntos distribuídos, seguindo a imagem abaixo:


RAID 160 - Seguindo o mesmo formato anterior, neste modo não usual, os discos espelhados (RAID1) formam 2 grupos em RAID6 e, ambos os grupos estão distribuídos (RAID0).




Como regra geral, a adição de mais discos melhora o desempenho.



Os passos principais para configurar um RAID via software são:

  •     Criar partições em cada disco (tipo fd no fdisk)
  •     Criar um dispositivo software RAID com o mdadm
  •     Formatar o dispositivo RAID
  •     Adicionar uma linha no /etc/fstab
  •     Montar o dispositivo RAID
  •     Examinar os detalhes do dispositivo RAID para ter certeza de que a a configuração está correta

o comando:

$ sudo mdadm -S

pode ser usado para para um dispositivo RAID.

Por exemplo:

Primeiro crie duas partições do tipo fd nos discos sdb e sdc (/dev/sdbX e /dev/sdcX) rodando o fdisk em cada disco:

$ sudo fdisk /dev/sdb
$ sudo fdisk /dev/sdc


Então configure o RAID, formate, salve a configuração do RAID, e monte:


$ sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sdbX /dev/sdcX

$ sudo mkfs.ext4 /dev/md0

$ sudo bash -c "mdadm --detail --scan >> /etc/mdadm.conf"

$ sudo mkdir /myraid

$ sudo mount /dev/md0 /myraid

Não se esqueça de adicionar a linha abaixo no /etc/fstab para montar automaticamente.

/dev/md0  /myraid  ext4  defaults 0 2


Você pode examinar o arquivo /proc/mdstat para ver o estado do RAID. Exemplo:

$ cat /proc/mdstat
         Personalities : [raid1]
    md0 : active raid1 sdb8[1] sdc7[0]
    ---------- 521984 blocks [2/2]
    unused devices:


Você pode usar:

$ sudo mdadm -S /dev/md0

para parar o dispositivo RAID.



Você pode monitorar dispositivos RAID de várias formas:
$ sudo mdadm --detail /dev/md0
$ cat /proc/mdstat


Também é possível usar o mdmonitor que depende da configuração presente no arquivo /etc/mdadm.conf. O comando:

$ sudo mdadm --detail /dev/mdX

vai mostrar o estado do dispositivo RAID /dev/mdX.
Outra forma é explorar o sistema de arquivos /proc :


$ cat /proc/mdstat
Este vai mostrar o estado de todos os dispositivos RAID do sistema.

Também é possível usar o serviço mdmonitor editando /etc/mdadm.conf e adicionar uma linha como:

 MAILADDR [email protected]


para que ele o notifique enviando um email quando um problema acontecer com seus dispositivos RAID. Problemas comuns são a falha de um dos dispositivos ou quando um array não pode ser iniciado. Para ligar:


$ sudo service mdmonitor start

e para se certificar de que será iniciado com o sistema:

$ sudo chkconfig mdmonitor on

Em sistemas Ubuntu, o serviço é chamado mdadm e não mdmonitor.


Um dos recursos importantes que o RAID fornece é redundância. Para ajudar a garantir que uma redução na redundância seja corrigida o mais rápido possível, um disco "hot spare" deve ser usado.

Para definir um disco de spare durante a criação de um array RAID:

$ sudo mdadm --create /dev/md0 -l 5 -n3 -x 1 /dev/sda8 /dev/sda9 /dev/sda10 /dev/sda11


A opção -x 1 diz ao mdadm para usar um hot spare. Lembre-se que um hot spare também podem ser adicionado em um momento posterior.

O comando:
sudo mdadm --fail /dev/md0 /dev/sdb2

testará a redundância e hot spares da sua array.


Para reativar a unidade testada, ou para reativar um disco novo em uma situação de falha legítima, primeiro remova o disco "defeituoso", e em seguida, adicione o "novo" disco. Veja um exemplo:

$ sudo mdadm --remove /dev/md0 /dev/sdb2

sudo mdadm --add /dev/md0 /dev/sde2

Mais vistos no mês:

As melhores distribuições Linux para 2017

Teste de Performance de Rede com Iperf

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

Modelo Firewall Completo em Iptables para pequena rede/office

OPNsense - Firewall Open Source

DHCP - Guia Completo

SSD no linux

Administração de sistema e Deploys: Ansible, Chef, Fabric, Puppet ou Salt?