ZFS
ZFS is a cool filesystem that offers enterprise data integrity, and is a alternative to btrfs and ext4.
It uses a drive/foldername@backupname format.
ex: photos-drive/photos@2026-07-16-backup where:
- photos-drive is pool
- photos is dataset
- 2026-07-16-backup is snapshot.
Management
Take snapshot
# each snapshot has to have a unique name
zfs snapshot photos-drive/photos@2026-07-16-backup
List snapshot
zfs list -t snapshot photos-drive/photos
Delete snapshot
zfs destroy photos-drive/photos@2026-07-16-backup
Restore from snapshot
zfs rollback -r photos-drive/photos@2026-07-16-backup
# any newer snapshots get deleted in order to restore!!!
Local ZFS send
# send from one drive to another. can be done over network similarly.
zfs send photos-drive/photos@2026-07-16-backup | zfs receive restore/data
Network
Files can be transferred easily over network with syncoid. Install:
sudo apt install syncoid
Then setup a ssh key
ssh-keygen #generate a new key
ssh-copy-id user@IP
Then transfer
# by default makes a zfs snapshot on run, use --no-sync-snap to disable this (make sure to snapshot yourself!)
syncoid photos-drive/photos user@IP:backups-disk/photos --no-sync-snap # backups-disk/photos is second location