====== Ridimensionare un volume RAID ====== **Scenario**: due dischi da 2Tb partizionati con **''parted''** in modalità **[[..:tux:grub#partizione_bios_grub_e_dischi_2_tb|GPT]]**, per ogni disco una sola partizione che occupa l'intero spazio disponibile. Le due partizioni sono assemblate come volume raid5 (due dischi su tre, quindi lavora in modalità degradata). **Obiettivo**: si vuole allocare spazio per creare altre partizioni. Anzitutto si rimpicciolisce il filesystem ext4. Lo facciamo **un po' più piccolo di quello che dovrà essere il risultato finale**: umount /dev/md1 e2fsck -f /dev/md1 resize2fs /dev/md1 3.5T Si verifica la dimensione in kilobyte del volume **''md1''**: mdadm --detail /dev/md1 Array size: 3907023872 ... Si rimpicciolisce il volume **''md1''**; bisogna **indicare la dimensione da occupare per ogni disco**, il numero di kilobyte deve essere **multiplo di 64**. La dimensione risultante deve essere **un po' superiore** alla dimensione del filesystem in esso contenuto: mdadm --grow /dev/md1 --size=1905891000 Si verifica che la dimensione sia diminuita: mdadm --detail /dev/md1 Array size: 3811781632 ... Si cambia la dimensione della partizione, creandola **un po' più grande del volume** md1 che contiene. L'operazione deve essere fatta sui due dischi **''/dev/sdb''** e **''/dev/sdc''**. parted /dev/sdb print rm 1 mkpart primary 1049kB 1958GB quit Dopo un **''reboot''** si tenta di assemblare il device md1, ma fallisce: mdadm --assemble --scan -f /dev/md1 ... mdadm: failed to add /dev/sdb1 to /dev/md1: Invalid argument mdadm: failed to add /dev/sdc1 to /dev/md1: Invalid argument In effetti ricostruiamo il volume md1, ma con il parametro **''%%--assume-clean%%''** non verrà inizializzato e manterrà il suo contenuto precedente: mdadm --create /dev/md1 -l5 -n3 --assume-clean /dev/sdb1 /dev/sdc1 missing e2fsck -f /dev/md1 A questo punto possiamo **espandere il volume ''md1''** per occupare tutto lo spazio delle partizioni: mdadm --grow /dev/md1 --size=max Infine **espandiamo il filesystem** in modo che occupi tutto il volume ''md1'': resize2fs /dev/md1 e2fsck -f /dev/md1