Global Soft Filesystem Quota in ZFS


I’m using urbackup with a ZFS copy-on-write configuration for both file and image backups. It does not seem to respect the global soft filesystem quota and my storage is constantly out of space triggering emergency cleanups with every backup. Additionally, manual cleanups calculate “space to free” incorrectly (see below, tried to clean up 300G and only got 18G), although the “free space” is accurate. df -h is also accurate. Any thoughts on what I’m doing wrong?

root:~# urbackupsrv cleanup -a 300G -u root

2018-12-26 15:43:07: Shutting down all database instances…
2018-12-26 15:43:07: Opening urbackup server database…
2018-12-26 15:43:07: Testing if backup destination can handle subvolumes and snapshots…
Testing for btrfs…
ERROR: not a btrfs filesystem: /var/urbackup_files/testA54hj5luZtlorr494
TEST FAILED: Creating test btrfs subvolume failed
Testing for zfs…
2018-12-26 15:43:10: Backup destination does handle subvolumes and snapshots. Snapshots enabled for image and file backups.
2018-12-26 15:43:10: Emulating reflinks via copying
2018-12-26 15:43:10: Cleaning up 18.462 GB on backup storage
2018-12-26 15:43:10: Database cache size is 1.95312 GB
2018-12-26 15:43:10: Starting cleanup…
2018-12-26 15:43:10: Freeing database connections…
2018-12-26 15:43:10: Space to free: 18.462 GB
2018-12-26 15:43:10: Free space: 17.8416 GB



is this quota you set on the filesystem or is it a quota you set as a limit in urbackup?


In Urbackup, the general setting of “Global Soft Filesystem Quota”


Can you have a look which fs has 17.8416 GB free space (as in the log above).

One known issue is that UrBackup uses the free space of the backup folder (configured on the web interface) to get the free space. So if you put files and images on different ZFS data sets you’ll have problems.


I believe that number is accurate (it’s the “space to free” which seems to be calculated incorrectly). All of urbackup’s paths are on different zfs data sets (config below), however they are all part of the same pool and share the same remaining free space.

Urbackup database path: /var/urbackup

Backup storage path setting: /var/urbackup_files
/etc/urbackup/backupfolder contents: /var/urbackup_files
/etc/urbackup/dataset contents: rpool/var/urbackup_files/images
/etc/urbackup/dataset_file contents: rpool/var/urbackup_files/files


How can I determine what UrBackup thinks is the total, and free space for it?

My Global soft filesystem quota is set to 95%
But the Urbackup Jail has a data volume with only 84% used space but it’s cleaning down to minimum backup level like it’s hitting the Global soft quota.