Как уменьшить или уменьшить размер диска виртуальной машины KVM?
Я выделил виртуальный диск объемом 500 ГБ (хранится в /var/lib/libvirt/images/vm1.img), и я нахожу это излишним, поэтому теперь я хотел бы освободить часть этого пространства для использования с другими виртуальными машины. Вроде бы много ответы о том, как увеличить объем хранилища изображений, но не уменьшить его. Я нашел virt-resize инструмент, но кажется, что он работает только с необработанными разделами диска, а не с образами дисков.
Изменить: я использую LVM с разделом в формате Ext4.
Изменить: снимок экрана GParted, показывающий мой макет раздела LVM. Мне нужно сделать гораздо больше, чем просто изменить размер файловой системы. Я не знаю безопасного способа изменить размер LVM. И, пожалуйста, не говори мне использовать pvresize
. Несмотря на свое название, он не поддерживает изменение размера LVM.
Я действительно пробовал sudo pvresize /dev/vda5
, но это просто говорит physical volume "/dev/vda5" changed
но на самом деле не уменьшает размер.
Я попробовал начать parted
вручную установить размер раздела (очень опасно), но делая print all
просто выдает ошибку "/ dev / sr0 неопознанная метка диска".
Изменить: следуя эти инструкции, Мне удалось успешно сжать как логические, так и физические тома (хотя мне нужно было не забыть активировать и деактивировать lvm до и после определенных команд, которые в инструкциях не указаны.
Теперь GParted показывает 250 ГБ нераспределенного свободного пространства. Как мне удалить это из образа KVM-диска и вернуть его базовому гипервизору?
Спасибо тем, кто разместил, но ваши ответы были слишком расплывчатыми, чтобы помочь.
После нескольких часов поиска в Google я наконец нашел руководство (ссылка отредактирована) с пошаговыми инструкциями по уменьшению файловой системы, логических и физических томов. Уловка, которую упускают из виду большинство руководств, заключается в необходимости фактического удаления физических разделов и воссоздания их с правильным размером, поскольку parted не может изменить размер разделов lvm.
Затем я нашел эта документация в qemu-img, в котором объясняется, как сжать необработанный образ виртуального диска, запустив:
sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Что тебе необходимо сделать,
Это можно сделать как через графический интерфейс, так и через интерфейс командной строки.
Ресурсы
инструменты
Это сработало для меня очень хорошо. Он сжимает и сжимает блоки 0 в образе диска. Изображение будет расширяться со временем, когда оно будет перезаписано заново.
qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
Я рекомендую, прежде чем делать что-либо из этого, вы сделаете полную копию образа диска как есть, а затем, когда все это сломается, вы можете просто скопировать его обратно, чтобы начать заново.
Вам нужно сделать 3 вещи:
1) Увеличить образ диска. На вашем хосте:
qemu-img изменение размера foo.qcow2 + 32G
Теперь ваш гость может видеть диск большего размера, но все еще имеет старые разделы и файловые системы.
2) Увеличьте раздел внутри образа диска. Для этого вам необходимо загрузиться с LiveCD в гостевой системе, так как вы не сможете испортить подключенный раздел. Это довольно сложная и, вероятно, самая опасная часть. Здесь довольно много копий, поэтому пока я просто сделаю ссылку. Вы хотите сделать что-то вроде этого:
http://www.howtoforge.com/linux_resizing_ext3_partitions_p2
ИЛИ 2b) создание нового раздела будет проще (и безопаснее), если вам просто нужно больше места для хранения. Используйте fdisk или cfdisk, или что угодно - теперь вы должны увидеть целую кучу нераспределенного пространства на вашем гостевом диске.
3) Наконец, если вы изменили размер существующего раздела, увеличьте файловую систему внутри нового большего раздела (в любом случае это есть в руководстве, указанном выше). Внутри вашего гостя: