Как уменьшить размер образа диска виртуальной машины KVM?

11

Как уменьшить или уменьшить размер диска виртуальной машины KVM?

Я выделил виртуальный диск объемом 500 ГБ (хранится в /var/lib/libvirt/images/vm1.img) и обнаружил, что это избыточное количество ресурсов, поэтому теперь я хотел бы освободить часть этого пространства для использования с другими виртуальными машины. Кажется, есть много ответов о том, как увеличить хранилище изображений, но не уменьшить его. Я нашел инструмент virt-resize , но кажется, что он работает только с необработанными разделами диска, а не с образами дисков.

Изменить: я использую LVM с отформатированным разделом Ext4.

Изменить: GParted скриншот, показывающий мой макет раздел LVM. Мне нужно сделать гораздо больше, чем просто изменить размер файловой системы. Я не знаю ни одного безопасного способа изменить размер LVM. И, пожалуйста, не говорите мне, чтобы использовать pvresize. Несмотря на название, он не поддерживает изменение размера LVM.

GParted скриншот

Я пытался sudo pvresize /dev/vda5, но он просто говорит, physical volume "/dev/vda5" changedно на самом деле не уменьшает размер.

Я попытался partedвручную установить размер раздела (очень опасно), но при этом print allпросто выдает ошибку «/ dev / sr0 нераспознанная метка диска».

Редактировать: следуя этим инструкциям , я смог успешно сжать как логические, так и физические тома (хотя я должен был не забыть активировать и деактивировать lvm до и после определенных команд, которые в инструкциях пропущены.

Теперь GParted показывает 250G нераспределенного свободного пространства. Как мне удалить это из образа диска KVM и вернуть его базовому гипервизору?

Cerin
источник
Вам действительно нужно уменьшить размер виртуального диска, или его будет достаточно? Вы могли бы сделать последнее с чем-то вроде qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ансгар Вичерс
@AnsgarWiechers, да, мне все еще нужно использовать диск, и я выделил гораздо больше места, чем мне когда-либо понадобится.
Cerin

Ответы:

10

Спасибо тем, кто написал, но ваши ответы были слишком расплывчаты, чтобы помочь вам.

После нескольких часов поиска в Google я, наконец, нашел руководство ( ссылка отредактирована ), в котором приведены пошаговые инструкции о том, как сжать мою файловую систему, логические тома и физические тома. Уловка, которую пропускает большинство руководств, заключается в необходимости фактически удалить физические разделы и воссоздать их с правильным размером, потому что parted не может изменить размер разделов lvm.

Затем я нашел эту документацию на qemu-img, которая объясняет, как сжать образ виртуального диска в необработанном формате, выполнив:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Cerin
источник
qemu-img - отличный инструмент для работы с образами дисков для kvm. Спустя 3 года ваша ссылка кажется битой, вот страница справочника die.net linux.die.net/man/1/qemu-img
Луи Лудог Троттье
И если кому-то нужно это удобство, и он застрял (не хочет) с виртуальной машиной .qcow2, сначала преобразуйте ее, qemu-img convert -f qcow2 -O raw image.qcow2 image.imgа затем вы можете запустить приведенную выше команду.
oemb1905
4

Что тебе необходимо сделать,

  • Сделайте резервную копию
  • Сжимайте файловую систему (ы) * не делайте этого в реальной системе, я рекомендую использовать live cd.
  • Создайте новый образ диска нужного размера.
  • Запустите live os с новыми и старыми образами, прикрепленными как (виртуальные) жесткие диски (не смонтированы)
  • Создайте новый раздел (ы) того же размера, что и измененные разделы на старом диске.
  • Используйте dd для зеркалирования данных в новый раздел.
  • Возможно, вам придется очистить / регенерировать grub (2) для успешной загрузки.

Это может быть выполнено через графический интерфейс и CLI

Ресурсы

инструменты

  • gparted (ссылка опущена из-за спама, недостаточно репутации)
daxroc
источник
Сложная часть - «Сжать файловую систему». Я использую LVM, который не нашел поддержки для изменения размера. Даже GParted Live CD.
Cerin
Я думаю, что это покрывает, я не использовал это, поэтому, пожалуйста, сообщите хорошие или плохие tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc
Есть два основных момента, на которые следует обратить внимание: 1) Делайте все по порядку ( сначала сжимайте файловую систему, затем сжимайте раздел, затем сжимайте диск). 2) Процедура / инструменты для изменения размера файловой системы сильно зависят от фактической файловой системы (которую OP решил не раскрывать). Опубликованная статья @daxroc не будет работать для файловых систем, отличных от ext [234].
Ансгар Wiechers
@ Daxroc, мне нужно уменьшить как логические и физические тома. Ваша ссылка охватывает только уменьшение логического тома.
Cerin
согласовано. бэкап, новый диск, восстановление самое безопасное и простое
десятое
0

Это сработало очень хорошо для меня. Он сжимает и сжимает 0 блоков в образе диска. Изображение будет расширяться со временем, так как оно перезаписано снова.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
Greg
источник
-4

Я рекомендую, прежде чем делать что-либо из этого, вы берете полную копию образа диска, как он есть, затем, когда он сломается, вы можете просто скопировать его обратно, чтобы начать все сначала.

Вам нужно сделать 3 вещи:

1) Увеличьте размер диска. В вашем хосте:

qemu-img resize foo.qcow2 + 32G

Теперь ваш гость может видеть больший диск, но все еще имеет старые разделы и файловые системы.

2) Увеличьте размер раздела внутри образа диска. Для этого вам нужно загрузиться с LiveCD в вашем госте, поскольку вы не сможете связываться с подключенным разделом. Это довольно сложная и, возможно, самая опасная часть. Копировать здесь довольно много, поэтому я просто покажу ссылку. Вы хотите сделать что-то вроде этого:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

ИЛИ 2b) создание нового раздела будет проще (и безопаснее), если вы просто хотите больше места для хранения. Используйте fdisk или cfdisk, или все, что вам удобно - вы должны увидеть целую кучу нераспределенного пространства на вашем гостевом диске.

3) Наконец, если вы изменили размер существующего раздела, сделайте файловую систему внутри нового большего раздела больше (это на самом деле в руководстве, связанном выше). Внутри вашего гостя:

Анкур Дхолакия
источник
6
Он пытается сделать изображение меньше , а не больше.
Майкл Хэмптон