Come hai detto, BTRFS può farlo. Ecco come eseguo regolarmente il backup del mio laptop (che ha un tempo di attività di 9 settimane, 5 giorni durante la digitazione).
All'interno del mio filesystem BTRFS, ho dei sottovolumi. Il modo in cui dividi i tuoi dati in sottovolumi e il modo in cui li annidi non è importante qui, a condizione che tu non stia utilizzando la radice del filesystem per archiviare i dati di cui desideri eseguire il backup.
I seguenti comandi servono per illustrare la sintassi e le possibilità, consiglio di racchiuderli in uno script che viene eseguito come cronjob o systemd.timer.
Per creare un'istantanea di un sottovolume:
btrfs subvolume snapshot -r <source> <dest>
Per serializzare uno snapshot:
btrfs send <snapshot>
Per serializzare uno snapshot relativo a uno più vecchio (cioè differenziale):
btrfs send -p <start> <end>
Per generare un diff, comprimerlo al volo e inviarlo al server di backup, con monitoraggio dei "progressi":
btrfs send -p <start> <end> | \
pv -bart | \
pbzip2 --best | \
ssh [email protected] "cat > /backups/name.bz2"
Per fare qualcosa di simile, ma ricreare i sottovolumi BTRFS sul server di backup anziché limitarsi ai flussi BTRFS compressi:
btrfs send -p <start> <end> | \
pv -bart | \
pbzip2 --best | \
ssh [email protected] "pbzip2 -d | \
btrfs receive <target>"
Per ripristinare, applica le tue istantanee in ordine a un nuovo filesystem BTRFS, tramite btrfs receive
.
Ecco ulteriori informazioni sui backup incrementali BTRFS
Come ha detto @mark-k-cowan, puoi farlo con gli snapshot btrfs. btrfs è troppo immaturo per me. Usare zfs e la sua istantanea sarebbe meglio. Come ha affermato @brady-dean, gli snapshot LVM sono un metodo indipendente dal filesystem. Gli snapshot LVM possono avere un enorme impatto negativo sulle prestazioni.
Acronis dispone di un modulo del kernel che funziona a livello di blocco per creare istantanee. Datto Block Driver è un modulo del kernel GPLv2 (ahem "freeware") che fa la stessa cosa. (Disclaimer:non l'ho mai usato.)