Guida alle tecnologie

Espandere un array RAID degradato

4 min read Linux Sysadmin Aggiornato 22 Sep 2025
Espandere un array RAID degradato con mdadm e LVM
Espandere un array RAID degradato con mdadm e LVM

TL;DR

Espandi un array RAID degradato rimuovendo il device difettoso, azzerando il superblock, avviando il sistema di recupero, aumentando l’array con mdadm, ridimensionando il PV e infine il LV e il filesystem. Importante: azzerare il superblock su /dev/sda5 prima di riaggiungerlo.

Panoramica

Questa guida spiega i passaggi per crescere (grow) un array RAID degradato usando mdadm e LVM. Le istruzioni coprono la rimozione del disco, l’azzeramento del superblock, l’attivazione in ambiente rescue, l’espansione dell’array, il ridimensionamento del PV/LV e il ripristino della sincronizzazione tra dischi.

Passo 1 — Verificare e rimuovere il device difettoso

Prima di entrare nel sistema di rescue, assicurati che /dev/sda5 sia realmente rimosso dall’array:

mdadm --manage /dev/md1 --fail /dev/sda5
mdadm --manage /dev/md1 --remove /dev/sda5

Questi comandi marcano la periferica come fallita e la rimuovono dall’array. Verifica lo stato con cat /proc/mdstat dopo la rimozione.

Importante

Azzerare il superblock su /dev/sda5 è fondamentale. Se lo dimentichi, il sistema potrebbe non avviarsi correttamente dopo il ridimensionamento.

mdadm --zero-superblock /dev/sda5

Passo 2 — Avviare il sistema di rescue e caricare i moduli necessari

Avvia il rescue system (ad es. una live di Knoppix o simile) e attiva i moduli kernel necessari:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Quindi attiva gli array RAID e aggiorna la configurazione di mdadm:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan

Avvia anche LVM:

/etc/init.d/lvm start

Passo 3 — Crescere l’array e il PV

Adesso puoi ingrandire /dev/md1 al massimo spazio disponibile:

mdadm --grow /dev/md1 --size=max

–size=max indica il valore massimo possibile. In alternativa puoi specificare la dimensione in KiB.

Quindi ridimensiona il PV LVM sulla nuova dimensione dell’array:

pvresize /dev/md1

Controlla lo stato del volume group:

vgdisplay

Esempio di output:

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:~#

Nell’esempio ci sono 194 PE (Physical Extents) liberi per un totale di circa 776 MB disponibili per l’LV.

Passo 4 — Estendere l’LV e il filesystem

Alloca i PE liberi al Logical Volume root:

lvextend -l +194 /dev/server1/root

Esegui un controllo del filesystem immediatamente prima del ridimensionamento:

e2fsck -f /dev/server1/root

Ridimensiona il filesystem ext2/3/4:

resize2fs /dev/server1/root

Esegui un secondo controllo post-resize:

e2fsck -f /dev/server1/root

Dopo questi passi, il filesystem sfrutterà lo spazio aggiuntivo dell’LV.

Passo 5 — Riaggiungere il disco rimosso e ricostruire l’array

Riavvia sul sistema normale e aggiungi /dev/sda5 nuovamente all’array /dev/md1. Prima azzera il superblock (se non l’hai già fatto):

mdadm --zero-superblock /dev/sda5
mdadm -a /dev/md1 /dev/sda5

Controlla lo stato di sincronizzazione:

cat /proc/mdstat

Dovresti vedere che /dev/sdb5 e /dev/sda5 sono sincronizzati o in fase di sincronizzazione.

Cosa può andare storto e come intervenire

  • Errore: mdadm non trova l’array. Controlla che i moduli kernel md siano caricati e che mdadm.conf contenga le definizioni corrette.
  • pvresize non aumenta il PV: verifica che /dev/md1 sia stato realmente cresciuto e che non ci siano snapshot o LVs che limitano l’operazione.
  • resize2fs fallisce: assicurati che il filesystem sia supportato (ext2/3/4). Per XFS usa xfs_growfs dopo aver esteso il LV.
  • Il sistema non si avvia dopo il resize: ricontrolla fstab, UUID dei dischi e la presenza dei superblock errati sui dispositivi.

Alternative e approcci diversi

  • Ricostruire l’array su nuovi dischi invece di riutilizzare il disco rimosso.
  • Usare backup + restore in caso di danni al filesystem che impediscono il resize.
  • Se usi filesystem diversi (es. XFS), segui gli strumenti specifici (xfs_admin, xfs_growfs).

Checklist rapida (Playbook)

  • Confermare quale device è degradato (/proc/mdstat)
  • Fail e remove del device degradato
  • mdadm –zero-superblock sul device rimosso
  • Avviare rescue e caricare moduli
  • mdadm –examine –scan e mdadm -A –scan
  • pvresize su /dev/md1
  • Controllare vgdisplay per PE liberi
  • lvextend e e2fsck / resize2fs
  • Riaggiungere il device e verificare cat /proc/mdstat

Cheat sheet comandi principali

  • Fail e rimuovere: mdadm –manage /dev/md1 –fail /dev/sda5; mdadm –manage /dev/md1 –remove /dev/sda5
  • Azzerare superblock: mdadm –zero-superblock /dev/sda5
  • Crescere array: mdadm –grow /dev/md1 –size=max
  • Ridimensionare PV: pvresize /dev/md1
  • Estendere LV: lvextend -l + /dev//
  • Controllo filesystem: e2fsck -f /dev//
  • Resize filesystem ext4: resize2fs /dev//

Glossario breve

  • RAID: Redundant Array of Independent Disks, insieme di dischi gestiti come array.
  • mdadm: Utility per gestire MD (Multiple Device) RAID su Linux.
  • PV/PVresize: Physical Volume LVM; pvresize aggiorna la dimensione del PV.
  • LV: Logical Volume, volume logico gestito da LVM.
  • PE: Physical Extent, unità minima di allocazione in LVM.

Collegamenti

Riepilogo finale

Rimuovere correttamente il disco degradato e azzerare il superblock sono passi critici. Carica i moduli in rescue, usa mdadm –grow e pvresize per aumentare la capienza, quindi estendi l’LV e il filesystem. Infine, riaggiungi il disco e verifica la sincronizzazione.

Nota: mantieni sempre backup aggiornati prima di operazioni su array e LVM.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/