ZFS on Linux (Proxmox Docs)

How CoW, Snapshots, etc. worfk in ZFS article.

ZFS datasets are hierarchical.
I.e. you can stack them and have different settings for each level, per default settings are inherited from parent datasets.

ashift

ashift gibt die Sektor-Größe in Byte als  an . [^wiki1]

Figure out physical sector size:
sudo lsblk -o NAME,MOUNTPOINT,PHY-SEC

For sector size of 4096 just leave it on the default 12 (logical size doesn’t matter).

How I set up on backup PC

Create a ZFS pool with two disks in mirror mode (raid 1), parent dataset with lz4 compression, atime off (access time; not rlly needed, overhead), child dataset (to tank; common name) mounted to /home/max/data with proper ownership:

sudo zpool create -o ashift=12 -f tank mirror /dev/sda /dev/sdb
sudo zpool status
sudo zfs set compression=lz4 tank
sudo zfs set atime=off tank
sudo zfs create tank/max
sudo zfs set mountpoint=/home/max/data tank/max
sudo mkdir -p /home/max/data
sudo chown -R max:max /home/max/data
findmnt /home/max/data
df -h | grep tank

The status one should show sth like this:

 pool: tank
state: ONLINE
config:
 
       NAME        STATE     READ WRITE CKSUM
       tank        ONLINE       0     0     0
         mirror-0  ONLINE       0     0     0
           sda     ONLINE       0     0     0
           sdb     ONLINE       0     0     0
 

Create datasets for different purposes:

sudo zfs create tank/max/yt
sudo zfs create tank/max/restic
sudo zfs create \
 -o encryption=on \
 -o keyformat=passphrase \
 -o keylocation=prompt \
 tank/max/phone
sudo zfs create \
 -o encryption=on \
 -o keyformat=passphrase \
 -o keylocation=prompt \
 tank/max/general
sudo zfs create \
 -o encryption=on \
 -o keyformat=passphrase \
 -o keylocation=prompt \
 tank/max/encrypted

Link to home and own it

sudo chown -R max:max /home/max/data

Example changing compression option for dataset afterwards (not necessarily good configs… I left mine inherited from the parent dataset only):

sudo zfs set compression=off tank/max/yt
sudo zfs set compression=zstd-3 tank/max/restic

https://chatgpt.com/c/6916f129-71e4-8326-99d5-890065a76779