Guia de tecnologias

Testando e substituindo um disco falho em RAID1

4 min read Administração Linux Atualizado 09 Oct 2025
Substituir disco RAID1: guia prático
Substituir disco RAID1: guia prático

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

  1. Notifique stakeholders e faça backup.
  2. Marque o disco como failed: mdadm –manage … –fail.
  3. Remova a partição do array: mdadm –manage … –remove.
  4. Substitua o hardware fisicamente ou reconecte o disco novo.
  5. Copie partições: sfdisk -d /dev/sda | sfdisk /dev/sdb.
  6. Zere superblocos antigos: mdadm –zero-superblock /dev/sdbX.
  7. Adicione ao array: mdadm -a /dev/mdX /dev/sdbX.
  8. Monitorar sincronização; reinstalar GRUB; validar boot.
  9. 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

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.

Autor
Edição

Materiais semelhantes

Música de fundo em qualquer app Android
Android

Música de fundo em qualquer app Android

Previsão de Vendas Precisa — Guia Prático
Vendas

Previsão de Vendas Precisa — Guia Prático

Jogando no Android com controles físicos
Jogos Android

Jogando no Android com controles físicos

Corrigir atraso da câmera no Android
Tutoriais Android

Corrigir atraso da câmera no Android

Como tornar arquivos excluídos irrecuperáveis — 3 métodos
Segurança de Dados

Como tornar arquivos excluídos irrecuperáveis — 3 métodos

Configurar escravo MySQL com SSL
Bancos de Dados

Configurar escravo MySQL com SSL