Seperti yang Anda sebutkan, BTRFS dapat melakukan ini. Beginilah cara saya mencadangkan laptop saya secara rutin (yang memiliki waktu aktif 9 minggu, 5 hari saat saya mengetik ini).
Di dalam sistem file BTRFS saya, saya memiliki subvolume. Cara Anda membagi data menjadi subvolume dan cara Anda menumpuknya tidak penting di sini, selama Anda tidak menggunakan root sistem file untuk menyimpan data yang ingin dicadangkan.
Perintah berikut adalah untuk mengilustrasikan sintaks dan kemungkinan, saya sarankan membungkusnya dalam skrip yang berjalan sebagai cronjob atau systemd.timer.
Untuk memotret subvolume:
btrfs subvolume snapshot -r <source> <dest>
Untuk membuat serial snapshot:
btrfs send <snapshot>
Untuk membuat serial sebuah snapshot relatif terhadap yang lebih lama (yaitu diferensial):
btrfs send -p <start> <end>
Untuk menghasilkan diff, mengompresi dengan cepat, dan mengirim ke server cadangan, dengan pemantauan "kemajuan":
btrfs send -p <start> <end> | \
pv -bart | \
pbzip2 --best | \
ssh [email protected] "cat > /backups/name.bz2"
Untuk melakukan hal serupa, tetapi buat ulang subvolume BTRFS di server cadangan daripada hanya aliran BTRFS terkompresi:
btrfs send -p <start> <end> | \
pv -bart | \
pbzip2 --best | \
ssh [email protected] "pbzip2 -d | \
btrfs receive <target>"
Untuk memulihkan, terapkan snapshot Anda ke sistem file BTRFS baru, melalui btrfs receive
.
Berikut informasi lebih lanjut tentang Pencadangan Inkremental BTRFS
Seperti yang dikatakan @mark-k-cowan, Anda dapat melakukan ini dengan snapshot btrfs. btrfs terlalu kekanak-kanakan untukku. Menggunakan zfs dan snapshotnya akan lebih baik. Seperti yang dikatakan @brady-dean, snapshot LVM adalah metode filesystem-agnostic. Snapshot LVM dapat berdampak negatif besar pada performa.
Acronis memiliki modul kernel yang berfungsi pada lapisan blok untuk membuat snapshot. Datto Block Driver adalah modul kernel GPLv2 (ahem "freeware") yang melakukan hal yang sama. (Penafian:Saya tidak pernah menggunakannya.)