16 min de leitura · Guia técnico
Configurar RAID 1 no VPS Linux é um processo que aumenta a redundância de dados através do espelhamento de discos, protegendo contra falhas de hardware. Para implementar esta solução, você precisa de um VPS Linux com pelo menos dois discos disponíveis. Neste guia, você aprenderá a configurar um array RAID 1 do zero, verificar seu status e recuperar-se de falhas potenciais em aproximadamente 30 minutos.
Pré-requisitos
- Um VPS Linux com acesso root
- Pelo menos dois discos disponíveis (físicos ou virtuais)
- Sistema operacional Linux (Ubuntu, Debian, CentOS ou similar)
- Pacote mdadm instalado (gerenciador de RAID)
- Backup completo dos dados importantes (por segurança)
Entendendo o RAID 1 e seus benefícios
O RAID 1 (Redundant Array of Independent Disks) implementa espelhamento de dados, onde cada informação é escrita simultaneamente em dois ou mais discos. Esta redundância oferece proteção contra falhas de hardware, pois se um disco falhar, os dados permanecem acessíveis através do outro disco.
Os principais benefícios do RAID 1 incluem:
- Proteção contra falhas de disco - se um disco falhar, os dados continuam disponíveis
- Melhor desempenho de leitura - os dados podem ser lidos de múltiplos discos simultaneamente
- Recuperação simplificada - substituição de disco com reconstrução automática
- Sem perda de capacidade útil em caso de falha
Diferente de outras configurações RAID como o RAID 0 (que prioriza velocidade) ou RAID 5 (que equilibra redundância e espaço), o RAID 1 foca exclusivamente na segurança dos dados através da duplicação completa.
Instalando as ferramentas necessárias
O primeiro passo para configurar um array RAID 1 é instalar o mdadm, a ferramenta de administração de RAID mais comum em sistemas Linux. Dependendo da sua distribuição, o comando pode variar ligeiramente.
Para Ubuntu/Debian:
sudo apt update
sudo apt install mdadm
Para CentOS/RHEL:
sudo yum install mdadm
Após a instalação, verifique se o mdadm está funcionando corretamente:
mdadm --version
Output esperado:
mdadm - v4.2 - 2021-12-18
O número da versão pode variar dependendo da sua distribuição Linux, mas o importante é confirmar que o comando está disponível e funcionando.
Identificando os discos disponíveis
Antes de criar o array RAID, você precisa identificar os discos disponíveis no seu sistema. Existem vários comandos que podem ajudar nessa tarefa:
lsblk
Output esperado:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 20G 0 part /
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
Alternativamente, você pode usar:
fdisk -l
Ou para informações mais detalhadas:
sudo parted -l
Neste exemplo, vamos assumir que temos dois discos não utilizados: /dev/sdb e /dev/sdc, cada um com 20GB. Estes serão os discos que usaremos para criar nosso array RAID 1.
Atenção: Certifique-se de que os discos que você planeja usar para o RAID não contêm dados importantes, pois o processo a seguir apagará todos os dados existentes neles.
Preparando os discos para o RAID
A preparação dos discos envolve a criação de partições do tipo Linux RAID. Embora seja possível criar um array RAID usando discos inteiros, é uma prática recomendada usar partições para maior flexibilidade.
Vamos criar partições nos discos usando o fdisk:
sudo fdisk /dev/sdb
Siga estas etapas no prompt do fdisk:
- Digite
npara criar uma nova partição - Pressione
ppara partição primária - Pressione
1para a primeira partição - Pressione
Enterduas vezes para aceitar os valores padrão (usar todo o disco) - Digite
tpara alterar o tipo da partição - Digite
fdpara definir o tipo como "Linux RAID auto" - Digite
wpara gravar as alterações e sair
Repita o mesmo processo para o segundo disco:
sudo fdisk /dev/sdc
Após criar as partições, verifique se elas foram criadas corretamente:
lsblk
Output esperado:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 20G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
Criando o array RAID 1
Agora que temos as partições preparadas, podemos criar o array RAID 1 usando o comando mdadm. O espelhamento de RAID requer pelo menos dois discos ou partições para funcionar corretamente.
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Explicação dos parâmetros:
--create: indica que estamos criando um novo array--verbose: mostra informações detalhadas durante o processo/dev/md0: o nome do dispositivo RAID que estamos criando--level=1: especifica que queremos RAID 1 (espelhamento)--raid-devices=2: indica que estamos usando dois dispositivos/dev/sdb1 /dev/sdc1: as partições que farão parte do array
Você pode receber um aviso perguntando se deseja continuar criando o array, mesmo que as partições não contenham assinaturas RAID. Confirme digitando "y".
Após a criação, o sistema começará a sincronizar os discos. Você pode verificar o progresso com:
cat /proc/mdstat
Output esperado:
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
20954112 blocks super 1.2 [2/2] [UU]
[=============>.......] resync = 67.8% (14222144/20954112) finish=1.2min speed=89153K/sec
A sincronização pode levar alguns minutos dependendo do tamanho dos discos. Aguarde até que esteja concluída antes de prosseguir.
Formatando e montando o array RAID
Após a criação do array RAID 1, precisamos criar um sistema de arquivos nele para poder armazenar dados. O sistema de arquivos mais comum no Linux é o ext4, que oferece bom desempenho e confiabilidade.
sudo mkfs.ext4 /dev/md0
Agora, vamos criar um ponto de montagem e montar o array:
sudo mkdir -p /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
Verifique se o array foi montado corretamente:
df -h
Output esperado:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 3.2G 16G 17% /
/dev/md0 20G 24M 19G 1% /mnt/raid1
Para garantir que o array seja montado automaticamente após a reinicialização do sistema, adicione uma entrada ao arquivo /etc/fstab:
echo '/dev/md0 /mnt/raid1 ext4 defaults 0 2' | sudo tee -a /etc/fstab
Configurando a montagem automática do RAID
Para garantir que o array RAID seja reconhecido e montado automaticamente após uma reinicialização do sistema, precisamos salvar a configuração do RAID e atualizar o initramfs.
Primeiro, vamos salvar a configuração do RAID:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Se o diretório /etc/mdadm não existir, você pode criá-lo ou usar o caminho alternativo dependendo da sua distribuição:
sudo mkdir -p /etc/mdadm
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Para distribuições baseadas em Debian/Ubuntu, atualize o initramfs:
sudo update-initramfs -u
Para distribuições baseadas em RHEL/CentOS:
sudo dracut --force
Agora seu array RAID 1 está configurado para ser montado automaticamente na inicialização do sistema.
Monitorando e gerenciando o RAID
O monitoramento regular do seu array RAID é essencial para garantir que ele esteja funcionando corretamente. Existem várias maneiras de verificar o status do seu RAID.
Para verificar o status atual do RAID:
cat /proc/mdstat
Para obter informações detalhadas sobre o array:
sudo mdadm --detail /dev/md0
Output esperado:
/dev/md0:
Version : 1.2
Creation Time : Wed May 10 15:30:45 2023
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.47 GB)
Used Dev Size : 20954112 (19.98 GiB 21.47 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed May 10 15:35:20 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : vps:0
UUID : 12345678:abcdef01:23456789:abcdef01
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
É recomendável configurar o monitoramento automático do RAID para receber alertas em caso de falhas. Para isso, configure o serviço de monitoramento do mdadm:
sudo systemctl enable mdmonitor
sudo systemctl start mdmonitor
Para configurar alertas por e-mail, edite o arquivo de configuração do mdadm:
sudo nano /etc/mdadm/mdadm.conf
Adicione ou modifique a linha MAILADDR para incluir seu endereço de e-mail:
MAILADDR [email protected]
Salve o arquivo e reinicie o serviço de monitoramento:
sudo systemctl restart mdmonitor
Simulando e recuperando de falhas de disco
Uma das principais vantagens do RAID 1 é a capacidade de recuperação após falhas de disco. Vamos simular uma falha de disco e aprender como recuperar o array.
Para simular uma falha em um dos discos do array:
sudo mdadm --manage /dev/md0 --fail /dev/sdb1
Verifique o status do array após a falha simulada:
cat /proc/mdstat
Output esperado:
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0](F)
20954112 blocks super 1.2 [2/1] [_U]
Observe que o status do /dev/sdb1 agora mostra (F) indicando falha, e o array está operando com apenas um disco ([_U]).
Para remover o disco com falha do array:
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
Em um cenário real, você substituiria o disco físico com falha. No caso de um VPS, isso geralmente envolve entrar em contato com o provedor para substituir o disco virtual. Para nossa simulação, vamos "reparar" o disco e adicioná-lo de volta ao array:
sudo mdadm --manage /dev/md0 --add /dev/sdb1
O array começará a reconstruir automaticamente, sincronizando os dados do disco funcional para o novo disco:
cat /proc/mdstat
Output esperado:
Personalities : [raid1]
md0 : active raid1 sdb1[2] sdc1[1]
20954112 blocks super 1.2 [2/1] [_U]
[=============>.......] recovery = 67.8% (14222144/20954112) finish=1.2min speed=89153K/sec
Aguarde até que a reconstrução seja concluída para ter o array totalmente redundante novamente.
Problemas comuns e como resolver
Sintoma: O array RAID não é montado após reinicialização
Causa: A configuração do RAID pode não estar salva corretamente no arquivo mdadm.conf ou o initramfs não foi atualizado.
Solução: Verifique se a configuração está correta em /etc/mdadm/mdadm.conf e atualize o initramfs com sudo update-initramfs -u (Ubuntu/Debian) ou sudo dracut --force (CentOS/RHEL).
Sintoma: Desempenho lento do array RAID
Causa: O array pode estar em processo de reconstrução ou sincronização em segundo plano.
Solução: Verifique o status com cat /proc/mdstat. Se estiver em reconstrução, aguarde a conclusão. Se o problema persistir, verifique a saúde dos discos com sudo smartctl -a /dev/sdX (requer o pacote smartmontools).
Sintoma: Erro "mdadm: super block on /dev/sdX1 not recognized"
Causa: O superbloco do RAID pode estar corrompido ou a partição não está marcada como tipo RAID.
Solução: Verifique o tipo de partição com sudo fdisk -l. Se necessário, altere o tipo para "Linux RAID autodetect" (fd) usando fdisk. Em casos extremos, pode ser necessário recriar o array.
Sintoma: Disco marcado como falho mesmo estando funcional
Causa: Falsos positivos podem ocorrer devido a problemas temporários de E/S ou configurações incorretas.
Solução: Remova o disco do array com sudo mdadm --manage /dev/md0 --remove /dev/sdX1 e adicione-o novamente com sudo mdadm --manage /dev/md0 --add /dev/sdX1. Se o problema persistir, verifique a saúde física do disco.
Sintoma: Espaço em disco menor que o esperado
Causa: No RAID 1, a capacidade utilizável é igual à do menor disco no array, já que os dados são espelhados.
Solução: Isso é um comportamento normal do RAID 1. Se você precisa de mais espaço, considere adicionar mais arrays RAID ou usar uma configuração diferente, como RAID 5 ou RAID 10, que oferecem melhor equilíbrio entre redundância e capacidade.
Perguntas frequentes sobre configuração de RAID 1 no VPS Linux
Qual a diferença entre RAID 1 e RAID 0?
O RAID 1 (espelhamento) duplica os dados em dois ou mais discos para garantir redundância e proteção contra falhas, priorizando a segurança. Já o RAID 0 (striping) divide os dados entre múltiplos discos para aumentar a velocidade de leitura/escrita, mas sem redundância, o que significa que a falha de um único disco resulta na perda total dos dados.
É possível configurar RAID 1 em um VPS que já está em uso?
Sim, é possível configurar RAID 1 em um VPS em uso, mas requer cuidado extra. Você precisará adicionar um novo disco, criar o array RAID com apenas um disco inicialmente, copiar os dados do sistema existente para o array e, finalmente, adicionar o disco original ao array. Este processo exige backup completo prévio e pode causar tempo de inatividade.
O RAID 1 substitui a necessidade de backups?
Não, o RAID 1 não substitui backups. Enquanto o RAID 1 protege contra falhas físicas de disco, ele não protege contra corrupção de dados, exclusões acidentais, ataques maliciosos ou desastres que afetem todo o servidor. Backups regulares armazenados em locais diferentes continuam sendo essenciais mesmo com RAID 1 configurado.
Qual o impacto do RAID 1 na performance do VPS?
O RAID 1 geralmente melhora a velocidade de leitura, pois os dados podem ser lidos de qualquer um dos discos espelhados simultaneamente. No entanto, a velocidade de escrita pode ser ligeiramente reduzida, já que cada operação de escrita precisa ser duplicada em todos os discos do array. O impacto real depende do tipo de workload e da configuração do servidor.
Como sei se um disco do RAID 1 falhou e como faço para substituí-lo?
Você pode monitorar o status do RAID com o comando 'cat /proc/mdstat' ou configurar o mdadm para enviar alertas por email. Para substituir um disco falho, primeiro remova-o do array com 'mdadm --remove /dev/mdX /dev/sdYZ', substitua fisicamente o disco (ou no caso de VPS, solicite a substituição ao provedor), e adicione o novo disco ao array com 'mdadm --add /dev/mdX /dev/sdYZ'. O array irá reconstruir automaticamente.
Conclusão
A configuração de RAID 1 em um VPS Linux é uma estratégia eficaz para aumentar a redundância de dados e proteger contra falhas de disco. Neste guia, você aprendeu:
- Como preparar discos, criar e gerenciar um array RAID 1 usando mdadm
- Como monitorar o status do RAID e configurar alertas para falhas
- Como simular e recuperar-se de falhas de disco
- Como solucionar problemas comuns relacionados ao RAID
Lembre-se de que, embora o RAID 1 ofereça proteção contra falhas de hardware, ele não substitui uma estratégia completa de backup. Para máxima proteção de dados, combine o RAID com backups regulares armazenados em locais diferentes.
Implementar o RAID 1 em seu VPS Linux é um passo importante para aumentar a confiabilidade da sua infraestrutura e minimizar o tempo de inatividade em caso de falhas de disco.
Precisa de ajuda com configuração de RAID em seu servidor?
A AviraHost oferece servidores VPS Linux com suporte técnico especializado para implementações de RAID e outras configurações avançadas de sistema. Nossa equipe pode ajudar você a configurar a solução ideal para suas necessidades.