Boot Environment Disk Space Usage¶
ZFS Boot Environment snapshots consume an increasing amount of disk space over time as the contents of the disk diverge from when it was created compared to the current state of the disk.
A ZFS Boot Environment snapshot taken before upgrading to a new version of pfSense® Plus software can consume several gigabytes of space as those updates will rewrite the entire base system and all of the other components including packages as they are all reinstalled. Updating between development snapshots will cause a ZFS Boot Environment to consume about 500MB of disk space, give or take, based on what changed in the snapshot.
Frequent upgrades between development snapshots can cause ZFS Boot Environments to consume a lot of disk space!
The operating system reflects this usage as a change in the capacity of the
disk. The size of a disk will appear to decrease proportionate to the snapshot
usage, and this change is reflected on the dashboard Disks widget and in
utilities such as
Removing older ZFS Boot Environments that are no longer necessary will free the space and make it available again. While the system will attempt to clean up older automatically created ZFS Boot Environments, ultimately it is up to the administrator to decide which ZFS Boot Environments are necessary.
Automatic creation of ZFS Boot Environments during upgrade can be disabled. Administrators may choose to do this, for example, if space is at a premium and administrators prefer not to use ZFS Boot Environments, or they wish to manage ZFS Boot Environments manually, See Boot Environments.
The following are examples of space usage for numerous ZFS Boot Environments.
This figure shows the Dashboard Disks and ZFS widgets on a firewall with a 12GB disk and 12 ZFS Boot Environments from snapshot upgrades.
Note that the disk size is listed as being only about 3GB when it should be significantly larger.
The next figure is the same system with the older Boot Environments removed so that only the default and one previous entry remain:
Similar to the above example, this is the same firewall but with the disk usage checked at the shell instead of the GUI.
With 12 Boot Environments:
: df -h / Filesystem Size Used Avail Capacity Mounted on pfSense/ROOT/default 3.1G 1.2G 1.9G 39% / : zfs list / NAME USED AVAIL REFER MOUNTPOINT pfSense/ROOT/default 6.93G 1.90G 1.20G /
With the default plus one automatic Boot Environment:
: df -h / Filesystem Size Used Avail Capacity Mounted on pfSense/ROOT/default 8.1G 1.2G 6.9G 15% / : zfs list / NAME USED AVAIL REFER MOUNTPOINT pfSense/ROOT/default 1.96G 6.89G 1.20G /