Today, we changed the default recommended filesystem in the #gentoo handbook from ext4 to xfs.
XFS is robust and has all the niceties of ext4 (modulo shrinking) but with modern features on top.
(It helps that xfsprogs
doesn't have weird endianness bugs too..)
btrfs is of course another option for the future but our users are conservative in some respects, and baby steps > none.
The main benefit of this is reflinks and copy_file_range
which automatically takes advantage of that.
Now, as for using it.. 🧵
Portage uses
copy_file_range
and friends when merging packages to the live filesystem when it can by providing wrappers of some Python stdlib functions.If XFS (or another "good" backing fs is used), it can take advantage of it for you.
We've found a bunch of bugs over the years through this, in various filesystems, actually!
Take a look at https://wiki.gentoo.org/wiki/User:Sam/Memorable_bugs_I_like_to_reference for a list.