This thread hopefully will be a source for a lot of good info for others
due to all the comments that have occurred so thanks to all that contributed!
I decided on a hybrid solution to satisfy both Incus CNs and VMs storage in a COW filesystem:
My only real driver for looking into zfs in the 1st place was to plan for any future increased
use of Incus VMs.
To date, I use far more Incus Containers than VMs but I initially thought I should see how to
install/config/manage zfs to do my work so I posted this question on the forum.
After reading the various responses and after many related search results & answers
to questions I’d had, I decided to keep using Ubuntu on BTRFS w a flat-subvolume structure
utilizing a flat subvol structure (@, @home, @incus, @container, @opt, @var etc), w Incus
and continued use of Snapper & the gui btrfs-assistant to manage/utilize the BTRFS
snapshot/restore for system and subvolumes.
So I adopted a hybrid storage approach.
On a separate 2TB nvme I created a 1TB zvol and a 1 TB btrfs partition
I reinstalled Incus and during init named the storage pool “cn-default” on the btrfs partition of that 2nd NVME.
Then used Incus to create an Incus ZFS pool for Incus VMs using the 1TB zvol:
$ incus storage create vm-default zfs source=/dev/nvme1n1 zfs.pool_name=vm-default
Additional decision input for me came from reading several of stgraber’s comments in this 2025 thread resulting from a question someone posted who seemingly had similar goals as myself:
BTRFS OS Disk Subvolume for /var/lib/incus
In my use, this hybrid solution should provide the best of both worlds w supporting:
- minimal learning curve as I’ve been using btrfs for years now and since btrfs is
in-kernel, I can continue use of common linux tools and the snapper & btrfs assistant
application combination
- continue using current grub-btrfs to allow boot from snapshots at system boot
Yes I know there is a similar functionality for zfs but I don’t have to make that change
- importantly, my use gets the benefit of Incus:
CN snapshot/restore on btrfs
VM snapshot/restore on ZFS (minimizing impact of COW w VMs)
This approach also allowed me to avoid a couple further decisions regarding: