Changed Block Tracking

When Veeam Backup & Replication performs incremental backup, it needs to know what data blocks have changed since the previous job session. To get the list of changed data blocks, Veeam Backup & Replication uses the changed block tracking mechanism or CBT. CBT increases the speed and efficiency of incremental backups.

Veeam Backup & Replication uses CBT for the following operations:

  • Backup
  • Replication
  • Entire VM restore

Veeam Backup & Replication enables CBT. You can disable it either at the host level or at the job level for troubleshooting purposes. Note that if you choose to run incremental jobs with CBT disabled, the backup window may increase dramatically, as Veeam Backup & Replication will read all VM data to detect what blocks have changed since the last job session.

Changed Block Tracking 

To keep track of changed data blocks, Veeam Backup & Replication uses the following mechanisms:

Veeam CBT

The CBT mechanism is implemented as a file system filter driver — Veeam CBT driver. The driver is installed on every Microsoft Hyper-V host added to the backup infrastructure. The driver is activated when the host is first addressed by a job for which CBT is enabled.

The Veeam CBT driver keeps track of the changed data blocks in virtual disks. Information about changed data blocks is registered in special CTP files. When a job runs, Veeam Backup & Replication uses CTP files to find out what data blocks have changed since the last run of the job and copies only changed data blocks from the disk image.

Changed Block Tracking 

CTP files are stored in the C:\ProgramData\Veeam\CtpStore folder on standalone Microsoft Hyper-V hosts or on every node of the Microsoft Hyper-V cluster. The CtpStore folder contains a set of subfolders — one for every processed VM, in which the following files are stored:

If a Microsoft Hyper-V VM is registered as a cluster resource, the Veeam CBT driver operates on all cluster nodes with access to VM disks on the CSV. When a job runs, Veeam Backup & Replication copies CTP files to the temporary folder on the backup proxy used by the backup job.

Important

If you process VMs on a Microsoft Hyper-V cluster, ensure all cluster nodes are online. If cluster nodes are in the Maintenance mode, have the cluster service stopped, are powered off or not accessible, CBT will not work. For more information about other requirements for VMs on clusters and SMB3 storage, see this Veeam KB article.

Resilient Change Tracking

For VMs running on Microsoft Hyper-V Server 2016 or later, Veeam Backup & Replication uses Resilient Change Tracking or RCT. RCT is a native Microsoft Hyper-V mechanism for changed block tracking in virtual hard disks of VMs.

The RCT mechanism is used only if the Microsoft Hyper-V environment meets the following requirements:

For backup and replication with RCT, Veeam Backup & Replication uses the following mechanism:

  1. Veeam Backup & Replication triggers Microsoft Hyper-V to create a checkpoint for a processed VM. The checkpoint is used as a data source for backup and replication.
  2. At the end of VM processing, before a checkpoint is merged with the base VM disk, Microsoft Hyper-V converts the checkpoint to a reference point. The reference point can be thought of as a point-in-time representation of the VM disk state.
  3. When Veeam Backup & Replication performs incremental backup or replication, it creates a new checkpoint for the VM used as a data source. Veeam Backup & Replication queries Microsoft Hyper-V to get incremental changes between the reference point created during the previous job session and the checkpoint created during the current job session.
  4. Veeam Backup & Replication copies only changed data blocks from the created checkpoint and saves them in an incremental backup file.

To guarantee the persistence of CBT data, Microsoft RCT maintains 3 bitmaps with CBT data:

RCT and MRT files are created for every VM disk and stored at the VM disk level.

CBT Reset (Microsoft Hyper-V Server 2012 R2 and Earlier)

In some cases, CBT data may get corrupted — as a result, Veeam Backup & Replication will fail to process VMs with changed block tracking. To reset CBT data for individual VMs or specific VHD/VHDX files, you can use the Reset-HvVmChangeTracking PowerShell cmdlet. For more information, see the Veeam PowerShell Reference.

Note that CBT data is reset when you perform a product upgrade. When you run a backup job for the first time after the upgrade, Veeam Backup & Replication will not use changed block tracking. Instead, it will scan the VM image to learn what data blocks have changed.

Page updated 6/25/2024

Page content applies to build 12.3.0.310