Уменьшение размера qqow2

  1. Указать тип дискового контроллера Virtio-SCSI,
    а для самого диска установить параметр Discard.
  2. внутри VM с Linux выполнить команду

    fstrim -av

    В результате диск на самом гипервизоре ужмётся до реального размера данных внутри VM.
  3. Проверить

    root@eddy /var/lib/vz/images/103 # qemu-img info vm-103-disk-0.qcow2

    image: vm-103-disk-0.qcow2
    file format: qcow2
    virtual size: 32 GiB (34359738368 bytes)
    disk size: 3.44 GiB 10:50 29.07.2024
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        compression type: zlib
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
        extended l2: false
    Child node '/file':
        filename: vm-103-disk-0.qcow2
        protocol type: file
        file length: 32 GiB (34365243392 bytes)
        disk size: 3.44 GiB
    

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

используем утилиты virt-sparsify из комплекта libguests-tools:

virt-sparsify --in-place vm-100-disk-0.qcow2

Для успешной работы этой команды, на диске гипервизора должно быть место для создания копии образа диска, так как по факту команда делает копию, работает с ней и потом заменяет основной файл.