You know, ZFS, ButterFS (btrfs…its actually “better” right?), and I’m sure more.
I think I have ext4 on my home computer I installed ubuntu on 5 years ago. How does the choice of file system play a role? Is that old hat now? Surely something like ext4 has its place.
I see a lot of talk around filesystems but Ive never found a great resource that distiguishes them at a level that assumes I dont know much. Can anyone give some insight on how file systems work and why these new filesystems, that appear to be highlights and selling points in most distros, are better than older ones?
Edit: and since we are talking about filesystems, it might be nice to describe or mention how concepts like RAID or LUKS are related.
ZFS is a crazy beast that’s best for high end server systems with tiered storage and lots of RAM.
ext4 is really just a basic file system. Its superior to NTFS and fat as it does have extra features to try to prevent corruption but it doesn’t have a large feature set.
Btrfs is kind of the new kid on the block. It has strong protection against corruption and has better real world performance than ext4. It also has more advanced features like sub volumes and snapshots. subvolumes are basically virtual drives.
Another few older options include things like XFS but I won’t go into those.
List of filesystems: https://en.m.wikipedia.org/wiki/Comparison_of_file_systems
Source? Most benchmarks I’ve seen it lags behind
My personal testing
Let’s agree on: it has a different performance for various use cases and hardware below. Sometimes better, sometimes worse.
Well I use it pretty much exclusively now for bare hardware. For VMs it doesn’t matter so I use ext4
Not much time, I’ll be brief with three examples that come to mind from my experience:
Great use: Large filestorage with regular changes, daily snapshots, stream snapshots offsite as backup.
Not so great use: Storage backend for qcow2 backed VMs on spinning RAID. CoW made a mess of access times.
Really not great use: Large Postgres-DB with queries that creted large ondisk temp tables.
It really depends.
https://www.phoronix.com/news/Linux-5.14-File-Systems
It seems actually F2FS is the best?? Thats used in Android and optimized for Flash storage, does that include SSDs?
Yes, but most filesystems are already optimized for flash storage. Arch wiki says f2fs is prone to corruption on power loss. Based on that and the lack of information on its anti-corruption measures I’m inclined to think it doesn’t have one and that’s why it’s faster. I wouldn’t use it in a non-battery operated device.
So basically all laptop users can safely use it.
Crazy how PC users rely on such a steady power supply. Arent there small UPS devices for a few seconds with auto shutdown?
Catastrophic battery failure isn’t really any less likely than catastrophic power supply failure (conceptually. If you use a brandless grey power supply, results may vary).
That link is for kernel 5.14, so I’d say those results are pretty much invalid for most users (unless you’re actually on it, or the 5.15 LTS kernel). There have been a ton of improvements in every filesystem since then, with pretty much every single kernel release.
A more relevant test would be this one - although it talks about bcachefs, other filesystems are also included in it. As you can see, F2FS is no longer the fastest - bcachefs and XFS beat it in several tests, and even btrfs beats it in some tests. F2FS only wins in the Dbench and CockroachDB benchmarks.
Thanks. Bcachefs is for SSD-HDDs isnt it?
Not quite. Bcachefs can be used on any drive, but it shines the best when you have a fast + slow drive in your PC (eg NVMe + HDD), so the faster drive can be used as a cache drive to store frequently accessed data.
Benchmarks are also usually very different from real world usage, tbh