Заметка: уменьшение RAID/LVM

Очередной раз попались разнокалиберные SSD’шки – в этот раз Kingspec прислал на 250 ГБ с наклейкой “256 ГБ”, а для моей старой Тошибы из HP 820 в RAID в пару нужен был как раз полный объем (и RAID уже был создан). Опыт ресайза уже был, свободное место в LVM тоже; команды в истории консоли еще остались, конспектирую.

Одна SSD на 238,47 ГБ, новая на 232,89, надо где-то найти 6 ГБ свободных на существующей конфигурации.

Да, если что – часть данных в выводе показывается уже после всех ресайзов, но важен общий принцип.

# pvs
PV VG Fmt Attr PSize PFree
/dev/md127 mls lvm2 a-- <230,00g 26,96g

В данном случае имеем еще почти 27 ГБ незанятого места, так что есть, где разгуляться.

# pvresize /dev/md127 --setphysicalvolumesize 229G

Ставим размер PV на всякий случай меньше того, что нам нужно – 229 ГиБ в данном случае. Потом можно будет растянуть его обратно.

Теперь можно уменьшить RAID-массив. Смотрим актуальный размер:

# mdadm -D /dev/md127 | grep Size
Array Size : 241172480 (230.00 GiB 246.96 GB)
Used Dev Size : 241172480 (230.00 GiB 246.96 GB)

(он был больше – напоминаю, этот вывод на деле уже после ресайза).

В данном случае было что-то около 237 ГиБ (на диске есть еще пара разделов небольшого размера). Чтобы все влезло – сделаем 230 ГиБ. mdadm’у указывается размер в KиB, так что пересчитываем – 230*1024*1024 = 241172480. Командуем:

# mdadm --grow /dev/md127 -z 241172480

Фактически, на сейчас уже можно создать таблицу разделов на новом диске и добавить соответствующий раздел в RAID. Но для полной идентичности дисков в плане разбивки – уменьшим сначала раздел на первом диске. Открываем fdisk /dev/nvme1n1, смотрим актуальную разбивку командой p. Удаляем последний раздел, создаем новый с тем же началом и новым размером – опять же, можно сделать чуть больше, чтобы не промахнуться. Я сделал 231 ГиБ (хотя, фактически, можно было на пару ГБ больше). Отресайзить все в большую сторону потом можно буквально в несколько команд. При вопросе от fdisk’а “удалить ли метаданные RAID’а” – отвечаем отказом. Ставим идентификатор раздела “Linux RAID”, сохраняем. Теперь можно клонировать разбивку на новый диск:

sgdisk /dev/nvme0n1 -R /dev/nvme1n1
sgdisk -G /dev/nvme1n1

Добавляем создавшиеся разделы на nvme1n1 в RAID и на этом все.

Если есть желание – можно растянуть все компоненты до максимума – как уже говорил, делается это в пару команд:

# mdadm --grow /dev/md127 -z max
# pvresize /dev/md127

Теперь у нас RAID и LVM растянуты до максимального размера раздела:

# mdadm -D /dev/md127 | grep Size
Array Size : 242088960 (230.87 GiB 247.90 GB)
Used Dev Size : 242088960 (230.87 GiB 247.90 GB)
# pvs
PV VG Fmt Attr PSize PFree
/dev/md127 mls lvm2 a-- 230,87g <27,84g

Добавить комментарий