I’ve had plenty of cases where a Linux upgrade caused a boot failure, or an upgrade only half finished, or where I deleted files by accident.
Grub will boot from previous snapshots. I can rollback a failed upgrade to before I started it. I can go to the special .zfs/snapshots directory to grab old files.
I love ZFS as my boot/root drive. It just gives me a little extra confidence that I’m not screwed if something goes wrong.
I don’t see a compelling reason to use BtrFS or ZFS or XFS over EXT4. Is there one? Performance there doesn’t seem to be a clear/consistent winner, features like snapshots are overblown in my opinion (there’s no replacing regular backups or redundancy), and ZFS I’m uncertain about data integrity in systems not using ECC memory.
ZFS doesn't lose your data when the hardware falls over, or silently corrupt your backups. It notices when things are going wrong and optionally fixes them. So the most compelling reason to use ZFS is if you'd like to keep the data you're putting in the filesystem. There's also a bunch of sensible admin tooling on top.
On your laptop where you don't care about your files, there is no difference.
On your workstation where you might need to have guaranteed I/O rates and multithreaded I/O, XFS wins.
You clearly don't understand why snapshots are important, so here's the scenario: snapshots let you take ATOMIC backups. You can pause everything, create a filesystem-level snapshot, then resume everything, quickly. Then, at your leisure, you can use the snapshot you just made as a backup source for whatever destination you use. This means that the downtime for a full system backup can be as close to zero as possible, without worrying about in-flight changes to underlying data making for partial backups.
ZFS on systems without ECC may have issues where the checksums may be useless, but every filesystem is in danger without ECC, and I'm with Linus on "Intel is evil for locking ECC to Xeon as a market differentiator". But here we're back into the "Laptop vs Workstation/Server" scenario.
Yeah I guess I should have clarified that I’m really just in a consumer scenario. I mean I don’t want data corruption but every article or blog post I have read about ZFS says you should use it with ECC RAM. I would love to use ECC RAM but the support with my particular AMD computers is iffy. I think it’ll work on my 5700X computer, but not my 5600G computer.
You can use ZFS without ECC. The failure mode for ZFS without ECC is the same as the failure mode for Ext4 without ECC: your files are corrupt.
The difference is that ZFS tells you.
...ok, also, ZFS tries to use a separate file cache on top of Linux's cache, and allocates half your RAM to it.
I would not use ZFS on a laptop, or even a workstation. I do use it on file servers and Proxmox.
Well, they can be backups, it just depends on what you're protecting against. Snapshots won't protect against complete hardware failure, destruction, or loss (lightning strike, house burns down, machine stolen), but they're great for accidental deletion or software corruption (the most dramatic case perhaps being something like rolling back a botched OS upgrade or running `rm *` in your home directory).
> ZFS I’m uncertain about data integrity in systems not using ECC memory
It's still better than ext4 (or most other options). If you're running without ECC and your RAM corrupts data it might not get caught by ZFS, but failures anywhere else in the hardware will get caught; filesystems without data checksums won't catch corruption anywhere including RAM.
Grub will boot from previous snapshots. I can rollback a failed upgrade to before I started it. I can go to the special .zfs/snapshots directory to grab old files.
I love ZFS as my boot/root drive. It just gives me a little extra confidence that I’m not screwed if something goes wrong.