Testando e substituindo um disco falho em RAID1
Visão geral
Este guia mostra, passo a passo, como testar a substituição de um disco em um array RAID1 usando mdadm, sfdisk e GRUB. Definição rápida: RAID1 espelha dados em dois discos para tolerância a falhas.
Importante: verifique sempre os nomes dos dispositivos (/dev/sda, /dev/sdb). Um erro pode causar perda de dados.
Simular a falha do disco
Não importa se você escolhe /dev/sda ou /dev/sdb — neste exemplo assumimos que /dev/sdb falhou.
Opcionalmente, desligue a máquina e remova fisicamente o disco, ou remova-o (soft) com mdadm:
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3
Remova as partições do array (opcionalmente):
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3
Para desligar o sistema:
shutdown -h now
Coloque o novo disco no lugar (ou reconecte o disco substituído) e inicialize. O sistema deve iniciar normalmente mesmo com o array degradado.
Verificar estado do array
Execute:
cat /proc/mdstat
Exemplo de saída (array degradado):
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
104320 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
513984 blocks [2/1] [U_]
md2 : active raid1 sda3[0]
4618560 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
Também é útil verificar as partições com fdisk:
fdisk -l
(Para brevidade, omitimos aqui a saída completa do fdisk mostrada no exemplo original.)
Copiar a tabela de partições do disco saudável
Copie a tabela de partições de /dev/sda para /dev/sdb:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Se houver erro sobre assinatura MBR, tente com –force:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Exemplo de execução bem-sucedida resultará em novas partições em /dev/sdb (sdb1, sdb2, sdb3).
Limpar metadados RAID e adicionar o novo disco
Remova quaisquer restos de um array anterior no disco novo:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3
Adicione as partições ao array:
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3
Verifique novamente o progresso de sincronização:
cat /proc/mdstat
Exemplo mostrando recuperação em andamento:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
513984 blocks [2/2] [UU]
md2 : active raid1 sdb3[2] sda3[0]
4618560 blocks [2/1] [U_]
[===>.................] recovery = 15.4% (715584/4618560) finish=4.9min speed=13222K/sec
unused devices:
[root@server1 ~]#
Aguarde até que todos os arrays mostrem [UU] indicando que ambos os membros estão presentes.
Reinstalar o GRUB em ambos os discos
Após a sincronização, reinstale o carregador de boot em cada disco para garantir que o sistema inicialize mesmo com um disco ausente. No prompt do grub legacy (exemplo):
grub
No prompt do GRUB, execute:
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Observação: em sistemas modernos com grub2, use grub-install /dev/sda e grub-install /dev/sdb conforme a distribuição.
Verificação final
Confirme que todos os arrays estão saudáveis:
cat /proc/mdstat
Todos os md* devem mostrar [UU]. Reinicie se desejar testar o boot com um disco removido.
Critérios de aceitação
- O sistema inicializa com o disco novo instalado.
- Os arrays md0, md1 e md2 mostram [UU] em /proc/mdstat.
- GRUB foi instalado em ambos os discos e o sistema inicializa se um disco for removido.
- Não há dados corrompidos nos sistemas de arquivos montados.
Checklist rápido (antes, durante e depois)
- Antes: backup recente e snapshot, identificar dispositivos (/dev/sda, /dev/sdb).
- Durante: falhar o dispositivo correto com mdadm –fail; copiar tabela de partições; zerar superblocos.
- Depois: adicionar partições com mdadm -a; monitorar /proc/mdstat até terminar; reinstalar GRUB em ambos os discos.
Runbook de incidente — substituir um disco em RAID1
- Notifique stakeholders e faça backup.
- Marque o disco como failed: mdadm –manage … –fail.
- Remova a partição do array: mdadm –manage … –remove.
- Substitua o hardware fisicamente ou reconecte o disco novo.
- Copie partições: sfdisk -d /dev/sda | sfdisk /dev/sdb.
- Zere superblocos antigos: mdadm –zero-superblock /dev/sdbX.
- Adicione ao array: mdadm -a /dev/mdX /dev/sdbX.
- Monitorar sincronização; reinstalar GRUB; validar boot.
- Documentar o incidente e fechar ticket.
Mini-metodologia — por que este fluxo funciona
- RAID1 mantém um espelho; um disco pode falhar sem perda de dados.
- Copiar a tabela de partições garante que as partições do novo disco correspondam ao layout do array.
- Zerar o superbloco previne conflitos com metadados RAID anteriores.
- Reinstalar o GRUB em ambos os discos garante tolerância na inicialização.
Glossário (uma linha cada)
- RAID1: espelhamento de discos para redundância.
- mdadm: utilitário Linux para gerenciar arrays RAID.
- sfdisk: ferramenta para manipular tabelas de partição via linha de comando.
- GRUB: carregador de boot utilizado para inicializar o sistema.
Notas importantes
- Nunca execute comandos de partição sem confirmar o dispositivo alvo.
- Em sistemas com UEFI, o procedimento de instalação do boot difere (use EFI e grub-install apropriado).
- Se usar LVM por cima do RAID, verifique volumes lógicos após a reconstrução.
Links
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Resumo: este procedimento cobre a simulação de falha, cópia de partições, limpeza de metadados antigos, adição do novo disco ao array, sincronização e reinstalação do GRUB. Siga o checklist e os critérios de aceitação para validar a operação com segurança.
Materiais semelhantes

Música de fundo em qualquer app Android

Previsão de Vendas Precisa — Guia Prático

Jogando no Android com controles físicos

Corrigir atraso da câmera no Android
