Where is my disk space gone in ZFS?

I use an encrypted ZFS Volume on a 512GB SSD, with Ubuntu 21.04 My disk seems suddenly to be very short, so I looked up some things :

xavier@imladris:/$ zpool status -v
pool: bpool
state: ONLINE
scan: scrub repaired 0B in 00:00:01 with 0 errors on Sun Jun 13 00:24:02 2021
config:

NAME                                    STATE     READ WRITE CKSUM
bpool                                   ONLINE       0     0     0
36f34ee4-398d-e14a-8b61-a377a7a0b42e  ONLINE       0     0     0

errors: No known data errors

pool: rpool
state: ONLINE
scan: scrub repaired 0B in 00:09:11 with 0 errors on Sun Jun 13 00:33:12 2021
config:

NAME                                    STATE     READ WRITE CKSUM
rpool                                   ONLINE       0     0     0
e08f204a-6cda-fd43-8672-4905b9e97070  ONLINE       0     0     0

errors: No known data errors

xavier@imladris:/$ zpool get size
NAME   PROPERTY  VALUE  SOURCE
bpool  size      1.88G  -
rpool  size      472G   -

xavier@imladris:/$ zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
bpool  1.88G   966M   954M        -         -     2%    50%  1.00x    ONLINE  -
rpool   472G   399G  72.9G        -         -    39%    84%  1.00x    ONLINE  -

OK, I really have a 512GB pool... But, If I sum the sizes used in my disk :

system        15 GB
home         195 GB

It doen't make 512GB

For details, here is df output (remember this is ZFS, partitioning is not relevant):

xavier@imladris:/$ df -h
Filesystem                                        Size  Used Avail Use% Mounted on
tmpfs                                             1.6G  2.9M  1.6G   1% /run
/dev/mapper/keystore-rpool                        453M  748K  419M   1% /run/keystore/rpool
rpool/ROOT/ubuntu_u3oejj                           72G   16G   57G  22% /
tmpfs                                             7.6G   16K  7.6G   1% /dev/shm
tmpfs                                             5.0M  4.0K  5.0M   1% /run/lock
tmpfs                                             4.0M     0  4.0M   0% /sys/fs/cgroup
rpool/USERDATA/adminlocal_hw08h3                   57G   84M   57G   1% /home/adminlocal
rpool/USERDATA/xavier_4h374a                      238G  181G   57G  77% /home/xavier
rpool/USERDATA/root_hw08h3                         57G  234M   57G   1% /root
rpool/ROOT/ubuntu_u3oejj/srv                       57G  256K   57G   1% /srv
rpool/ROOT/ubuntu_u3oejj/usr/local                 57G  8.8M   57G   1% /usr/local
rpool/ROOT/ubuntu_u3oejj/var/games                 57G  256K   57G   1% /var/games
rpool/ROOT/ubuntu_u3oejj/var/lib                   60G  2.5G   57G   5% /var/lib
rpool/ROOT/ubuntu_u3oejj/var/log                   59G  1.6G   57G   3% /var/log
rpool/ROOT/ubuntu_u3oejj/var/mail                  57G  1.8M   57G   1% /var/mail
rpool/ROOT/ubuntu_u3oejj/var/snap                  57G  3.5M   57G   1% /var/snap
rpool/ROOT/ubuntu_u3oejj/var/spool                 57G  8.9M   57G   1% /var/spool
rpool/ROOT/ubuntu_u3oejj/var/www                   57G  1.7M   57G   1% /var/www
rpool/ROOT/ubuntu_u3oejj/var/lib/AccountsService   57G  384K   57G   1% /var/lib/AccountsService
rpool/ROOT/ubuntu_u3oejj/var/lib/NetworkManager    57G  640K   57G   1% /var/lib/NetworkManager
rpool/ROOT/ubuntu_u3oejj/var/lib/apt               57G  249M   57G   1% /var/lib/apt
rpool/var/lib/docker                               57G  1.2M   57G   1% /var/lib/docker
rpool/ROOT/ubuntu_u3oejj/var/lib/dpkg              57G  223M   57G   1% /var/lib/dpkg
bpool/BOOT/ubuntu_u3oejj                          1.1G  262M  827M  25% /boot
/dev/nvme0n1p1                                    511M   14M  498M   3% /boot/efi
tmpfs                                             1.6G  232K  1.6G   1% /run/user/1001

Solution 1:

The missing space is most likely being used by snapshots. ZFS will generally manage this on its own but, if you are in a pinch for space or simply want to regain access to the storage, you can list and/or delete them as well.

To list all ZFS snapshots, enter this into Terminal:

sudo zfs list -t snapshot

The list will likely be quite long if you’re letting the system manage it’s own snapshots.

To delete a snapshot you no longer need, you can do this:

sudo zfs destroy rpool/USERDATA/jason_xkcd2z@FRI21-07-09

If you have decent backups and wish to destroy all ZFS snapshots in one go, you can do this:

zfs list -H -o name -t snapshot | xargs -n1 zfs destroy

Warning: There is no undo.