Blog/Btrfs space cache=v2 with mkfs
2021-01-31: Enable space cache v2 by default with mkfs.btrfs[edit | edit source]
Since btrfs-progs 5.9 it has been possible to enable space_cache=v2, also known as free space tree, by default when creating new filesystems.
You would use the -R free-space-tree option when making the new filesystem. Then there is no longer a need to use the space_cache=v2 mount option.
# mkfs.btrfs -R list-all Runtime features available: quota - quota support (qgroups) (0x1, compat=3.4) free-space-tree - free space tree (space_cache=v2) (0x2, compat=4.5, safe=4.9)
For more information about what space cache is you should read the dedicated article.
There is an ongoing discussion to enable space_cache v2 by default. It is tracked in the GitHub tracker https://github.com/kdave/btrfs-progs/issues/295
Converting existing v1 format to v2[edit | edit source]
It is pretty easy to convert an existing filesystem to use the new v2 format. You simply mount the filesystem using -o clear_cache,space_cache=v2 mount option. For a root filesystem it is best to do this from a live-cd/usb media, although it is technically possible to do from the kernel command line.
If you need support or help you can always ask in the #btrfs IRC channel!