Incremental and Differential virtual machine backups which use Changed Block Tracking may be corrupt

book

Article ID: 100033474

calendar_today

Updated On:

Cause

Prior to vSphere 6.5, the VMware QueryChangedDiskAreas API would return an error if the CBT data was corrupt, but VMware does not perform this check as of vSphere 6.5. In addition, Versions of Backup Exec prior to Backup Exec 16 ODP 1 do not check whether a VM has an existing snapshot prior to enabling CBT on it. Because of the changed behavior in the VMware QueryChangedDiskAreas API, this can result in corrupt incremental or differential backups.

Resolution

To reset CBT on a VM, follow the procedure in the VMware knowledge base article https://kb.vmware.com/kb/2090639 and then run a full backup of the VM.

Issue/Introduction

Backup Exec uses the VMware Changed Block Tracking (CBT) feature to produce incremental and differential backups. To do so, it calls the VMware API to enable CBT tracking prior to the first backup job, and then uses the VMware QueryChangedDiskAreas API to discover any changes made since a given snapshot.

VMware does not support enabling CBT on a VM that has one or more an existing snapshots. Prior to vSphere 6.5, the QueryChangedDiskAreas API would return an error if the CBT data was corrupt. However, as of vSphere 6.5, the QueryChangedDiskAreas API no longer returns an error if the CBT data is corrupt. This can potentially lead to a corrupt or incomplete incremental or differential backup.

Versions of Backup Exec prior to Backup Exec 16 ODP 1 do not check for existing snapshots on a VM prior to enabling CBT on a VM. This can potentially result in corrupt incremental or differential backups, due to the change in the behavior of the QueryChangedDiskAreas API.

As of Backup Exec 16 ODP 1, Backup Exec checks for existing snapshots prior to enabling CBT on a VM. When it detects this condition on a VM running on vSphere 6.5 or greater, Backup Exec will not enable CBT on the VM. This leads to inflated (but correct) incremental/differential backups.

Note that Backup Exec cannot detect if an outside entity has enabled CBT on a VM with an existing snapshot. If an outside entity enables CBT on a VM with a pre-existing snapshot and that VM runs vSphere 6.5, incremental or differential backups of that VM may be corrupt or incomplete.