Ampliando um array degradado
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
- 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
- Zere o superbloco no dispositivo removido (essencial):
mdadm --zero-superblock /dev/sda5
- 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
- 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
- Inicie LVM:
/etc/init.d/lvm start
- 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.
- Redimensione o PV sobre o array para usar todo o espaço disponível:
pvresize /dev/md1
- 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:~#
- Expanda o logical volume (LV) usando as PE livres. No exemplo acima há 194 PE livres:
lvextend -l +194 /dev/server1/root
- 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
- 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
- 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)
- Marcar falha e remover disco do array.
- Zero superblock no disco removido.
- Boot em rescue, carregar módulos, ativar arrays e LVM.
- mdadm –grow, pvresize, lvextend.
- e2fsck → resize2fs → e2fsck.
- Reboot e readicionar disco ao array.
- 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
- Knoppix: http://www.knoppix.net/
Materiais semelhantes

Como capturar tráfego de rede no Android

Teste Sem Vida: descubra se você tem vida

Editar RAW no Chromebook com Darktable
Ampliar array RAID degradado com mdadm e LVM

TextNow: redirecionamento para Recuperar sua Conta
