Espandere un array RAID degradato
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
- Knoppix: http://www.knoppix.net/
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.
Materiali simili

Catturare dati di rete su Android in 10 passaggi

Hai una vita? Recensione di The No Life Test

Foto RAW su Chromebook con Darktable
Espandere un array RAID degradato con mdadm e LVM

TextNow: reindirizzato a Recover Your Account — come risolvere
