Why is my VM image so large?!
Hi,
I have a QEMU / KVM VM running Windows that has been running as a guest
on various Debian hosts for about a decade. The Windows OS has
undergone various repairs and reinstalls over the years. I was recently
quite surprised to discover that the VM image size (actual size on
disk, not apparent size) has somehow grown to about 4x the allocated
size of the disk:
~# ls -alsh /var/lib/libvirt/images/win10.qcow2
314G -rw------- 1 root root 352G May 15 12:40 /var/lib/libvirt/images/win10.qcow2
~# qemu-img info /var/lib/libvirt/images/win10.qcow2
image: /var/lib/libvirt/images/win10.qcow2
file format: qcow2
virtual size: 80 GiB (85899345920 bytes)
disk size: 314 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: true
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
filename: /var/lib/libvirt/images/win10.qcow2
protocol type: file
file length: 352 GiB (377549750272 bytes)
disk size: 314 GiB
I've found all kinds of discussions of this type of thing online, but
no explanation / solution that seems applicable to my situation.
The image contains no snapshots:
~# qemu-img snapshot -l /var/lib/libvirt/images/win10.qcow2
~#
I think TRIM / DISCARD is properly configured. From the VM XML:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' discard='unmap'/>
<source file='/var/lib/libvirt/images/win10.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
TRIM / DISCARD is enabled in the Windows guest, and I've issued manual
TRIM commands in the guest several times, like so:
https://winaero.com/trim-ssd-windows-10/
I think this did claw back some space, but only on the order of tens of GB.
Can anyone explain what's going on here, and how I can fix this?
--
Celejar
Reply to: