Назад |
Перейти на главную страницу
Как перераспределить пространство между двумя LVM VG?
У меня есть два раздела диска, скажем sda1 и sda2, каждый из которых содержит группу VG.
- sda1 -> VG_SYS
- sda2 -> VG_GUESTS
VG_SYS имеет несколько LV, по одному на каждый нужный мне раздел.
Проблема в том, что VG_SYS не хватает места (или, лучше сказать, разделы, созданные на его LV, не имеют места), тогда как VG_GUESTS имеет много свободного места.
Возможно ли и как сжать VG_GUESTS (а в конечном итоге и sda2) и перераспределить свободное пространство в sda1 / VG_SYS?
заранее спасибо
Предполагая, что один LV на каждом VG, вашему процессу будет нужно следующее:
- Размонтируйте том на VG_GUESTS.
- Сжимайте ext3 fs на томе, который использует VG_GUESTS, с resize2fs.
- Уменьшите LV на VG_GUESTS с помощью lvreduce.
- Уменьшите sda2 PV с помощью pvresize - это может не сработать.
- Обновите информацию о VG с помощью vgreduce.
- Используйте инструмент разметки, чтобы изменить размер sda2 и создать sda3 в свободном пространстве.
- Смонтируйте том на VG_GUESTS.
- Добавьте sda3 в VG_SYS.
- Расширьте LV на VG_SYS с помощью lvextend.
- Измените размер файловой системы с помощью resize2fs (должно работать онлайн, но вы должны быть готовы к загрузке с LiveCD).
Еще не испугался? Если да, то мне удалось произвести правильное впечатление. Потому что это игра с огнем. Я могу поставить 5 долларов против вашего сингла, что что-то пойдет не так, и вы потеряете свои данные.
Вместо того, чтобы пытаться уменьшить объем, что всегда сложно и опасно, самый безопасный подход - это что-то более разрушительное:
- Резервный том гостя.
- Отключите том.
- Снимаем PV с sda2 с помощью pvremove.
- Используйте инструмент разбиения на разделы, чтобы изменить размер sda2 до размера, который вы хотите добавить к VG_SYS, затем создайте sda3, используя оставшееся пространство, в котором будет размещен новый VG_GUESTS.
- Создайте новый PV на sda2, затем добавьте его в VG_SYS.
- Расширьте LV на VG_SYS с помощью lvextend.
- Измените размер файловой системы с помощью resize2fs (должно работать онлайн, но вы должны быть готовы к загрузке с LiveCD).
- Создайте PV на sda3, затем VG на этом PV, затем LV на этом VG, затем ext3 fs на этом LV, затем смонтируйте его в точке монтирования тома гостя.
- Восстановите данные на этом новом томе.
Я намеренно опустил точные команды, так как вы должны делать такие вещи с полным пониманием того, что делает каждая команда, так что 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
Это было бы самым безопасным. И убедитесь, что у вас есть резервные копии!