Snapshots consume space
Symptom
Free space in the pool decreases faster than expected when snapshots are actively used.
Cause
A snapshot consumes no space when created, but begins to use capacity as the volume's data diverges from the captured state. Long-lived snapshots accumulate these differences.
In addition to snapshots, clones retain capacity. A clone is a copy-on-write copy: immediately after
creation, it consumes almost no space but relies on the source data.
As long as a clone exists, the source cannot be deleted: deletion returns -2604 and lists
the clones that block it.
How to check
- The number and size of the machine's snapshots: on the VM card, check the Snapshots table with Name, Date of creation, and Size (GB) columns. The creation date identifies long-lived snapshots.
- Remaining pool capacity:
Provider Data Center→Storage Resources, ZFS pools table, Capacity (RAW) column. The pool card breaks down the same value in more detail in the Properties section. - The capacity threshold configured for the cluster: the
pool_capacity_tresholdoption in theget-statusmapresponse. The cluster uses values of 11…94, with a default of 60. The cluster silently replaces 10 and 95, as well as all values outside the range, with 60, without rejecting them. The response shows the original database entry, so the substitution is not visible in it. - Whether the machine has clones retaining its data: attempting to delete such a machine
returns
-2604with a list of clones.
Resolution
Delete snapshots that are no longer needed, avoid keeping long-lived snapshots unnecessarily, and monitor free pool capacity.
When space is low, remove clones first, then snapshots, then machines. The reverse order will not work because a clone retains its source's data.
Prevention
Regularly remove outdated snapshots and monitor free pool space so that differences do not accumulate unnoticed.
Remember that the snapshot count is also a check after migration: for a machine moved to another pool, it must match the count measured before migration.
API methods
The API operations covered on this page are vm-snapshot-list, snapshot-list,
vms-snapshot-remove, pools-get, and get-statusmap. See the
API reference.
See also
- Snapshots and rollback—how to create, roll back to, and delete a snapshot.
- How to view cluster pools—where to check pool capacity and status.
- Dataset properties—how capacity is accounted for at the dataset level.
- VM migration and cloning—what a clone does and how it retains its source.