I have enough to think about without the damn file system getting complicated. So plain old ext4. It’s stable, it works it’s great.
I used btrfs once and it went really badly. When it gets corrupted it refuses to even let you mount read only. The documentation isn’t good and you end up finding obscure wiki’s with big warnings to only run these commands if you know what you’re doing - but of course I don’t, there’s no where to learn it and the only people who do know are the developers who wrote the file system. No thanks! It holds your data captive, so you better have some spare time and some backups. Never again.
That’s my issue with btrfs as well. If you can’t recover a file system when something goes wrong it isn’t production ready imo.
ZFS. I want snapshots, volumes, encryption etc. btrfs fucked me over too often. Also I prefer the semantics of the
zfs
andzpool
utils and the way mount points are handled. Thanks to ZFSBootMenu I can even have/boot
as a zfs volume and have it therefore incluced in my snapshots. And did I mention that all of that is encrypted? Anyway. Love it.ZFS is really like the god filesystem: it supports basically everything you might want out of the box. Compression, encryption, snapshots, CoW, RAID, checksumming, casefolding/case insentivity, block volumes, you name it.
You can get compression, snapshots and CoW with btrfs and some basic RAID, but not encryption. You can get encryption with ext4 but pretty much nothing else. Gotta do LUKS and LVM if you want volume management, mdadm if you want any sort of RAID. f2fs does pretty much nothing but flash friendly storage.
It’s a shame it can’t be included in the mainline kernel. Especially over what seems to be a legal technicality.
Just ext4 pooled together with mergerfs for my media files. Seems to fit my use perfectly.
ZFS raidz1 or raidz2 on NetBSD for mass storage on rotating disks, journaled FFS on RAID1 on SSD for system disks, as NetBSD cannot really boot from zfs (yet).
ZFS because it has superior safeguards against corruption, and flexible partitioning; FFS because it is what works.
@Hopfgeist @sam I prefer RAID10 on rust.
What are the advantages of raid10 over zfs raidz2? It requires more disk space per usable space as soon as you have more than 4 disks, it doesn’t have zfs’s automatic checksum-based error correction, and is less resilient, in general, against multiple disk failures. In the worst case, two lost disks can mean the loss of the whole pack, whereas raidz2 can tolerate the loss of any 2 disks. Plus, with raid you still need an additional volume manager and filesystem.
@Hopfgeist Speed on large spinning disks. Faster rebuilds. Less chance of complete failure because or URE.
ext4 on boot drives just because it’s so standard and uncomplicated. Data drives either xfs or btrfs, depending on how froggy I’m feeling when I set it up. I don’t use the fancy features of the filesystem. Hell, I barely even use lvm. I find all that stuff just gets in the way. I just want to put files on disk.
I’ve tried zfs, and it seems nice, but when you have a lot of storage, you need to have a lot of RAM to actually make it useful, and I don’t.
Btrfs because I’ve had constant issues with zfs in multiple different times.
Everyone praises zfs so I’m sure it’s something I’m missing, but I’ve had very little issue with btrfs, other than it’s incomplete feature set.
What kind of issues?
Its mostly that due to licensing issues it can’t be included in the Linux kernel like btrfs and thus is prone to breaking at very in-opportune times.
IMHO both are fine, but btrfs is more hassle free and good enough ™ for hobby self-hosters.
ext4 on an mdadm raid. It works well enough, and supports growing your array.
Although if I rebuilt this from scratch, I would skip mdadm and just let minio control all the drives. Minio has an S3 compatible API, which I’d then mount into whatever apps need it.
Love mdadm, it’s simple and straightforward.
Love MinIO but it’s not a filesystem and mounting object storage as a filesystem is not a great experience (speaking from commercial experience).
Same experience here. S3 is essentially a key/value store to simply put and retrieve large values/blobs. Everything resembling filesystem features is just convention over how keys are named. Comminication uses HTTP, so there is a lot of overhead when working with it as an FS.
In the web you can use these properties to your advantage: you can talk to S3 with simple HTTP clients, you can use reverse proxies, you can put a CDN in front and have a static file server.
But FS utils are almost always optimized for instant block based access and fast metadata responses. Something simple like a
find
will fuck you over with S3.