什么是 CBT
VMware ESX/ESXi 主机上运行的虚拟机可以跟踪更改了的数据块。 此功能被称为块修改跟踪 (CBT)。 在许多文件系统上,CBT 在两个变更集 ID 之间识别修改了的数据块。 在 VMFS 分区上,CBT 还可以识别所有正在使用的数据块。
当备份软件执行备份时,它可以请求仅传输自上次备份以来更改的数据块或正在使用的数据块,减小备份窗口,提升备份性能。
一般情况下,VMware CBT 是可靠的。但是,在特定的 vSphere 版本或环境中,VMware CBT 存在一些问题,那么,AnyBackup 7.0 针对这些场景做了些什么呢?
场景一:在 VMware ESXi 6.0.x 中 CBT 可能返回错误的更改数据块
问题描述:VMware CBT API 调用 QueryDiskChangedAreas() 有时会返回错误的更改扇区,导致增量虚拟机备份不一致。恢复的虚拟机可能存在数据丢失。
AnyBackup 怎么做:
- 识别有该问题的 ESXi 主机版本:ESXi 6.0.0 Build 2494585 - 3247720。
- 备份任务执行时,检测虚拟机所在 ESXi 主机版本,在步骤 1 版本范围中的环境任务将提示警告信息。
场景二:虚拟磁盘扩展后 CBT 可能返回错误的更改数据块
问题描述:当您将已启用更改块跟踪 (CBT) 的虚拟磁盘 .vmdk 文件扩展超过任何 128 GB 边界时,将发生此问题。 在 ESXi 4.x 和早期版本的 ESXi 5.x 中,扩展磁盘后,更改跟踪数据将变得不可靠。 由于更改块信息不正确,备份可能无法捕获到某些已更改的块。 因此,恢复的虚拟机可能存在数据丢失。
AnyBackup 怎么做:
- 和上一个问题类似,识别有改问题的 ESXi 主机版本,这个场景中,ESXi 5.0、ESXi 5.1 和 ESXi 5.5 均有版本存在该问题;对于 ESXi 4.x,未在 AnyBackup 7.0 兼容性列表无需处理。
- 备份任务执行时,检测虚拟机所在 ESXi 主机版本,在步骤 1 版本范围中的环境任务将提示警告信息。

各位在看到以上警告信息的时候可不要视而不见,建议及时对 ESXi 主机版本进行升级。
场景三:如果启用CBT时存在快照,虚拟机备份可能会损坏
问题描述:VMware 不支持在具有一个或多个现有快照的虚拟机上启用 CBT。在 vSphere 6.5 之前,如果 CBT 数据已损坏,则 QueryChangedDiskAreas API 将返回错误。但是,从vSphere 6.5 开始,如果 CBT 数据已损坏,则 QueryChangedDiskAreas API 不再返回错误。这有可能导致损坏或不完整的增量或差异备份。
AnyBackup 怎么做:备份任务执行时,之前虚拟机快照前检测虚拟机磁盘状态,对于已有快照的虚拟机任务将提示警告信息。
全面保障您的数据安全
爱数 AnyBackup 十多年丰富的用户实践,一直致力于保护您的数据安全。AnyBackup 将继续保持严谨细致、精益求精,帮助您扫除灾备死角,实现高效安全的数据保护。
参考资料:
- 在 ESXi 6.0.x 中备份启用了更改块跟踪的虚拟机时返回错误的更改扇区 (2136854)。
- QueryChangedDiskAreas API 扩展已启用更改块跟踪 (CBT) 的虚拟机 VMDK 文件后返回不正确的扇区 (2090639)。
- Virtual Disk Development Kit 发行说明描述了该问题:QueryChangedDiskAreas reports no error if VM has snapshot when enabling CBT。
- 为 VMware vSphere 虚拟机重置块修改跟踪。