Como criar um RAID1 em um sistema CentOS/RedHat 6.0 existente
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
- Faça backup de tudo. Você pode querer recuperar dados depois de uma conversão malsucedida.
- 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
- Se o sistema não inicializar, bootar a partir de um live CD com mdadm e montar /boot
- Restaurar /boot/initramfs-
.img se necessário - Verificar /etc/mdadm.conf e rodar mdadm –assemble –scan
- 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.
Materiais semelhantes

Sincronizar contatos do iPhone com iCloud

Trabalhar no iPhone em movimento — guia prático

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

Foto de perfil personalizada no Netflix

Excluir conta do eBay: guia passo a passo
