O que é RAID
RAID é a sigla de
Redundant Array of Independent Disks (traduzido para: Conjunto Redundante de Discos Independentes), sendo ele um mecanismo criado com o objetivo de melhorar o desempenho e segurança dos discos rígidos existentes em um servidor, ou uma estação de trabalho, através da utilização de HDs extras.
Existem diversos mecanismos de RAID, desde o RAID 0 até o RAID 6, além dos RAID 10 e RAID 01. Cada um deles foi criado para uma necessidade específica, possuindo suas características próprias. Dentre os tipos de RAID suportados no
Linux com a ferramenta abordada nesse material, destaco:
Lineares: São usados no mínimo 2 discos nessa configuração. Um grupo de discos que vão sendo usados sequencialmente (linear), ou seja, o segundo disco só começa a ser usado após o primeiro encher, o terceiro após o segundo. A capacidade de armazenamento de RAID Linear é a soma dos discos. Não possui backup (redundância) e nem melhora na velocidade de leitura e escrita(I/O). Exemplo, RAID 0 com dois discos de 100 GB cada totaliza em 200 GB. Se um disco falhar é perdido todo o conteúdo.
RAID 0: São usados no mínimo 2 discos nessa configuração. A capacidade de armazenamento é a soma dos discos utilizados. Não possui nenhum backup (redundância), embora melhore de forma significante a performance, dando mais velocidade de I/O. Exemplo, RAID 0 com dois discos de 200 GB cada um, totalizando em 400 GB o volume montado no RAID. Se um disco falhar é perdido todo o conteúdo. Possui striping, ou seja, os discos executam tarefas como leitura e gravação de dados de forma simultânea, entregando maior desempenho e liberando a capacidade total dos discos para armazenar informações.
RAID 1: São usados no mínimo 2 discos nessa configuração. A capacidade de armazenamento é metade da soma total dos discos. Exemplo, RAID 0 com dois discos de 200 GB cada um deles, o espaço total no volume montado será de 200 GB. Se um disco falhar, o conteúdo não é perdido.
RAID 4: São usados no mínimo 3 discos nessa configuração. Um dos discos é dedicado à paridade. A capacidade de armazenamento é a soma de todos dos discos, menos um. Exemplo, 3 discos de 100GB cada um, resulta em um RAID 4 de 200GB. O próximo nível de RAID, o 5, possui mais vantagens se comparado com o RAID 4.
RAID 5: São usados no mínimo 3 discos nessa configuração. Possui paridade e striping. Conforme o RAID 4, a capacidade de armazenamento é a soma de todos os discos, menos um.
RAID 6: Existe um segundo disco de paridade, diferentemente do RAID 5, que possui apenas 1.
RAID 10: combinação do RAID 0 e do RAID 1. Dois ou mais RAID 0 se juntam, formando um RAID 1, e por consequência, um RAID 10.
O que é o mdadm
"md" significa múltiplos dispositivos. O "adm" de
mdadm é abreviação para administração.
O RAID, como exposto anteriormente, significa Conjunto Redundante de Discos Independentes, sendo de forma resumida, uma combinação de dispositivos, que juntos trabalham como se fossem apenas um. Quando falo de dispositivos posso estar falando de discos, ou partições de um disco, SSDs, dentre outras opções.
O mdadm gerencia dispositivos md, conhecidos também como programas de RAIDs em Linux.
Instalação do mdadm
Instalar o mdadm no Debian/Ubuntu:
sudo apt install mdadm -y
Instalar o mdadm no CentOS/AlmaLinux:
sudo yum install mdadm -y
Verificar a versão instalada:
sudo mdadm -V
Criar um RAID 0 com o mdadm
Estou utilizando uma máquina virtual, com o Debian 10.8. Nesta máquina, possuo os seguintes discos:
- /dev/sda - 50GB (Disco principal)
- /dev/sdb - 2GB
- /dev/sdc - 2GB
- /dev/sdd - 2GB
- /dev/sde - 2GB
Irei utilizar os 4 discos com 2GB, para criar um volume em RAID 0, com 8GB.
sudo -i
# mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: Defaulting to version 4.1 metadata
mdadm: array /dev/md0 started
Agora o disco virtual chamado
/dev/md0 foi criado em meu sistema. Devemos então atualizar o arquivo de configuração do mdadm, forçando o dispositivo a se chamar
/dev/md0. Caso contrário, o
udev irá automaticamente renomeá-lo para
/dev/md127.
sudo -i
# mdadm --detail --scan /dev/md0 >> /etc/mdadm/mdadm.conf
Posteriormente, devemos executar o seguinte comando para atualizar o initrd:
sudo -i
# update-initramfs -u
Para que você veja o status do RAID criado, pode utilizar os seguintes comandos:
cat /proc/mdstat
sudo mdadm --detail /dev/md0
Iremos agora formatar o RAID no Linux, utilizando o Ext4, e depois, montar esse volume.
sudo -i
# mkfs.ext4 /dev/md0
# mkdir /mnt/md0
# mount /dev/md0 /mnt/md0
# df -h
Observe que tenho o volume com 8GB, montado em:
/dev/md0 7,9G 36M 7,4G 1% /mnt/md0
Remover o RAID 0 com o mdadm
Caso eu deseje remover o RAID 0 criado com os 4 discos, devo executar os seguintes comandos:
sudo -i
# umount /dev/md0
# mdadm --stop /dev/md0
# mdadm --zero-superblock /dev/sdb
# mdadm --zero-superblock /dev/sdc
# mdadm --zero-superblock /dev/sdd
# mdadm --zero-superblock /dev/sde
Alterar o arquivo
/etc/mdadm/mdadm.conf e remover a última linha adicionada:
nano /etc/mdadm/mdadm.conf
Remover:
ARRAY /dev/md0 metadata=1.2 name=debian:0 UUID=5ecf1997:9d6ea966:a3590659:e36f5a88
Posteriormente, devemos executar o seguinte comando para atualizar o initrd:
sudo -i
# update-initramfs -u
Conclusão
As configurações em RAID são utilizadas frequentemente em servidores Linux, aumentando a confiança e a disponibilidade das informações de uma empresa, ou em estações de trabalho, buscando uma maior velocidade de estrada/saída (I/O) com os discos disponíveis.
Você utiliza RAID? Nos conte sua experiência!