Guia de tecnologias

Como criar um RAID1 em um sistema CentOS/RedHat 6.0 existente

6 min read Administração Atualizado 24 Sep 2025
Criar RAID1 em CentOS/RedHat 6
Criar RAID1 em CentOS/RedHat 6

Por: Maurice Hilarius - Hard Data Ltd. - 12 de outubro de 2011

Este tutorial descreve como converter um sistema CentOS 6 com um disco em um sistema RAID1 com dois discos. O GRUB será configurado para permitir o boot mesmo se um dos discos falhar, independentemente de qual seja.

Importante: tudo precisa ser executado como root. Use su - e digite a senha do root antes de começar.

Pré requisitos

  • Acesso root ao sistema
  • Um backup completo e verificado dos dados atuais
  • Um segundo disco físico disponível com capacidade suficiente (no exemplo, /dev/sda com ~1002GB)
  • Ferramentas: mdadm, dracut, cpio, mkfs, mkswap, sfdisk, modprobe

Layout inicial de exemplo

No exemplo abaixo, o disco original com o sistema é /dev/sdb e o novo disco alvo é /dev/sda.

Disco com o SO instalado. Disco original:

Device Mountpoint Size

/dev/sdb ~1002GB /dev/sdb1 /boot 256MB /dev/sdb2 / 24GB /dev/sdb3 swap 4GB /dev/sdb5 /var 4GB /dev/sdb6 /home ~900GB

Neste tutorial vamos adicionar o segundo disco: /dev/sda (~1002GB), o disco alvo.

1. Faça backup e verifique o backup

  1. Faça backup de tudo. Você pode querer recuperar dados depois de uma conversão malsucedida.
  2. Verifique o backup. Redundância só é útil se você tiver um backup verificável.

2. Replicar a tabela de partições para o disco alvo

Crie partições em /dev/sda idênticas às de /dev/sdb:

sfdisk -d /dev/sdb | sfdisk /dev/sda

Isto clona o esquema de partição sem tocar nos sistemas de ficheiros ainda.

3. Carregar módulos de kernel para RAID

Carregue os módulos necessários para evitar reboot:

modprobe linear
modprobe raid0
modprobe raid1

Verifique os módulos:

cat /proc/mdstat

A saída deve mostrar as personalidades raid, mas sem arrays configurados ainda.

4. Criar arrays RAID1 degradados usando o disco novo mais uma entrada missing

Crie arrays RAID1 para cada partição relevante, usando a partição do novo disco e marcando o segundo dispositivo como missing. Se for necessário compatibilizar com GRUB 0.97 use metadata 0.90, caso contrário pode usar o metadata padrão.

mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 missing
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 missing
mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda5 missing
mdadm --create /dev/md3 --level=1 --raid-disks=2 /dev/sda6 missing

Se usar o GRUB legado (0.97) adicione a opção –metadata=0.90 para que o GRUB consiga instalar o carregador:

mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing

5. Verificar arrays

Verifique o estado dos arrays:

cat /proc/mdstat

Exemplo de saída:

Personalities : [raid1]
md1 : active raid1 sdb2[1]
    473792 blocks [2/2] [U_]

md2 : active raid1 sdb5[1]
    4980032 blocks [2/2] [U_]

md3 : active raid1 sdb6[1]
    3349440 blocks [2/2] [U_]

md0 : active raid1 sdb1[1]
    80192 blocks [2/2] [U_]

unused devices: 

O estado mostra arrays em modo degradado porque ainda falta o segundo membro ativo em cada array.

6. Gerar o arquivo de configuração do mdadm

Crie um mdadm.conf a partir do estado atual:

mdadm --detail --scan > /etc/mdadm.conf

Verifique o conteúdo:

cat /etc/mdadm.conf

No final do arquivo haverá entradas descrevendo os arrays criados.

7. Recriar o initramfs para incluir mdadm.conf

Mova o initramfs atual e gere um novo usando dracut para que o initram inclua a configuração do mdadm:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)

Isto assegura que o initramfs conheça os arrays RAID no boot.

8. Criar sistemas de ficheiros nos dispositivos md

Formate os dispositivos RAID conforme o layout desejado:

mkfs.ext2 /dev/md0    # para /boot ext2 é suficiente
mkfs.ext4 /dev/md1    # para / ext4 é uma escolha comum
mkfs.ext4 /dev/md2    # para /home
mkfs.ext4 /dev/md3    # para /var
mkswap -c /dev/sda2   # queremos swap em ambos os discos para desempenho

Observação: o exemplo usa mkswap no disco novo; mais adiante adicionaremos a outra partição de swap.

9. Copiar dados do sistema em execução para os arrays

Copie os dados do sistema original para os novos dispositivos RAID. Use cpio para preservar permissões e links.

