Root on ZFS in Debian Bullseye
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 -
hashtags: #zfs