Guia de tecnologias

Ampliando um array degradado

4 min read Administração Linux Atualizado 22 Sep 2025
Ampliar array RAID degradado com mdadm e LVM
Ampliar array RAID degradado com mdadm e LVM

TL;DR

Se um disco foi removido de um array RAID e você precisa recuperar espaço sem reinstalar, remova o disco afetado, zere o superbloco, inicialize em um sistema de resgate, aumente o array com mdadm, redimensione o PV/LV e o sistema de arquivos, e então readicione o disco ao array para sincronização.

Visão geral rápida

Este guia descreve os comandos e a sequência para aumentar um array RAID degradado (mdadm) e expandir volumes LVM e o sistema de arquivos em cima dele. Inclui verificações e comandos de recuperação necessários para minimizar risco de perda de dados.

Importante: zere o superbloco do disco removido antes de reinseri-lo. Se você esquecer, o sistema pode não inicializar após o redimensionamento.

Passo a passo

  1. Confirme que /dev/sda5 foi marcado como com falha e removido do array:
mdadm --manage /dev/md1 --fail /dev/sda5
mdadm --manage /dev/md1 --remove /dev/sda5
  1. Zere o superbloco no dispositivo removido (essencial):
mdadm --zero-superblock /dev/sda5
  1. Inicialize o sistema de resgate (rescue) e ative os módulos necessários:
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10
  1. Atualize a configuração do mdadm e ative os arrays:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

mdadm -A --scan
  1. Inicie LVM:
/etc/init.d/lvm start
  1. Aumente o array md1 para o máximo disponível (ou especificar tamanho em KiB):
mdadm --grow /dev/md1 --size=max

–size=max define o maior valor possível. Você também pode especificar um valor em KiBytes.

  1. Redimensione o PV sobre o array para usar todo o espaço disponível:
pvresize /dev/md1
  1. Verifique o estado do volume group:
vgdisplay

Exemplo de saída do vgdisplay:

root@Knoppix:~# vgdisplay
--- Volume group ---
VG Name               server1
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  29
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               4.75 GB
PE Size               4.00 MB
Total PE              1217
Alloc PE / Size       1023 / 4.00 GB
Free  PE / Size       194 / 776.00 MB
VG UUID               X3ZYTy-39yq-20k7-GCGk-vKVU-Xe0i-REdEu0

root@Knoppix:~#
  1. Expanda o logical volume (LV) usando as PE livres. No exemplo acima há 194 PE livres:
lvextend -l +194 /dev/server1/root
  1. Execute uma checagem no sistema de arquivos, redimensione e cheque novamente:
e2fsck -f /dev/server1/root

resize2fs /dev/server1/root

e2fsck -f /dev/server1/root
  1. Reinicie no sistema normal. Para readicionar /dev/sda5 ao array /dev/md1 (após já ter zerado o superbloco), execute:
mdadm --zero-superblock /dev/sda5
mdadm -a /dev/md1 /dev/sda5
  1. Verifique o progresso da sincronização:
cat /proc/mdstat

Você deverá ver /dev/sdb5 e /dev/sda5 sincronizando.

Interpretação rápida do vgdisplay

  • VG Size: tamanho total do grupo de volumes.
  • Alloc PE / Size: espaço já alocado para LVs.
  • Free PE / Size: espaço disponível para alocação. Use Free PE para decidir quanto expandir o LV.

Checklist pré-operação (pré-reqs)

  • Backup completo dos dados críticos.
  • Shell de resgate disponível (pendrive, ISO, modo rescue do provedor).
  • Acesso a console físico ou KVM/IPMI para casos de falha no boot.
  • Confirmação dos nomes de dispositivo (/dev/sda5, /dev/sdb5, /dev/md1, etc.).

Playbook rápido (resumido)

  1. Marcar falha e remover disco do array.
  2. Zero superblock no disco removido.
  3. Boot em rescue, carregar módulos, ativar arrays e LVM.
  4. mdadm –grow, pvresize, lvextend.
  5. e2fsck → resize2fs → e2fsck.
  6. Reboot e readicionar disco ao array.
  7. Monitorar /proc/mdstat até sincronização completa.

Verificações e pontos de falha comuns

  • Erro: pvresize não detecta novo tamanho — verifique se mdadm realmente cresceu e se /dev/md1 está ativo.
  • Erro: resize2fs falha — execute e2fsck até não retornar erros; verifique superblocos alternativos se necessário.
  • Risco de device renaming (ex.: sda/sdb trocando) — prefira usar UUIDs ou caminhos persistentes (/dev/disk/by-id/) quando possível.

Riscos e mitigação

  • Perda de dados por operação em disco errado — mitigar com backups e dupla checagem dos nomes de dispositivo.
  • Array não inicializa após redimensionamento — sempre zerar o superbloco do disco removido antes de readicioná-lo.
  • Sincronização longa — planeje janela de manutenção e monitore impacto de I/O.

Lista de comandos de referência (cheat sheet)

  • Falhar e remover disco: mdadm –manage /dev/md1 –fail /dev/sda5; mdadm –manage /dev/md1 –remove /dev/sda5
  • Zerar superbloco: mdadm –zero-superblock /dev/sda5
  • Crescer array: mdadm –grow /dev/md1 –size=max
  • Redimensionar PV: pvresize /dev/md1
  • Extender LV: lvextend -l + /dev//
  • Checar FS: e2fsck -f /dev/
  • Redimensionar FS ext2/3/4: resize2fs /dev/
  • Readicionar disco: mdadm -a /dev/md1 /dev/sda5
  • Ver status: cat /proc/mdstat

Critérios de sucesso

  • /dev/md1 aumenta para o tamanho esperado.
  • PV e LV mostram o novo tamanho via vgdisplay e lvdisplay.
  • Sistema de arquivos montado sem erros e com espaço extra disponível.
  • Disco readicionado sincroniza com sucesso (sem erros em /proc/mdstat).

Quando este procedimento não é recomendado

  • Se você estiver usando tipos de sistema de arquivos distintos de ext2/3/4 sem suporte a resize2fs.
  • Se há snapshots LVM ou backups que dependem de tamanhos fixos — avalie impacto antes.

Notas finais

  • Teste o procedimento em um ambiente de staging quando possível.
  • Documente dispositivos e UUIDs antes de alterar arrays ou volumes.

Links

Autor
Edição

Materiais semelhantes

Como capturar tráfego de rede no Android
Android

Como capturar tráfego de rede no Android

Teste Sem Vida: descubra se você tem vida
Tecnologia

Teste Sem Vida: descubra se você tem vida

Editar RAW no Chromebook com Darktable
Fotografia

Editar RAW no Chromebook com Darktable

Ampliar array RAID degradado com mdadm e LVM
Administração Linux

Ampliar array RAID degradado com mdadm e LVM

TextNow: redirecionamento para Recuperar sua Conta
Tutoriais

TextNow: redirecionamento para Recuperar sua Conta

Como recuperar o botão Ver Imagem no Google Imagens
Dicas

Como recuperar o botão Ver Imagem no Google Imagens