Есть два диска: sda и sdb. На каждом по три раздела: sda1, sda2, sda3 и sdb1, sdb2 ,sdb3 соответственно. Они попарно объединены в RAID1: sda1 и sdb1 в md0 и т. д. Нужно увеличить размер раздела md{x} при условии, что после него и до следующего раздела есть свободное пространство. Для примера изменим размер md2, состоящего из sda3 и sdb3.
1. Нужно пометить sda3, как сбойный и исключить его из массива:
mdadm -f /dev/md2 /dev/sda3
Далее удаляем сбойный раздел из массива:
mdadm /dev/md2 --remove /dev/sda3
2. Изменяем размер раздела:
cfdisk /dev/sda3
В утилите выделяем раздел sda3 и выбираем команду "Resize". Прописываем нужный размер или выбираем предложенный максимальный размер раздела. Не забываем выбрать команду "Write", отвечаем полным словом "yes", тем самым применив изменения раздела и выходим посредством "Quit".
3. Далее добавляем раздел обратно в RAID:
mdadm --add /dev/md2 /dev/sda3
Дожидаемся окончания синхронизации, проверяя командой:
mdadm -D /dev/md2
или
cat /proc/mdstat
4. Повторяем шаги 1-3 для раздела sdb3.
5. Несмотря на то, что мы увеличили размер sda3 и sdb3, размеры массива md2 остался неизменным. Но если мы вспомним, что программный RAID в Linux строится поверх разделов, то все станет на свои места. Это аналогично тому, что если бы мы заменили жесткий диск в системе на более ёмкий, но перенесли раздел без изменения размера.
Расширяем объем массива:
mdadm --grow /dev/md2 --size=max
Проверяя результат командой "lsblk", видим, что размер массива изменился. Однако для разделов с файловой системой не всё так просто. Проверяя размеры командой "df -h" видно, что объём md2 остался прежним. Поэтому необходимо также увеличить размер раздела с данными:
resize2fs /dev/md2
Теперь можно считать процесс расширения массива законченным, можно использовать все доступное пространство новых дисков.