Guia de tecnologias

Substituir disco falho em RAID1 — teste e recuperação

6 min read Administração de sistemas Atualizado 28 Sep 2025
Substituir disco falho em RAID1 — recuperação
Substituir disco falho em RAID1 — recuperação

Importante: este guia assume um array RAID1 gerenciado por mdadm em Linux. Teste em um ambiente controlado antes de aplicar em produção. “sda” e “sdb” são exemplos; ajuste conforme sua topologia.

Objetivo e variantes da intenção

  • Objetivo principal: substituir um disco falho em um array RAID1 e recuperar a redundância.
  • Variantes relacionadas: simular falha de disco, recriar tabela de partições, re-sincronizar RAID, reinstalar bootloader, procedimentos de recuperação offline.

1. Contexto rápido

RAID1 mantém cópias idênticas dos dados em dois discos. Se um disco falhar, o sistema continua a operar em modo degradado; quando um disco novo é adicionado, o array é re-sincronizado. mdadm é a ferramenta de gerenciamento deste tipo de array em muitas distribuições Linux.

Definição em 1 linha: RAID1 = espelhamento de discos para redundância (dados idênticos em cada disco).

2. Simular a falha do disco

Você pode simular uma falha removendo fisicamente o disco ou usando mdadm para marcá-lo como com falha e removê-lo logicamente:

mdadm –manage /dev/md0 –fail /dev/sdb1
mdadm –manage /dev/md1 –fail /dev/sdb2

mdadm –manage /dev/md0 –remove /dev/sdb1
mdadm –manage /dev/md1 –remove /dev/sdb2

Em seguida, desligue o sistema:

shutdown -h now

Substitua o disco físico por um novo (ou troque nomes de dispositivo conforme necessário) e inicialize o sistema. Ele deve subir em modo degradado.

3. Verificar estado do array degradado

Execute:

cat /proc/mdstat

Você deverá ver algo como (exemplo):

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0]
104320 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
10377920 blocks [2/1] [U_]

unused devices: 
[root@server1 ~]#

E confira as partições e discos com:

fdisk -l

(Exemplo de saída reduzida no original; confirma que /dev/sdb não tem tabela de partições válida.)

4. Copiar tabela de partições do disco bom para o novo disco

Copie a tabela de partições de /dev/sda para /dev/sdb com sfdisk:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Se houver erro referente à assinatura msdos, tente forçar:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Exemplo de saída útil que confirma a escrita bem-sucedida da nova tabela de partições está presente no procedimento original.

5. Limpar superblocos RAID antigos e adicionar o disco ao array

Zere superblocos mdadm que possam existir no novo disco para evitar confusão:

mdadm –zero-superblock /dev/sdb1
mdadm –zero-superblock /dev/sdb2

Em seguida, adicione as partições do novo disco ao array:

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2

Verifique novamente:

cat /proc/mdstat

Você verá o array iniciando a recuperação e sincronização, por exemplo:

[======>..............]  recovery = 32.3% (3360768/10377920) finish=1.5min speed=74238K/sec

Aguarde até os arrays mostrarem [UU] (dois discos online) em cada mdX.

6. Reinstalar o GRUB no(s) disco(s)

Após a sincronização, reinstale o bootloader em ambos os discos para garantir que o sistema possa inicializar se o outro disco falhar:

Execute o shell do grub (varia conforme versão; exemplo clássico):

grub

Dentro do prompt do grub:

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

Se sua distro usa grub2, o procedimento é diferente (por exemplo: grub-install /dev/sda; grub-install /dev/sdb; update-grub). Use o método compatível com sua instalação.

7. Quando isso pode falhar — cenários e soluções rápidas

  • Tabela de partições incompatível: use dd para copiar setores iniciais ou reconstrua manualmente com fdisk/parted.
  • Superblocos restantes: se somem inconsistências, verifique com mdadm –examine /dev/sdb1 e –zero-superblock novamente.
  • Partições com offset diferente: certifique-se de que start/end e tipos (Id fd) sejam idênticos.
  • Problemas de boot após GRUB: reinstale com grub-install apropriado para grub2; verifique /etc/fstab por UUIDs conflitantes.
  • Velocidade de rebuild muito lenta: pode ser I/O saturado; limpe I/O não essencial e ajuste /proc/sys/dev/raid/speed_limit_min/max se necessário (com cuidado).

8. Abordagens alternativas

  • Hot-swap físico: se chassis e controladora suportarem, troque o disco com o sistema em execução e adicione a partição; evita downtime.
  • Recriar array do zero: se ambos os discos falharem, restaura a partir de backup e recrie o array; é um plano de último recurso.
  • Utilizar LVM sobre RAID: facilita snapshots e movimentação de volumes, mas não substitui testes de disco.

