Last few weeks, I reinstalled 4 of my machines to use ZFS instead of ext4. Read my other post Setting up root on ZFS for installing Debian 11 (bullseye) with ZFS and my ZFS commands post showing simple commands for creating zpools, datasets, snapshots...

I want to use ZFS to be able to:

  • check the integrity of my files
  • make backups easier to handle (compare to borg backup and rdiff-backup). It is easy to either restore the full snapshot or a single file
  • better performance when synchronizing data between machines (compare to rsync). Why? Because the file checksums are already computed with ZFS on the sending and the receiving machines and the data that needs to be sent is also precomputed: it is everything since the last snapshot
  • compress the data on disk automatically

I thought ZFS was resource intensive, but it's quite ok even on old and slow machines like these:

  • Macbook Air 2008: Cpu Intel Core 2 (2 cores), 2GB RAM
  • Dell XPS 13, Cpu Intel Skylake (2 cores, 4 HW threads), 16 GB RAM
  • Intel NUC, Cpu Intel Kaby lake (2 cores, 4 HW threads), 32 GB RAM
  • Acer laptop 2009, Cpu AMD C-60 (2 cores, 1ghz), 4 GB RAM

It uses more CPU and more RAM than other file systems but the machines are still usable compare to my previous setup with ext4.

The performance for reading and writing files is good, find and du are slower than on ext4.

I configured my ZFS pools to compress the data on disk with LZ4, it is quite painless. The Compression ratios are between 1.3 and 1.58, I have a lot of text files: source code, html, ... Of course you are not going to get the compression ratio if your data is mainly binary like images.

zfs get used,compressratio,compression,logicalused rpool

Acer Laptop:
NAME   PROPERTY       VALUE           SOURCE
rpool  used           47.9G           -
rpool  compressratio  1.33x           -
rpool  compression    lz4             local
rpool  logicalused    52.8G           -

Intel NUC:
NAME   PROPERTY       VALUE           SOURCE
rpool  used           103G            -
rpool  compressratio  1.37x           -
rpool  compression    lz4             local
rpool  logicalused    132G

Dell XPS13:
NAME   PROPERTY       VALUE           SOURCE
rpool  used           68.8G           -
rpool  compressratio  1.50x           -
rpool  compression    lz4             local
rpool  logicalused    97.4G           -

Macbook AIR:
NAME   PROPERTY       VALUE           SOURCE
rpool  used           7.69G           -
rpool  compressratio  1.58x           -
rpool  compression    lz4             local
rpool  logicalused    11.4G           -