Guia de tecnologias

Substituir um disco falhado num array RAID1

5 min read Administração Atualizado 17 Oct 2025
Substituir disco em RAID1 — guia rápido
Substituir disco em RAID1 — guia rápido

Visão geral do processo

Este procedimento descreve como testar a falha de um disco e substituí-lo num array RAID1 gerido com mdadm. Etapas principais:

  • Simular a falha do disco
  • Remover o disco do sistema e/ou marcar como failed
  • Clonar a tabela de partições do disco saudável para o novo disco
  • Zerar metadados RAID antigos e adicionar as partições ao array
  • Aguardar a ressincronização completa
  • Reinstalar o GRUB em ambos os discos

Termos rápidos: mdadm — utilitário para gerir arrays RAID no Linux. sfdisk — ferramenta para manipular tabelas de partição em modo texto.

Testes e simulação de falha

Agora vamos simular uma falha de disco. Não importa se seleciona /dev/hda ou /dev/hdb; neste exemplo assumimos que /dev/hdb falhou.

Para simular a falha do disco, pode desligar a máquina e remover /dev/hdb, ou (soft-)removê-lo assim:

mdadm --manage /dev/md0 --fail /dev/hdb1
mdadm --manage /dev/md1 --fail /dev/hdb5
mdadm --manage /dev/md2 --fail /dev/hdb6

Remova o disco do array:

mdadm --manage /dev/md0 --remove /dev/hdb1
mdadm --manage /dev/md1 --remove /dev/hdb5
mdadm --manage /dev/md2 --remove /dev/hdb6

Desligue o sistema se preferir um teste físico:

shutdown -h now

Substitua o HDD por um novo (ou, se simulou a falha de /dev/hda, coloque /dev/hdb no lugar de /dev/hda e conecte o novo HDD como /dev/hdb) e arranque o sistema. O sistema deverá arrancar sem problemas.

Verificar estado degradado

Verifique o estado do array:

cat /proc/mdstat

Exemplo de saída quando um disco falta:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0]
      417536 blocks [2/1] [U_]

md0 : active raid1 hda1[0]
      176576 blocks [2/1] [U_]

md2 : active raid1 hda6[0]
      4642688 blocks [2/1] [U_]

unused devices: 
[root@server1 ~]#

Também verifique as unidades com fdisk:

fdisk -l

A saída deve mostrar o disco novo sem tabela de partição válida.

Clonar a tabela de partições

Copie a tabela de partições do disco saudável (/dev/hda) para o disco novo (/dev/hdb):

sfdisk -d /dev/hda | sfdisk --force /dev/hdb

Exemplo de interação com sfdisk:

[root@server1 ~]# sfdisk -d /dev/hda | sfdisk --force /dev/hdb
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Checking that no-one is using this disk right now ...
OK

Disk /dev/hdb: 10402 cylinders, 16 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/hdb: 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/hdb1   *        63    353429     353367  fd  Linux raid autodetect
/dev/hdb2        353430  10474379   10120950   5  Extended
/dev/hdb3             0         -         0   0  Empty
/dev/hdb4             0         -         0   0  Empty
/dev/hdb5        353493   1188809     835317  fd  Linux raid autodetect
/dev/hdb6       1188873  10474379    9285507  fd  Linux raid autodetect
Warning: partition 1 does not end at a cylinder boundary
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 ~]#

Nota: as mensagens de aviso sobre limites de cilindros são comuns e muitas vezes inseguras só na teoria; a prática aceita as diferenças modernas em geometria de disco.

Remover restos de arrays anteriores e adicionar partições

Apague qualquer superbloco RAID pré-existente nas partições do disco novo:

mdadm --zero-superblock /dev/hdb1
mdadm --zero-superblock /dev/hdb5
mdadm --zero-superblock /dev/hdb6

Agora adicione as partições ao array:

mdadm -a /dev/md0 /dev/hdb1
mdadm -a /dev/md1 /dev/hdb5
mdadm -a /dev/md2 /dev/hdb6

Verifique o progresso:

cat /proc/mdstat

Exemplo de estado durante a recuperação:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb5[2] hda5[0]
      417536 blocks [2/1] [U_]
        resync=DELAYED

md0 : active raid1 hdb1[1] hda1[0]
      176576 blocks [2/2] [UU]

md2 : active raid1 hdb6[2] hda6[0]
      4642688 blocks [2/1] [U_]
      [===========>.........]  recovery = 59.9% (2784512/4642688) finish=7.5min speed=4076K/sec

unused devices: 
[root@server1 ~]#

