Сервер в кармане, или просто о сложном!

главная - Статьи - Виртуализация

Сжатие диска 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 их выразить вслух.

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?