I’ve been a huge fan of promox since version 1.0 – they later implemented native support of my favorite filesystem ZFS and if you are an early adopter like me your proxmox /etc/pve/storage.cfg file may not have some settings like sparse that the new installations configure by default.
Checking if ZFS VM disk is thin-provisoned
Use the following command to see the zfs properties we care about:
zfs get volblocksize,volsize,refreservation,used gdata/pve/base-152-disk-0
Expected output
NAME PROPERTY VALUE SOURCE
gdata/pve/base-152-disk-0 volblocksize 8K default
gdata/pve/base-152-disk-0 volsize 64G local
gdata/pve/base-152-disk-0 refreservation none local
gdata/pve/base-152-disk-0 used 7.31G -
The property refreservation=none tells us this disk is thin-provisioned. Meaning ZFS won’t guarantee and account for the VM ‘max disk size’ in the zpool usage metrics. This may be helpful if you want to overprovision a VM disk to say 1TB but rarely use that much and you don’t want zpool list to claim you have 1TB phantom disk usage.
What does a non thin-provisioned ZFS VM disk look like?
The volsize=64G and refreservation=64G would be set on the example above.