The Changed Block Tracking (CBT) feature is an incremental backup technology for VMware and Citrix XenServer that identifies changes on block level and backs up only disk blocks of a VM’s virtual disk that have changed since the last backup; in case of VMware it also backs up the blocks that are in use (on VMFS partitions). SEP sesam uses CBT to perform block level incremental (INC) and differential (DIFF) backups of VMDKs (VMware) or VDIs (Citrix XenServer) after a full (FULL) backup has been successfully executed.
SEP sesam enables CBT automatically by default to optimize backups of VMs. This way the amount of copied data is reduced, which results in reduced amount of time for the backups, reduced network bandwidth required for transferring data, and reduced required storage capacity.
CBT tracks changes of the corresponding VMDK/VDI file in special log file (CTK on VMware, log file on Citrix XenServer). These files are permanent and must not be deleted after the backups.
CBT on VMware
SEP sesam provides efficient data protection for virtual machines (VMs) running on VMware ESXi servers by using VMware vSphere Storage APIs – Data Protection (VADP). Part of the VADP is also Changed Block Tracking (CBT). CBT can identify the disk sectors altered between two change set IDs on many file systems and, on VMFS partitions, can also identify all the disk sectors that are in use.
Prerequisites for using CBT
SEP sesam enables CBT globally by default if the following prerequisites are met:
- The host must be ESX/ESXi 4.0 or later.
- VMs must be using hardware version 7 or newer.
- I/O operations must go through the ESX/ESXi storage stack. NFS is supported, RDM is also supported in virtual compatibility mode, but not in physical compatibility mode (rdmp). VMFS is supported, backed by SAN, iSCSI, or local disk.
- Virtual machine storage must not be (persistent or non-persistent) independent disk – unaffected by snapshots.
- If there are any existing snapshots of VM, CBT cannot be enabled.
SEP sesam uses CBT for performing incremental backups and calls VMware QueryChangedDiskAreas("*") for the list of changed areas from the last given snapshot that should be included in backup. QueryChangedDiskAreas("*") is done in full backups; it returns information about areas of a virtual disk that are in use (allocated). The first time QueryChangedDiskAreas("*") is called, it returns allocated areas of virtual disk. All subsequent calls then return changed areas rather than allocated areas. Note that what CBT does depends on the disk type; it would return used space only for thin and thick lazy zeroed disks.
VMware states the following restriction: Be aware that entire disks are allocated, and are therefore returned when QueryChangedDiskAreas("*") is used in the following scenarios:
- When a cloned thick disk is created.
- Disks are formatted by using the long format setting.
- Disks are created with vmkfstools using the eagerZeroedThick format option – eager zeroed thick disks.
- VMDK is stored on the storage which does not support VMFS, such as NFS or iSCSI devices.
Additionally, the following restrictions apply for CBT:
- VMware does not support enabling CBT on a VM that already has some existing snapshots. As specified by VMware, for CBT to work "the virtual machine must have zero (0) snapshots when CBT is enabled, for a clean start".
- Prior to vSphere 6.5, the QueryChangedDiskAreas("*") returns an error if the CBT data is corrupt. This would lead to an inflated (but correct) incremental/differential backup. However, as of vSphere 6.5, the QueryChangedDiskAreas("*") no longer returns an error for corrupt CBT data, which may lead to corrupt or incomplete incremental/differential backup.
For more details on CBT, see the VMware article Changed Block Tracking (CBT) on virtual machines.
Disabling and enabling CBT for VMware globally
By default, SEP sesam enables the CBT functionality globally. CBT is enabled per virtual disk.
|Typically, there is no need to disable CBT. By disabling CBT, the respective VM's FULL/DIFF/INC backup chain is aborted without the possibility to perform subsequent DIFF and INC backups. Only COPY backups are possible which means that the whole VMDK including empty blocks (provisioned size means that the size of a backup and the size of VMDK equals) will be backed up each time.
- In the SEP sesam GUI, from the menu bar select Configuration -> Defaults, and then switch to tab Extras.
- Under the Extras options, select or deselect the check box Globally activate changed block tracking (CBT).
CBT on Citrix XenServer
CBT support for Citrix XenServer ≥ 7.3 is available for clients with XenServer Enterprise Edition by default.
- CBT provides incremental backup capabilities; hence, all backup levels (FULL, INC and DIFF) can be used for Citrix XenServer backups. As CBT for Citrix XenServer ≥ 7.3 is enabled by default, it can be skipped only by performing a COPY backup.
- If you use Citrix XenServer lower than 7.3 or the server is not licensed for CBT, then only COPY backups are possible.
For details, see Citrix XenServer Backup.
There are some considerations to take into account when restoring a differential or incremental backup from Citrix Xen VM. For details, see Citrix XenServer Restore.