mkdir /mnt/raid
mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid

Se SELinux estiver em uso, force uma relabel na próxima inicialização:

touch /mnt/raid/.autorelabel
sync
umount /mnt/raid

mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid

Notas: não copie /tmp e /var/tmp. O comando acima cria pontos de montagem vazios como proc e dev e não copia dispositivos especiais.

mount /dev/md2 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

mount /dev/md3 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

Neste ponto o sistema RAID foi criado e os dados foram espelhados manualmente para os novos dispositivos.

10. Ajustar fstab e GRUB

Para garantir boot consistente, atualize /etc/fstab para referenciar os dispositivos md ou UUIDs dos mdxx. Edite /boot/grub/menu.lst para apontar para os dispositivos md se necessário. Se usar GRUB legado, instale o GRUB em ambos os discos:

grub
> root (hd0,0)
> setup (hd0)
> root (hd1,0)
> setup (hd1)
> quit

Isto escreve o carregador GRUB no MBR de ambos discos, permitindo boot mesmo que um falhe.

11. Adicionar os membros finais ao RAID e sincronizar

Depois de verificar que o sistema inicia a partir do array, adicione as partições do disco original para completar cada array:

mdadm --add /dev/md0 /dev/sdb1
mdadm --add /dev/md1 /dev/sdb2
mdadm --add /dev/md2 /dev/sdb5
mdadm --add /dev/md3 /dev/sdb6

Monitore a sincronização:

watch -n 10 cat /proc/mdstat

Espere até que todos os arrays estejam com estado [UU] ou equivalente indicando sincronização completa.

Quando isso pode falhar

  • Se não houver backup verificável e ocorrer erro durante a cópia você pode perder dados.
  • GRUB legado pode não reconhecer metadata moderna do mdadm; usar –metadata=0.90 costuma resolver.
  • Tabelas de partição incompatíveis ou tamanhos diferentes entre discos podem impedir a réplica exata.
  • SELinux ou atributos extendidos não copiados corretamente podem causar problemas de segurança ou serviços falhando.

Abordagens alternativas

  • Criar RAID por volumes LVM sobre RAID em vez de RAID sobre partições, para flexibilidade de volumes lógicos.
  • Usar mirror físico por hardware via controladora RAID, se disponível e compatível.
  • Migrar para uma solução de réplica remota e rebuild em novo hardware para minimizar downtime.

Modelo mental e heurística rápida

Pense no processo em três fases: preparar partições e md, copiar dados e validar, e finalmente completar o mirror e configurar boot. Sempre pare e valide antes de cada etapa destrutiva.

Lista de verificação por função

Administrador de sistemas:

  • Fazer e verificar backup
  • Replicar tabela de partição
  • Criar arrays em modo degradado
  • Gerar initramfs e testar reboot
  • Instalar GRUB em ambos discos

Engenheiro de suporte:

  • Monitorar sincronização via /proc/mdstat
  • Testar falha de disco simulada e validar boot
  • Atualizar documentação e playbooks

Playbook rápido de recuperação de boot

  1. Se o sistema não inicializar, bootar a partir de um live CD com mdadm e montar /boot
  2. Restaurar /boot/initramfs-.img se necessário
  3. Verificar /etc/mdadm.conf e rodar mdadm –assemble –scan
  4. Reinstalar GRUB nos discos válidos

Cheatsheet de comandos úteis

  • Copiar tabela de partição: sfdisk -d /dev/sdb | sfdisk /dev/sda
  • Criar array: mdadm –create /dev/mdX –level=1 –raid-devices=2 /dev/sdY# missing
  • Gerar mdadm.conf: mdadm –detail –scan > /etc/mdadm.conf
  • Recriar initramfs: dracut –mdadmconf –force /boot/initramfs-$(uname -r).img $(uname -r)
  • Monitorar: cat /proc/mdstat

Notas sobre GRUB e compatibilidade

  • GRUB 0.97 pode não reconhecer metadata do mdadm criada por versões mais recentes. Use –metadata=0.90 ao criar /dev/md0 para /boot quando necessário.
  • GRUB2 costuma lidar melhor com metadatas mais recentes, mas teste em ambiente controlado antes de migrar.

Resumo

Este guia mostrou como criar um RAID1 em um sistema CentOS/RedHat 6.0 existente sem perda de dados se os passos forem seguidos com cuidado. Principais etapas: clonar tabela de partições, criar arrays em modo degradado, recriar initramfs, formatar md devices, copiar dados, ajustar GRUB e fstab, e finalmente adicionar os membros restantes e aguardar a sincronização.

Extras úteis: verifique sempre backups antes de qualquer operação, documente UUIDs e configurações e teste um boot com um disco removido para garantir que a redundância funciona.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE