POLL: Which file system in 2022. ext4, btrfs, xfs, zfs, f2fs (choose 1)

A few things. First, a rollback is not the same thing as replacing subvolume with a snapshot. A rollback rolls the dataset back to a prior point in time. Doing that, necessitates removing the snapshots as otherwise it wouldn’t be the same as it was at the point you are rolling back to.

The purpose of snapshots is not really to be able to do system level restores. That is only one use of them. When we rollback a dataset, we aren’t trying to rollback the state of the system, we are trying to rollback the state of the dataset itself. For example, if you have dataset called mypool/home mount at /home and you perform a rollback on it, the dataset should now be identical to how it was at the point the snapshot was taken.

There is a fundamental difference in the way zfs and btrfs treat snapshots. In zfs, snapshots are part of the dataset that you take the snapshots of. In btrfs, snapshots are independent subvolumes. The only real difference is that the snapshot has data in it that shows which subvolume it was a snapshot of.

However, this creates an interesting problem. As soon as you restore a snapshot, there is now no relation between the snapshots and the main subvolume. In fact, once you have done this, there is no longer a way to differentiate what is a snapshot and what isn’t because, technically speaking, they are all snapshots now.

In zfs, this is not the case. You can always differentiate between them and easily get a list which includes or excludes the snapshots. When you have a lot of subvolumes/datasets, this is beneficial.

In general, zfs has much more functionality and flexibility than btrfs. As is usually the case, more functionality comes at the expense of increased complexity.

That being said, as much as I prefer zfs for my personal use, it is only better if you are willing to invest the time to learn how to properly configure and use it. If you don’t want to make that investment, btrfs is definitely the better choice.

Also, I don’t want to people to think I am anti-btrfs. As many of you know I spend quite a bit of time working with btrfs and run btrfs on some of my systems.

9 Likes