QCOW2 уменьшение виртуального размера

Я пытаюсь получить виртуальный размер qcow2 контейнер вниз, чтобы он мог уместиться в открытый вкус с диском 10 ГБ.

root@node-10:~# qemu-img info zztop.qcow 
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false

Я следую инструкциям здесь и заполняю конец диска нулями, затем запускаю qemu-img convert -O qcow2, В результате qcow2, однако, сохраняет тот же размер диска и виртуальный размер.

Как уменьшить виртуальный размер qcow2, чтобы он мог вместить в себя openstack менее 80 ГБ?

5 ответов

Решение

Если вы хотите уменьшить виртуальный размер, вам нужно использовать virt-resize

  1. Вам нужно конвертировать изображение qcow2 в raw
    qemu-img convert -O raw guest.img guest.raw
  2. Затем измените размер необработанного файла.
    qemu-img resize guest.raw 3G
  3. Затем преобразовать его обратно в qcow2
    qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
  4. Затем запустите гостя и измените размер вашей файловой системы

Улучшен ответ @user370956

Я смог успешно уменьшить свой фактический размер изображения с 5.9G до 3.5G и v. Размер тоже.

  1. Сделайте резервную копию вашего изображенияcp guest.img quest.backup
  2. Вам нужно конвертировать изображение qcow2 в raw
    qemu-img convert -O raw guest.img guest.raw
  3. Загрузите живую iso, установленную как -cdrom и ваш guest.raw установлен как -driveqemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-amd64-lxde.iso -m 2G
  4. Используйте gparted (инструмент gui), чтобы уменьшить раздел внутри гостя. Оставьте свободное место, чтобы система могла загружаться (достаточно 100 МБ). Оставьте оставшееся пространство незанятым. Проверьте файловую систему.fsck -a
  5. Затем измените размер необработанного файла.
    qemu-img resize guest.raw 3G
  6. Затем преобразовать его обратно в qcow2
    qemu-img convert -O qcow2 guest.raw guest.img
  7. На этом этапе вы можете изменить размер виртуального образа qcow2, чтобы добавить пространство, и это не повлияет на размер файла изображения. Это может быть необходимо для обеспечения стабильности виртуальной машины.qemu-img resize guest.img +1G
  8. Повторите шаги 2,3, чтобы выделить больше места для гостевого корневого раздела, если вы выполнили шаг 6.

Манипулирование только со стороны хоста может привести к повреждению вашей гостевой файловой системы.

Таким образом, чтобы завершить этот ответ, перед любыми изменениями с хоста необходимо изменить размеры разделов хранилища виртуальной машины с помощью таких инструментов, как gparted изнутри ВМ. Таким образом, общий размер виртуального диска становится меньше требуемого размера виртуального хранилища. После этого вы можете сделать первые 3 шага.

1 - отключить файл подкачки в fstab, если он есть

2 - Подключите gparted к вашей виртуальной машине.

3 - запустить виртуальную машину, загрузиться gparted и изменить размер раздела до меньшего размера

4 - Удалите раздел подкачки и заново создайте его или убедитесь, что все разделы выровнены рядом друг с другом в начале диска. У меня были проблемы со свопом, находящимся в конце диска после сжатия раздела, так что это было исправлением.

5 - выключить ВМ

6 - Найдите файл qcow2 и в том же каталоге выполните "qemu-img create -f qcow2 -o preallocation= метаданные new-disk.qcow2 80G" (где 80G - новый размер диска)

7 - использовать virt-resize - 'virt-resize old-disk.qcow2 new-disk.qcow2'

8 - скопировать новый диск, чтобы исправить имя файла для виртуальной машины, запустить виртуальную машину и повторно включить подкачку, т.е.: 'swapon / dev / sda5'

9 - отредактируйте fstab для добавления подкачки, т. Е. '/ Dev/sda5 swap swap default 0 0'

СДЕЛАННЫЙ.

Другие вопросы по тегам