Aguarde até a sincronização terminar; o estado final deverá mostrar [UU] em todos os arrays:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb5[1] hda5[0]
      417536 blocks [2/2] [UU]

md0 : active raid1 hdb1[1] hda1[0]
      176576 blocks [2/2] [UU]

md2 : active raid1 hdb6[1] hda6[0]
      4642688 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

Reinstalar o GRUB nos discos

Depois da ressincronização completa, reinstale o carregador de arranque em ambos os discos usando o utilitário grub (modo interativo mostrado abaixo):

grub

Na consola do grub execute:

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

Isto garante que o sistema continuará a arrancar mesmo se um dos discos falhar novamente.

Verificações finais e critérios de aceite

  • Todos os arrays mostram [UU] em /proc/mdstat.
  • Não existem mensagens de erro em dmesg relacionadas com discos ou RAID.
  • As partições do novo disco correspondem às do disco saudável (fdisk -l).
  • O sistema arranca com qualquer um dos HDDs removidos (teste opcional em ambiente controlado).

Checklist de intervenção rápida

Checklist antes de começar:

  • Backup recente dos dados críticos.
  • Acesso físico ao servidor ou consola remota com IPMI/DRAC.
  • Disco de substituição compatível disponível.
  • Tempo de janela de manutenção definido, se necessário.

Passos essenciais:

  1. Simular falha ou identificar o disco com problema.
  2. Remover/assinalar a partição como failed e removê-la do array.
  3. Inserir o novo disco e clonar a tabela de partições com sfdisk.
  4. Zero superblocks, adicionar partições e verificar /proc/mdstat.
  5. Aguardar ressincronização completa.
  6. Reinstalar GRUB em ambos os discos.

Listas de verificação por função

Administrador de sistemas:

  • Verificar logs e montar backup.
  • Executar todos os comandos com privilégios root.
  • Confirmar ressincronização e reinstalação do GRUB.

Operador de datacenter:

  • Substituir fisicamente o disco conforme indicado.
  • Fornecer informações sobre LEDs/estado físico do disco.

Auditor/QA:

  • Confirmar que os critérios de aceite foram cumpridos.
  • Registar timestamps e outputs de cat /proc/mdstat para auditoria.

Resolução de problemas comuns

  • Caso mdadm recuse adicionar a partição: verifique se o superbloco foi realmente zerado com mdadm –zero-superblock e se a partição corresponde em tamanho.
  • Se a ressincronização for muito lenta: verifique I/O e carga do sistema com iostat/top e se existe throttling do disco.
  • Se sfdisk reclamar de assinatura ausente: a mensagem é normal ao gravar uma tabela nova; confirme o novo layout com fdisk -l.
  • Se o GRUB falhar a instalar em hd1: confirme a numeração de discos reconhecida pelo GRUB (hd0/hd1) e repita os comandos de setup.

Mini-metodologia

Heurística 4 passos: verificar, isolar, substituir, validar. Primeiro verifique estado e logs; isole o disco defeituoso; substitua e clone partições; valide integridade e arranque.

Fluxo de decisão simples

flowchart TD
  A[Detectar falha] --> B{Disco fisicamente danificado?}
  B -- Sim --> C[Substituir fisicamente]
  B -- Não --> D[Marcar como failed com mdadm]
  C --> E[Clonar tabela com sfdisk]
  D --> E
  E --> F[Zero superblock e mdadm -a]
  F --> G[Aguardar ressincronização]
  G --> H[Reinstalar GRUB]
  H --> I[Validação final]

Glossário rápido

  • mdadm: gerenciador de arrays RAID.
  • sfdisk: utilitário para exportar/importar partições em modo script.
  • /proc/mdstat: mostra o estado atual dos arrays RAID no kernel.

Conclusão

Seguindo estes passos substitui um disco com segurança num array RAID1. Valide sempre a sincronização e a capacidade de arranque a partir de cada disco antes de concluir a intervenção.

Links úteis

Autor
Edição

Materiais semelhantes

Como atualizar Macs usados: guia prático
Hardware

Como atualizar Macs usados: guia prático

Corrigir: Windows reinicia em vez de desligar
Tutoriais

Corrigir: Windows reinicia em vez de desligar

Como conseguir Folhas Prateadas em Destiny 2
Jogos

Como conseguir Folhas Prateadas em Destiny 2

Desbloquear conta do Facebook — guia rápido
Redes Sociais

Desbloquear conta do Facebook — guia rápido

Use QR Codes para escalar seu negócio
Marketing

Use QR Codes para escalar seu negócio

VeePN VPN — Privacidade, recursos e guia rápido
Segurança

VeePN VPN — Privacidade, recursos e guia rápido