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

Sincronizar contatos do iPhone com iCloud
Tutoriais

Sincronizar contatos do iPhone com iCloud

Trabalhar no iPhone em movimento — guia prático
Produtividade

Trabalhar no iPhone em movimento — guia prático

Como anotar PDFs grátis sem marcas d'água
Tutoriais

Como anotar PDFs grátis sem marcas d'água

Foto de perfil personalizada no Netflix
Streaming

Foto de perfil personalizada no Netflix

Excluir conta do eBay: guia passo a passo
Guias

Excluir conta do eBay: guia passo a passo

Como resolver problema de login no Yahoo Mail
Suporte Técnico

Como resolver problema de login no Yahoo Mail