BTRFS OS Disk Subvolume for /var/lib/incus

bcache under btrfs shouldn’t really matter to Incus.

The comment about VM running on btrfs is mostly because btrfs really works best when it can do proper copy-on-write (cow) but that works best when dealing with many small files, some getting modified while some remain the same as the original image.

With VMs being backed by a single file changing constantly we instead have to mark that file in btrfs as nocow, effectively turning off the most useful part of btrfs. That makes things like snapshots use a rather less optimized codepath than what you’d get on containers.

For those running a lot of VMs on local storage, your best options are ZFS or LVM.
For containers, ZFS and btrfs are mostly similar feature wise though ZFS has a bit of an edge on quota flexibility and having more per-volume configuration options, though btrfs has the advantage of being directly in the mainline kernel.

2 Likes