главная - Статьи - Виртуализация
Сжатие диска qcow2
Теги: kvm Система Linux Виртуальные машины
Если vm создавалась с диском 30 Гб, то даже если вы видите, что реально внутри vm файлы занимают 10 Гб, для хоста все равно диск vm будет занимать 30 Гб. А если изначально vm создавалась с диском 300 Гб, а потом реально там занято не более 50 Гб, то что, эффективно хранить 250 Гб пустоты? Проверим, реально ли (и насколько) оптимизировать размер диска QCOW2 виртуальной машины.
На всякий случай - мы не переразбиваем диск - если изначально диск создавался 30 Гб для vm, то внутри vm он так и останется 30 Гб!
Идея простая: забить неиспользованное место на диске изнутри vm (т.к. хост может некорректно понять, где внутри диска vm действительно занятое место, а где - пустота). А потом обнуленные области хост спокойно "отрежет". Это работает и с Windows, и с Linux.
Путь есть vm (Windows 7, один диск) с диском qcow2, 30 Гб:
# virt-install --network bridge:br0 --name vm1 --description='Windows 7' --ram=1024 --vcpus=1 --disk path=/vms/vm1.iso,size=30,format=qcow2,bus=virtio --graphics vnc,password=12345 --cdrom /data/vms-iso/Windows-7-64-prof-from-orig-dvd.iso --boot cdrom,hd,menu=on
# ls -l --block-size=M /vms
-rw-------. 1 qemu qemu 30725M Jun 28 16:32 vm1.iso
Реально занято 10 Гб (по проводнику в vm1).
В гостевой vm Windows запускаем утилиту SDelete (сайт MS):
> sdelete64 -z C:
На хосте:
# qemu-img convert -c -O qcow2 /vms/vm1.iso /vms/vm1-test-optimized.iso
# qemu-img convert -O qcow2 /vms/vm1.iso /vms/vm1-test-optimized-no-compressed.iso
Сравниваем:
# ls -l --block-size=M /vms
total 127913M
-rw-------. 1 root root 30725M Jun 28 16:42 vm1.iso
-rw-r--r--. 1 qemu qemu 4811M Jun 28 17:27 vm1-test-optimized.iso
-rw-r--r--. 1 root root 10345M Jun 28 17:26 vm1-test-optimized-no-compressed.iso
Сжатый (-c, compress) диск занял половину от реальной емкости vm, несжатый - 10 Гб, т.е. номинал.
# virsh edit vm1 ... <source file='/vms/vm1-test-optimized.iso'/> ... # virsh start vm1
Профит!
ЗЫ: полагаю, что сжатый диск все же даст большую нагрузку на CPU/диску в дальнейшем, но насколько накладные расходы будут выше, сказать не могу. Если у вас есть сведения/мнения, очень welcome их выразить вслух.
Авторизуйтесь для добавления комментариев!