VMware vSphere ESXi 8.0
VMware vSphere ESXi 7.0
VMware vSphere ESXi 6.7
VMware vSphere ESXi 6.5
Workaround:
Resolution:
If the backup software uses VDDK 6.7 or later libraries, it needs to retrieve the intersection of VixDiskLib_QueryAllocatedBlocks() and queryChangedDiskAreas(changeId) to calculate the accurate changed blocks.
Note: The backup software is able to filter out those unallocated blocks if it uses VDDK 6.7 or later. It can get all allocated area of a virtual disk by calling the VDDK API VixDiskLib_QueryAllocatedBlocks(), then taking the intersection with changed blocks reported by CBT. The result is the changes on the allocated blocks.
Storage system may allocate more space than needed by the guest OS. For example, VMFS file block size is 1MB and guest OS has a typical block size of 4KB. When 4KB data is requested to be written on the disk, 1 MB will be allocated and only 64KB will be recorded changed in CBT. VixDiskLib_QueryAllocatedBlocks()may report pre-allocated blocks on which nothing is yet written. It is expected that some allocated blocks may not be recorded in changed blocks.