Пытался уменьшить имеющийся md raid1, чтобы добавить дополнительный раздел.
Исходная ситуация: md0 = sda1+sdb1 и md1 = sda2+sdb2 — не интересны.
md2 = sda3+sdb3, 2Тб (1.8ТиБ). Уменьшается до 1.4ТиБ, чтобы осталось 400М в остатке.
Уменьшил md2 до размера меньше нужной границы:
mdadm --grow /dev/md2 --size 1530000000
Переразбил диски parted'ом, не затрагивая начало /dev/sda3 и /dev/sdb3. Результат — такая раскладка:
Number Start End Size Type File system Flags
1 1048576B 17180918271B 17179869696B primary raid
2 17181966336B 17718837759B 536871424B primary raid
3 17719885824B 1584439230463B 1566719344640B primary raid
4 1584439230464B 2000398934015B 415959703552B primary raid
Дальше нужно увеличить /dev/md2 до отведённого максимума:
mdadm --grow /dev/md2 --size max
И вот тут он выдал мне, что размер его стал не 1530000000, а полных 1936077760 (кажется, посмотреть точно сейчас нельзя). И начал синкать. Вероятно, без перезагрузки системы или mdadm он не просёк, что изменилась разбивка. При чём синк фактически висел, выдавая ожидаемое время работы постоянно разное, на сотни тысяч минут. Прогресс тоже не сдвигался, так и висел на 79 с чем-то процентов.
Я решил тормознуть это дело и вернуть --size 1530000000. Но не помогали ни echo «idle» > /sys/block/md2/md/sync_action, ни /usr/share/mdadm/checkarray -xa, процесс также продолжался/висел. А поменять во время его работы размер невозможно.
Тогда я решил тормознуть /dev/md2 по --stop и потом запустить заново. И приплыл. Теперь любая попытка создать массив выводит подобное:
mdadm --assemble -f /dev/md2 /dev/sdb3 /dev/sda3 -v
mdadm: looking for devices for /dev/md2
mdadm: /dev/sdb3 is identified as a member of /dev/md2, slot 1.
mdadm: /dev/sda3 is identified as a member of /dev/md2, slot 0.
mdadm: failed to add /dev/sdb3 to /dev/md2: Invalid argument
mdadm: failed to add /dev/sda3 to /dev/md2: Invalid argument
mdadm: failed to RUN_ARRAY /dev/md2: Invalid argument
Есть мысли куда копать?