What filesystem is currently best for a single nvme drive with regard to performance read/write as well as stability/no file loss? ext4 seems very old, btrfs is used by RHEL, ZFS seems to be quite good… what do people tend to use nowadays? What is an arch users go-to filesystem?
Been using BTRFS for all disks and purposes for a few years, I would recommend it with the requirement that you research it first. There are things you should know, like how/when to disable CoW, how to manage snapshots, how to measure filesystem use, and what the risks/purposes of the various btrfs operations are. If you know enough to avoid doing something bad with it, it’s very unlikely to break on you.
Huh. I just realized the problem with “don’t use upvotes to show agreement.” It means encouraging low-effort “me-too” posts.
I don’t have much to add to your comment, just… me too.
Me too!
ITT 5 answers by 4 people
ext4 being old, and still being the main file system most distros use by default, should be enough alone to tell you being old isnt bad.
it means its battle tested, robust, stable, and safe. Otherwise it wouldnt be old and still be in widespread use.
Ext4 being “old” shouldn’t put you off. It is demonstratively robust with a clear history of structure integrity. It has immense popularity and a good set of recovery tools and documentation. These are exactly what you are looking for in a filesystem.
I’m not saying EXT4 is the best for your requirements, just that age of a file system is like fine wine.
Calling Ext4 “old” is like saying that MySQL isn’t webscale
FAT32
If you’re married stay away from ReiserFS.
It has been suggested by some that there is no relationship between Reiser murdering wives and ReiserFS murdering file systems, but most steer clear of both out of an abundance of caution.
If you are planning to have any kind of database with regular random writes, stay away from btrfs. It’s roughly 4-5x slower than zfs and will slowly fragment itself to death.
I’m migrating a server from btrfs to zfs right now for this very reason. I have multiple large MySQL and SQLite tables on it and they have accumulated >100k file fragments each and have become abysmally slow. There are lots of benchmarks out there that show that zfs does not have this issue and even when both filesystems are clean, database performance is significantly higher on zfs.
If you don’t want a COW filesystem, then XFS on LVM raid for databases or ext4 on LVM for everything else is probably fine.
Did you disable CoW for your database with btrfs? E.g. for PostgreSQL, the Arch Wiki states:
If the database resides on a Btrfs file system, you should consider disabling Copy-on-Write for the directory before creating any database.
From arch wiki:
Disabling CoW in Btrfs also disables checksums. Btrfs will not be able to detect corrupted nodatacow files. When combined with RAID 1, power outages or other sources of corruption can cause the data to become out of sync.
No thanks
that’s no different than any “normal” filesystem with a traditional block-level RAID solution
Not really. You can still use dm-verity for a normal raid and get checksumming and normal performance, which is better and faster than using btrfs.
But in any case, I’d recommend just going with zfs because it has all the features and is plenty fast.
XFS is a possibility