I want to learn more about file systems from the practical point of view so I know what to expect, how to approach them and what experience positive or negative you had / have.
I found this wikipedia’s comparison but I want your hands-on views.
For now my mental list is
- NTFS - for some reason TVs on USB love these and also Windows + Linux can read and write this
- Ext4 - solid fs with journaling but Linux specific
- Btrfs - some modern fs with snapshot capability, Linux specific
- xfs - servers really like these as they are performant, Linux specific
- FAT32 - limited but recognizable everywhere
- exFAT - like FAT32 but less recognizable and less limited
Ext4 cause that’s the default and I’m lazy.
That’s a valid reason too. However sometimes btrfs has become the default ;)
Based
Every year I buy a couple ~$5 USB drives and plug them into my jbod machine in a software raid1. At this point there’s about a hundred in long array of daisy chained USB hubs.
Each drive is formatted with fat32 and added to an LVM. Don’t judge my ghetto NAS.
how fast is it?
Roughly the same speed of my dick slicing through frozen butter at the North Pole on January 1st, 1993
LOL
Amazing shitpost
ext4 because its the default and works fine
Never doubted it. Do you use journaling feature on it?
Wasn’t that the entire purpose of ext4 vs ext3? As the default, I also keep journaling on for ext4 partitions. Even /boot.
ext3 had journaling, but not ext2. Also ext3 doesn’t really exist anymore as it was merged into the ext4 driver which can read the old format.
Not only is there btrfs support for Windows, but since windows and linux root structures don’t conflict, someone got both arch and windows booting from the same partition. Is it a good idea? Hell no. But can it be done? Apparently yes.
Ext4 and ZFS.
- Ext4 for system disks because it’s default in OS installers and it works well. I typically use it on top of LVMRAID (LVM-managed mdraid) for redundancy and expansion flexibility.
- ZFS for storage because it’s got data integrity verification, trivial setup, flexible redundancy topologies, free snapshots, blazing fast replication, easy expansion, incredible flexibility in separating data and performance tuning within the same filesystem. I’d be looking into setting up ZFS on root for my next machine. Among other things that would enable trivial and blazing fast backup of the system while it’s running - as simple as
syncoid -r rpool backup-server:machine4-rpool
.
Thank you little amoeba 🦠
biased random walk dance
ZFS where possible for maximum reliability
It also has self healing, no “partitions”, high performance, compression, smart drive redundancy without RAID holes, encryption, deduplication and an extremery intelligent cache called ARC
ZFS is completely ridiculous. It’s like someone actually sat down to design an intelligent filesystem instead of making a slightly improved version of what’s already out there.
Holy xfs is probably not close to that?
XFS is simply a journalling filesystem.
ZFS is a COW filesystem and volume manager with compression, block management, and an adaptive read cache.
Kind of an apples-to-oranges comparison.
Technically XFS is also a CoW filesystem, but it doesn’t have the vast array of features that ZFS does like volume management, snapshots, send/recv etc. It does have reflink support which I guess is a kind of snapshot for a file.
Google cloud storage, copilot my files with Microsoft, crowdstrike running in background for better security.
Apple chastity cage to prevent me from being tempted by Linux. /s
I am now all-in on bcachefs. I don’t like btrfs, cause you still sometimes read about people loosing their data. I know that might happen with bcachefs too since it’s early days still but fuck it. I like the risk.
Filesystem level compression and encryption are so nice to have.
How well a file system recovers from crashes or corruption.
fall guysBTRFS raid on LUKS-encrypted devices (no LVM, all unlocked with one password via SystemD encrypt hooks).
Which RAID? I need to read about SystemD encrypt hooks because I know nothing. Also why not LVM? Is btrfs more flexible in partitioning when you want to extend it or shrink it? I heard that you can merge “partitions” on 2 different disks so they are visisble under one mount point.
Btrfs can mostly fo everything you would normaly use LVN or raid for natively.
Btrfs raid0 lets you combine any number of differently sized drives into one (just without the speed boost of traditional raid0 because with flexible drive sizes data is not symmetrical striped). And btrfs raid1 keeps every data duplicated, again with flexible number and sizes of drive (also with metadata on every drive).
The sytemd hooks (instead of the traditional busybox ones) then manage the one other task you use LVM for: unlocking multiple partitons (for example multiple raid partitons and swap) with just one password. Because the systemd encrypt function tries unlooking all luks partitions it finds with the first password provided and only asks for passwords for each partition if that doesn’t work.
PS: btrfs subvolumes are already flexible in size and don’t need predefined sizes. So the only things that need to be created separately are non-btrfs stuff like the efi system partition or a physical swap (which you can also skip by using a swap file instead of a partition).
Btrfs, but if I’d start from scratch today I’d go for bcachefs.
Even now?
Yes
A combination of XFS and ZFS. I work in high performance computing (academic). While I love the reliability of ZFS for data archival and peace of mind that results provably haven’t suffered bitrot, sometimes I just need a 10 TB temp file(s) with fast mostly-sequential R/W. Appropriate selection of file systems lets me have both.
As an aside, I’ve been watching bcachefs with some interest, as it seems to be getting faster with every kernel release, building on the data integrity guarantees of ZFS while pushing performance boundaries and being GPL compatible (i.e. in tree). Kent Overstreet et al. have done a fantastic job with this FS.
Defaults
So Btrfs, ZFS and ext4 (ext4 is virtual only)
Btrfs for everything these days, subvolume snapshots have been game-changing for me for doing backups.
Could you please elaborate on doing backups with btrfs?
Sure, I pretty much use the method explained here for weekly backups: https://fedoramagazine.org/btrfs-snapshots-backup-incremental/
XFS on my server VMs and my laptops and desktops.
ZFS on my file server. I’d use it on my laptops and desktops too (and have done when I was using Xubuntu) but I’ve switched toFedora which doesn’t come with a way to easily install with ZFS and I don’t feel like jumping through hoops to get it done. And I can’t stand btrfs. I don’t know what it is about it, but I just don’t like it.