Назад | Перейти на главную страницу

Как перераспределить пространство между двумя LVM VG?

У меня есть два раздела диска, скажем sda1 и sda2, каждый из которых содержит группу VG.

VG_SYS имеет несколько LV, по одному на каждый нужный мне раздел.

Проблема в том, что VG_SYS не хватает места (или, лучше сказать, разделы, созданные на его LV, не имеют места), тогда как VG_GUESTS имеет много свободного места.

Возможно ли и как сжать VG_GUESTS (а в конечном итоге и sda2) и перераспределить свободное пространство в sda1 / VG_SYS?

заранее спасибо

Предполагая, что один LV на каждом VG, вашему процессу будет нужно следующее:

  1. Размонтируйте том на VG_GUESTS.
  2. Сжимайте ext3 fs на томе, который использует VG_GUESTS, с resize2fs.
  3. Уменьшите LV на VG_GUESTS с помощью lvreduce.
  4. Уменьшите sda2 PV с помощью pvresize - это может не сработать.
  5. Обновите информацию о VG с помощью vgreduce.
  6. Используйте инструмент разметки, чтобы изменить размер sda2 и создать sda3 в свободном пространстве.
  7. Смонтируйте том на VG_GUESTS.
  8. Добавьте sda3 в VG_SYS.
  9. Расширьте LV на VG_SYS с помощью lvextend.
  10. Измените размер файловой системы с помощью resize2fs (должно работать онлайн, но вы должны быть готовы к загрузке с LiveCD).

Еще не испугался? Если да, то мне удалось произвести правильное впечатление. Потому что это игра с огнем. Я могу поставить 5 долларов против вашего сингла, что что-то пойдет не так, и вы потеряете свои данные.

Вместо того, чтобы пытаться уменьшить объем, что всегда сложно и опасно, самый безопасный подход - это что-то более разрушительное:

  1. Резервный том гостя.
  2. Отключите том.
  3. Снимаем PV с sda2 с помощью pvremove.
  4. Используйте инструмент разбиения на разделы, чтобы изменить размер sda2 до размера, который вы хотите добавить к VG_SYS, затем создайте sda3, используя оставшееся пространство, в котором будет размещен новый VG_GUESTS.
  5. Создайте новый PV на sda2, затем добавьте его в VG_SYS.
  6. Расширьте LV на VG_SYS с помощью lvextend.
  7. Измените размер файловой системы с помощью resize2fs (должно работать онлайн, но вы должны быть готовы к загрузке с LiveCD).
  8. Создайте PV на sda3, затем VG на этом PV, затем LV на этом VG, затем ext3 fs на этом LV, затем смонтируйте его в точке монтирования тома гостя.
  9. Восстановите данные на этом новом томе.

Я намеренно опустил точные команды, так как вы должны делать такие вещи с полным пониманием того, что делает каждая команда, так что RTFM и удачи.

Вы, наверное, хотите что-то вроде этот. Однако имейте в виду, что он предполагает, что вы просто собираетесь полностью удалить PV из своей VG, а не пытаться уменьшить его. Я подозреваю, что для того, что вы хотите, вам понадобится третий раздел (возможно, на съемном USB-накопителе) для использования в качестве временного хранилища. Предполагая, что это / dev / sdb1, вы можете сделать что-то вроде этого:

  • создать новую временную логическую группу на / dev / sdb1 (скажем, VG_TEMP)
  • скопировать все LV из VG_GUESTS в VG_TEMP
  • удалить / dev / sda2
  • развернуть / dev / sda1
  • воссоздайте / dev / sda2, повторно добавьте его как PV в VG_GUESTS
  • скопируйте обратно все LV из VG_TEMP в VG_GUESTS

Это было бы самым безопасным. И убедитесь, что у вас есть резервные копии!