BTRFS vs ZFS for laptop

I have a daily driver laptop running arch BTW which has two SSD. One SSD is in the ODD slot and the other in a SATA slot. I wanted to know if anyone has any advice on whether I should go with ZFS or BTRFS. I particularly am interested in redundancy and snapshots. Please let me know also if I should just stick with ext4.
Regards, your friendly neighborhood ComputerKid.

UPDATE: An easy way to respond:

  • BTRFS
  • ZFS
  • Ext4
  • Windows 10 :frowning: (please don’t vote this)

0 voters

I’ve had good success with BTRFS personally. I stay away from RAID (especially the known-to-be-unstable RAID 5 or 6), having said that.

ZFS? I’ve left it alone, as BTRFS does what I would like, and I haven’t needed to look further. The creepy Oracle legal vibes make me not curious to try it.

I have used btrfs before (2012-2013 era) not on my laptop but on servers with lots of disks. I suffered no data loss, and found btrfs needed a little hand-holding and maintenance back then. I don’t know if that’s the same now.

More recently I did some installs of OpenSUSE which used btrfs by default, for the snapshot capability. It was a disaster. The default OpenSUSE config would frequently eat the entire disk with snapshots and after a simple system update I’d be left staring at a black screen. I had to rummage around in some wiki posts to clear out old snapshots. This, for me was a red flag, and I never installed again on btrfs. Not because btrfs was at fault, but the way OpenSUSE did it tainted my view.

Even more recently I reinstalled Ubuntu 20.04 on my main laptop so I could take advantage of ZFS. The new ZSYS stuff in Ubuntu 20.04 means I get snapshots on updates - but - importantly - the old snapshots are garbage collected so I shouldn’t run out of disk space as a result. It’s been pretty bullet proof for me so far. The only issue I have had is due to me installing off the beta Ubuntu ISO which was missing some fixes that landed later. The devs helped though, and sorted that out.

I haven’t had to revert to a snapshot yet, because my system hasn’t broken :D. However I expect I could, if I wanted to. I’m sticking with ZFS and for any new installs I do, I’ll switch to ZFS there too.

I’m not worried about claimed Oracle legal vibes. They’re not coming after me. :smiley:

3 Likes

I voted for Windows 10 just because it was there…

2 Likes

Boo! Come on dude.

1 Like

This just in… 25% of people surveyed prefer Windows 10 as their Linux Filesystem of Choice… :smiley:

3 Likes

I guess I’m not a filesystem nerd. I tend to use whatever the default is for the distro I’m installing at the time. Traditionally that’s been Ext3/4.

2 Likes

I mean it was an Option how could I not choose it? :smiley:

1 Like

I’m much the same. The vast majority of my systems are ext4. I only went for XFS on one, because I knew there were going to be a lot of files on it, and I’d been informed it’s quite performant. The ZFS choice I made because I knew we needed more testing of it, and I am often Patient zero :smiley:

1 Like

ZFS is at 50%? Not looking good for BTRFS

I use ZFS on my laptop and on the laptop of my wife, however I directly purge the Ubuntu add-on zsys after the install and I only use plain and reliable ZFS. I have some additional simple scripts to manage the complex dataset structure created by Ubuntu:

  • create a new user in its own dataset;
  • create a system snapshot;
  • rollback or destroy system snapshots.

By system problems the system will almost always boot in the terminal of the latest or previous Linux release and there I can rollback to the latest system snapshot. If that does not work, I have a minimal ext4 installation with ZFS support on a small partition (10 GB) as last resort.

As example: I upgraded too soon to 20.04 Alpha and afterwards I did rollback 20.04 to 19.10 running the rollback script in the ext4 installation :slight_smile:

Great post, @popey. Very insightful.

I took my time learning, and playing with snapper, and agree that sane defaults, with respect to garbage-collected snapshots, would make all the difference in the world. Snapper’s defaults, to make way too many snapshots, are indeed hubris.

I use BTRFS on my root partitions only if it’s Linux Mint (say, on a family member’s machine), in order to leverage the GUI goodness of Timeshift (like Apple’s “Time Machine”). Then the snapshots are easy to set up and manage.

For all other distros, EXT4 is my default, and then I make compressed, off-disk backups using zstd on the command line (and this ugly-looking CLI method I only use personally, thereby avoiding scaring my family and friends, who would probably look down their nose, upon seeing the Terminal).

I only used BTRFS + snapper, very carefully, on a couple of (headless) NAS builds (and then, only on the shared-out disks, not the root partition). It took months to get it all all fine-tuned.

That is why I love using Timeshift on btrfs instead as I can set how many snapshots are kept. Also combined with timeshift-autosnap-apt (GitHub - wmutschl/timeshift-autosnap-apt: Timeshift auto-snapshot script for Ubuntu and Debian based systems which creates snapshots of your system with timeshift before a package install, remove or upgrade using DPkg::Pre-Invoke hook in apt. Fork of timeshift-autosnap from AUR.) and grub-btrfs (GitHub - Antynea/grub-btrfs: Include btrfs snapshots at boot options. (Grub menu)) this basically works like zsys for me (but on an encrypted luks drive).

I have a guide and videos how to set up Ubuntu and Pop_OS with this setup on my homepage (Installation guides | Willi Mutschler)

I’ve been using btrfs on debian 9/10 for about a year now with no issues, although I don’t use the snapshot and copy on write functionality. Typically, I use LVM + LUKS with ext4 since I know how to set it up. If I knew how to set up zfs with encryption like how FreeBSD does it out of the box, I’d use that instead.

Agreed, I am really looking forward to what Ubuntu does with zfs in 20.10. I hope for full disk encryption!