Hi everyone,
I created the Proxmox datastores using ZFS in mirror mode; the disk pairs have the same capacity, and almost all the virtual machines I have running on them were migrated from ESXi.
I have ZFS replication enabled between two nodes.
I was trying to figure out if it’s possible to estimate the available space for creating new disks before the datastore fills up.
While analyzing some pools, I noticed the following data:
and
One thing that’s not clear to me is how it’s possible that, when using reservation, the space used by a disk seems to reach almost double the VOLSIZE. I would have expected it to reach at most the value of USEDREFRESERV (calculated as: VOLSIZE + a small reserved percentage), but it seems that the total is given by the sum of USEDDS + USEDREFRESERV.
For example, the disk tank_2/vm-104-disk-1 uses as much as 358 GB when the logical disk volume is 250 GB. If the disk were in the order of terabytes, there would be a significant amount of “unusable” disk space.
I’ve seen that the USEDREFRESERV value can be reset to zero by modifying the sparse parameter in the /etc/pve/storage.cfg file, but I’d prefer to avoid that for now.
Is this behavior normal? Can this significant growth in occupied space be limited? Is there a way to calculate the maximum space a disk will occupy over time until it fills up, and if so, what values should I take into account?
Thank you in advance for your help.
I created the Proxmox datastores using ZFS in mirror mode; the disk pairs have the same capacity, and almost all the virtual machines I have running on them were migrated from ESXi.
I have ZFS replication enabled between two nodes.
I was trying to figure out if it’s possible to estimate the available space for creating new disks before the datastore fills up.
While analyzing some pools, I noticed the following data:
Code:
zfs list -o name,used,refer,avail,volsize,usedbysnapshots,usedbydataset,usedbychildren,usedbyrefreservation -r tank_2
NAME USED REFER AVAIL VOLSIZE USEDSNAP USEDDS USEDCHILD USEDREFRESERV
tank_2 969G 96K 2.43T - 0B 96K 969G 0B
tank_2/vm-100-disk-0 105G 43.7G 2.49T 60G 14.9M 43.7G 0B 60.9G
tank_2/vm-100-disk-1 74.8G 9.77G 2.49T 64G 0B 9.77G 0B 65.0G
tank_2/vm-102-disk-0 17.2G 934M 2.45T 16G 0B 934M 0B 16.3G
tank_2/vm-102-disk-1 116G 4.23G 2.54T 110G 636K 4.23G 0B 112G
tank_2/vm-103-disk-0 101G 39.7G 2.49T 60G 43.4M 39.7G 0B 60.9G
tank_2/vm-103-disk-1 96.1G 35.2G 2.49T 60G 0B 35.2G 0B 60.9G
tank_2/vm-104-disk-0 101G 40.4G 2.49T 60G 23.7M 40.4G 0B 60.9G
tank_2/vm-104-disk-1 358G 104G 2.68T 250G 153M 104G 0B 254G
and
Code:
zfs list -o name,used,refer,avail,volsize,usedbysnapshots,usedbydataset,usedbychildren,usedbyrefreservation -r rpool
NAME USED REFER AVAIL VOLSIZE USEDSNAP USEDDS USEDCHILD USEDREFRESERV
rpool 345G 104K 1.34T - 0B 104K 345G 0B
rpool/ROOT 209G 96K 1.34T - 0B 96K 209G 0B
rpool/ROOT/pve-1 209G 209G 1.34T - 0B 209G 0B 0B
rpool/data 136G 96K 1.34T - 0B 96K 136G 0B
rpool/data/vm-105-disk-0 18.1G 18.1G 1.34T 150G 0B 18.1G 0B 0B
rpool/data/vm-105-disk-1 102M 102M 1.34T 300G 0B 102M 0B 0B
rpool/data/vm-106-disk-0 118G 118G 1.34T 150G 0B 118G 0B 0B
rpool/data/vm-106-disk-1 3.90M 3.90M 1.34T 300G 0B 3.90M 0B 0B
rpool/var-lib-vz 305M 305M 1.34T - 0B 305M 0B 0B
One thing that’s not clear to me is how it’s possible that, when using reservation, the space used by a disk seems to reach almost double the VOLSIZE. I would have expected it to reach at most the value of USEDREFRESERV (calculated as: VOLSIZE + a small reserved percentage), but it seems that the total is given by the sum of USEDDS + USEDREFRESERV.
For example, the disk tank_2/vm-104-disk-1 uses as much as 358 GB when the logical disk volume is 250 GB. If the disk were in the order of terabytes, there would be a significant amount of “unusable” disk space.
I’ve seen that the USEDREFRESERV value can be reset to zero by modifying the sparse parameter in the /etc/pve/storage.cfg file, but I’d prefer to avoid that for now.
Is this behavior normal? Can this significant growth in occupied space be limited? Is there a way to calculate the maximum space a disk will occupy over time until it fills up, and if so, what values should I take into account?
Thank you in advance for your help.