9. Modo mental (heurísticas) para decidir ações

  • Se o disco estiver offline mas os dados intactos no outro: copie tabela e adicione ao array.
  • Se ambos perderem partições, restaure tabela de um backup (sfdisk -d regularmente) ou use backups de dados.
  • Priorize a integridade dos dados antes do tempo de inatividade: não force rebuilds quando erros de I/O persistirem.

10. SOP / Playbook resumido (passo a passo)

  1. Verificar estado atual: cat /proc/mdstat e fdisk -l.
  2. Simular falha (ou remover fisicamente) e bootar sistema.
  3. Copiar tabela: sfdisk -d /dev/sda | sfdisk /dev/sdb.
  4. Zerar superblocos: mdadm –zero-superblock /dev/sdbX.
  5. Adicionar partições: mdadm -a /dev/mdX /dev/sdbX.
  6. Monitorar sincronização: cat /proc/mdstat até [UU].
  7. Reinstalar bootloader em ambos discos.
  8. Validar: reboot e verificar boot sem erros; checar /proc/mdstat e dmesg.

11. Checklist por função

  • Operador/Administrador: executar comandos, monitorar progresso, reportar tempo de rebuild.
  • Engenheiro de armazenamento: analisar logs de I/O se rebuild muito lento ou falhando.
  • Engenheiro de sistema: garantir bootloader instalado e testar reboot.
  • Suporte/DevOps: atualizar inventário de hardware e criar ticket de substituição física se necessário.

12. Critérios de aceitação

  • O array RAID mostra [UU] para todas as unidades relevantes em cat /proc/mdstat.
  • Sistema inicializa normalmente a partir de qualquer um dos dois discos (teste de reboot).
  • Não há mensagens críticas relacionadas a erros de disco em dmesg após rebuild.
  • Tabela de partições do novo disco corresponde exatamente ao disco original (start/end/tipo).

13. Caixa de fatos e números-chave

  • RAID1: número mínimo de discos = 2; suporta uma falha de disco sem perda de serviço.
  • Comandos críticos: mdadm, sfdisk, fdisk, grub/grub-install.
  • Arquivo de verificação: /proc/mdstat (estado do array); mdadm –detail /dev/mdX (detalhes do array).

14. Exemplo de diagrama de decisão (Mermaid)

flowchart TD
  A[Disco problemático detectado] --> B{Disco está fisicamente ausente?}
  B -- Sim --> C[Substituir fisicamente disco]
  B -- Não --> D{Marcar como falha com mdadm?}
  D -- Sim --> E[mdadm --manage --fail/--remove]
  E --> F[Inserir novo disco]
  C --> F
  F --> G[Copiar tabela: sfdisk -d /dev/sda | sfdisk /dev/sdb]
  G --> H[Zerar superblocos: mdadm --zero-superblock]
  H --> I[Adicionar ao array: mdadm -a]
  I --> J[Monitorar /proc/mdstat até [UU]]
  J --> K[Reinstalar GRUB em ambos discos]
  K --> L[Fim]

15. Solução de problemas detalhada

  • Rebuild não inicia: verifique se particições adicionadas têm o tipo certo (fd para autodetect RAID) e se o kernel reconheceu as partições (releia tabela de partições com partprobe ou reboot).
  • Mensagens de I/O durante rebuild: pare o rebuild, cheque SMART do disco novo (smartctl), substitua se houver erros.
  • UUID duplicado em /etc/fstab: atualize fstab para usar UUIDs corretos (blkid para listar) ou ajuste fstab para dispositivos /dev/mdX.

16. Dicas operacionais e segurança

  • Faça backup regular das tabelas de partições com: sfdisk -d /dev/sda > sda-partitions.sfdisk
  • Antes de operações arriscadas, tenha backups atualizados dos dados.
  • Proteja acesso root e registros de comando; sudo e logs ajudam auditoria.

17. Resumo

Substituir um disco em RAID1 envolve: identificar o estado degradado, replicar a tabela de partições do disco funcional, limpar superblocos antigos, adicionar o novo disco ao array e aguardar a sincronização. Reinstalar o bootloader em ambos os discos garante arrancada resiliente.

Links

Autor
Edição

Materiais semelhantes

Como ver e apagar o histórico do YouTube
Privacidade

Como ver e apagar o histórico do YouTube

Ver contagem de 'não gostei' no YouTube
Tutoriais

Ver contagem de 'não gostei' no YouTube

Adicionar fórum ao Tumblr — guia passo a passo
Tutoriais

Adicionar fórum ao Tumblr — guia passo a passo

Como usar o Dropbox no Android
Aplicativos

Como usar o Dropbox no Android

Desativar memória de chats do Gemini
Privacidade

Desativar memória de chats do Gemini

Almowafir — Cupons e descontos em Dubai
Compras

Almowafir — Cupons e descontos em Dubai