Changed block tracking
Changed block tracking records written regions of a block device relative to a tracking boundary so a backup can select those regions.
A libvirt checkpoint identifies a change-tracking boundary without capturing guest state. Recovery still needs the backup payload and its required predecessors. Application quiescing is a separate capture decision. [2]
Libvirt associates checkpoint names with per-disk QEMU bitmaps. Before selecting an incremental, its documented checks require an active-image bitmap, a contiguous same-name bitmap subchain, recording state and no inconsistency. Preserve this tracking lineage when changing overlays; a readable disk chain alone is insufficient. [1]