Testes e substituição de um disco em RAID1
Contexto rápido
Este guia descreve, passo a passo, como testar a substituição de um disco falho em um array RAID1 usando mdadm. RAID1 espelha dados entre discos; você pode substituir discos sem perda de dados se executar os passos corretamente.
Termos em uma linha:
- mdadm: utilitário de gerenciamento de arrays RAID no Linux.
1. Simular a falha do disco
Você pode simular a remoção do disco de duas maneiras: remover fisicamente após desligar a máquina ou marcar a partição como com falha (soft-remove) com mdadm.
Exemplo (supondo que /dev/sdb falhou):
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
Remover as partições do array:
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
Desligue a máquina para trocar fisicamente o disco, se desejar:
shutdown -h now
Se você trocou /dev/sda pelo novo disco físico, monte o novo disco como /dev/sdb conforme explicado abaixo (ou adapte os nomes conforme sua topologia).
2. Verificar o estado degradado
Após reiniciar, verifique o status do array:
cat /proc/mdstat
Saída esperada quando o array está degradado:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
200704 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
5036288 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
Também pode checar as partições e discos com:
fdisk -l
(Este comando mostrará que /dev/sdb não contém uma tabela de partições válida, se for um disco novo.)
3. Copiar a tabela de partições do disco saudável
Copie a tabela de partições do disco bom (/dev/sda) para o disco novo (/dev/sdb):
sfdisk -d /dev/sda | sfdisk /dev/sdb
Se houver erro sobre assinatura msdos, tente forçar:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Exemplo de saída bem-sucedida:
[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 401624 401562 fd Linux raid autodetect
/dev/sdb2 401625 10474379 10072755 fd Linux raid autodetect
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root@server1 ~]#
4. Limpar assinaturas RAID antigas e adicionar o disco ao array
Zere qualquer superbloco RAID antigo no novo disco (partições):
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
Em seguida, adicione as partições ao array:
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
Verifique o progresso de reconstrução/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]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[2] sda2[0]
5036288 blocks [2/1] [U_]
[=====>...............] recovery = 29.8% (1502656/5036288) finish=18.8min speed=3116K/sec
unused devices:
[root@server1 ~]#
Espere até que o array apresente [UU] em todas as metas (sincronização concluída):
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
5036288 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
5. Reinstalar o GRUB em ambos os discos
Para garantir que a máquina consiga inicializar mesmo se um dos discos falhar, reinstale o bootloader em ambos os discos com o utilitário grub (modo interativo mostrado):
grub
No prompt do grub:
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Após isso, o disco substituído faz parte do array e o sistema está pronto.
Quando este procedimento pode falhar
- Tabelas de partição incompatíveis entre discos (tamanhos diferentes ou setores de início divergentes).
- Partições com setores defeituosos no disco de origem ao clonar a tabela.
- Versões diferentes do mdadm que não suportam opções usadas.
- Erros de permissão (execute como root) ou discos com nomes de dispositivos trocados.
Se falhar: verifique logs (dmesg, /var/log/messages/journal), confirme nomes de dispositivo com lsblk e revise erros do sfdisk/mdadm mostrados na saída.
Abordagens alternativas
- Usar dd para copiar byte a byte (dd if=/dev/sda of=/dev/sdb bs=1M) quando as tabelas forem idênticas e você deseja clonagem completa — cuidado com discos de tamanhos diferentes.
- Usar parted para replicar partições GPT (se você usar GPT em vez de MBR).
- Criar manualmente as partições com fdisk/parted seguindo o layout do disco bom.
Checklist rápido para o administrador
- Confirmar qual disco é o falho com lsblk e cat /proc/mdstat.
- Marcar partições como failed e removê-las do array ou desligar para troca física.
- Substituir fisicamente o HDD se necessário.
- Copiar a tabela de partições: sfdisk -d /dev/sda | sfdisk /dev/sdb.
- mdadm –zero-superblock nas partições novas.
- mdadm -a para adicionar as partições ao array.
- Monitorar /proc/mdstat até sincronização completa.
- Reinstalar GRUB em ambos os discos.
- Testar reboot e confirmar array montado corretamente.
Critérios de aceitação
- O array RAID1 mostra [UU] em /proc/mdstat para todas as réplicas.
- O sistema inicializa corretamente com cada disco de forma independente (após testes de boot).
- Não há erros persistentes em dmesg relacionados ao RAID ou partições.
Mini-metodologia (por que seguir esta ordem)
- Identificar e isolar o disco defeituoso para não causar corrupção.
- Preparar o disco substituto com tabela de partições idêntica.
- Garantir que não existam metadados RAID conflitantes.
- Adicionar ao array e esperar sincronizar totalmente.
- Reinstalar bootloader para garantir redundância de boot.
Links úteis
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Resumo: seguindo estes passos você substitui um HDD em um RAID1 com segurança usando ferramentas padrão (sfdisk, mdadm, grub). Teste em um ambiente controlado antes de aplicar em produção.
Materiais semelhantes

Como bloquear apps no iPhone

Ver publicações curtidas no Instagram — guia atualizado

Como escolher o Mini PC certo

Como ver publicações curtidas no Instagram
Substituir disco RAID1 com mdadm
