: Persistent, kernel-supported, accurate for thin volumes. Cons : Only works with LVM thin volumes, not raw disks or standard partitions. 3.4. Btrfs / ZFS Native Change Tracking Btrfs has btrfs send with snapshots: It efficiently computes differences between snapshots using a change-tracking mechanism. No explicit per-block bitmap is exposed, but btrfs send -p <parent> only sends changed extents.
Here’s a technical write-up on — its concepts, implementation options, and practical usage for incremental backups. Linux Change Block Tracking (CBT): A Technical Overview 1. Introduction Change Block Tracking (CBT) is a mechanism that identifies which blocks on a storage device have been modified since a particular point in time. It enables efficient incremental backups by allowing backup software to read only changed data instead of scanning entire volumes. linux cbt
For KVM virtualized environments, are the closest to true CBT and are recommended over host-level block tracking. Last updated: 2026-04-14 : Persistent, kernel-supported, accurate for thin volumes
For , the most practical CBT-like approach is: LVM thin snapshots + thin_delta or Btrfs/ZFS with incremental send . 5. Practical Implementation: LVM Thin CBT Script Here’s a minimal script demonstrating CBT concept using LVM thin. Btrfs / ZFS Native Change Tracking Btrfs has
# Create thin pool and thin volume lvcreate -L 10G --thinpool vg0/thinpool lvcreate -T vg0/thinpool -V 5G -n origin lvcreate -s vg0/origin -n snap1 After some writes, create second snapshot lvcreate -s vg0/origin -n snap2 Find changed blocks between snap1 and snap2 thin_delta /dev/mapper/vg0-thinpool --snap1 snap1 --snap2 snap2
has zfs diff and zfs send -i for incremental streams. Internally, ZFS uses transaction groups and block pointers to identify changed blocks.