VMware变更块跟踪(CBT)原理与备份集成指南
2026-07-16
得益于 VMware 便捷的“变更块跟踪”(CBT)技术,为虚拟机的增量备份奠定了基础。除首次备份必须执行完整备份并传输整个虚拟机数据外,后续备份仅需查询 CBT 记录即可获知哪些数据块发生了变更,从而仅备份这些已变更的块。这不仅节省了扫描磁盘及识别变更块所需的时间,还显著减少了需传输的数据量。
不过,默认情况下,CBT 功能处于禁用状态,因为它会导致轻微但可测量的性能下降。通常,必须在创建首个快照之前启用 CBT。通过查询虚拟机配置,可以确定是否已启用更改区块跟踪(Changed Block Tracking)。
什么是变更块跟踪(CBT)技术?
VMware 变更块跟踪(CBT)是 VMware vSphere 提供的一项核心功能,用于记录虚拟机磁盘数据块的变更情况。CBT 最初作为 VMware vSphere 存储 API–数据保护框架的一部分,在 VMware vSphere 4.0 版本中首次推出。该技术使第三方数据保护应用程序能够更高效地执行备份和复制操作。
CBT 在 ESXi 存储栈层级运行,允许第三方备份解决方案仅备份自上次备份以来发生更改的数据块,从而实现 增量备份,而非对整个虚拟机执行完整备份。这不仅大幅减少了备份数据的大小,还加快了备份过程,尤其适用于拥有数百台虚拟机的大型环境。
CBT 的工作原理
CBT 的工作原理是:VMKernel 监控自上一个 快照 点以来哪些数据块发生了更改,并记录这些已更改数据块的偏移量。基于这些偏移量,即可获取数据块中已被修改的数据。
CBT 通过比较上一个和当前的更改集 ID 来识别已修改的磁盘扇区。此外,CBT 还可识别虚拟磁盘上所有正在使用的 VMFS(虚拟机文件系统)数据块。该跟踪过程由虚拟机监控程序(hypervisor)自身执行,并在虚拟机外部进行。
使用CBT的要求
✨VMware vSphere(ESXi 4.0 或更高版本)
✨必须为虚拟机启用CBT(默认已启用)
✨虚拟硬件版本 7 或更高版本
✨本地 VMFS 数据存储、NFS 或 iSCSI 数据存储
✨厚置备或精简置备
✨物理兼容模式下的原始设备映射(RDM)不受支持
✨虚拟机存储不能是独立磁盘(无论是持久性还是非持久性),这意味着它必须受快照影响。
如果备份期间未启用CBT,将出现以下错误:
■ 已更改的区块跟踪未正确配置
■ 更改的块跟踪未为磁盘“硬盘 #”正确配置
■ 一个或多个虚拟机磁盘的更改块跟踪未正确配置
CBT 无法启用的常见原因
1. 存在现有快照
导致该错误的最常见原因之一是虚拟机上存在快照。VMware 不允许在具有活动快照的虚拟机上启用 CBT;尝试启用时会显示警告:“存在一个或多个快照”。此限制存在的原因是快照会改变虚拟磁盘链,从而阻碍 VMware 准确跟踪变更。
2. 虚拟硬件版本与配置
CBT 要求虚拟机运行在版本 7 或更高版本的虚拟硬件上,且主机必须为 ESXi 4.0 或更高版本。此外,虚拟机磁盘必须使用受支持的存储模式——CBT 不支持物理兼容模式下的原始设备映射(RDM)。
3. 备份工具和传输模式的限制
某些备份解决方案和传输模式会固有地禁用或阻止启用 CBT。在使用虚拟设备(HotAdd)传输模式时,CBT 可能默认被禁用,且不支持重新启用。同样,某些第三方工具会警告:如果虚拟机未显示任何快照(表明其处于过期或损坏状态),或 VMware Tools 版本过旧,则无法启用 CBT。
如何确认是否已启用CBT?
要检查虚拟磁盘是否已启用CBT,请执行以下步骤:
1. 打开 vSphere 客户端并选择一台已关机的虚拟机。
2. 右键单击虚拟机,然后依次选择编辑设置 > 选项 > 高级/常规 > 配置参数。
3. 虚拟机的配置文件(.vmx)包含以下条目:
ctkEnabled = “TRUE”
注意:如需禁用 CBT,请将该值设为False。
4. 在每个虚拟磁盘的配置中,.vmx 文件将包含如下所示的条目:
scsix:x.ctkEnabled = “TRUE”
5. 每个虚拟磁盘及其对应的快照磁盘都将关联一个 .ctk 文件。
虚拟机名称.vmdk
vmname-flat.vmdk
vmname-ctk.vmdk
vmname-000001.vmdk
vmname-000001-delta.vmdk
vmname-000001-ctk.vmdk
6. 启动虚拟机。
7. 在虚拟机的主目录中,确认每个启用 CBT 的磁盘都包含一个名为 vmname-ctk.vmdk 的文件。
如何禁用 CBT?
要关闭 CBT(变更块跟踪),请按以下步骤操作:
1. 关闭虚拟机。
2. 右键单击虚拟机,然后选择“编辑设置”。
3. 点击“选项”标签页。
4. 在“高级”部分中,点击“常规”,然后选择“配置参数”。这将打开配置参数对话框。
5. 对于指定的 SCSI 磁盘,将 ctkEnabled 参数更改为 false。
6. 重新启动虚拟机。
企业级备份解决方案,高效集成 CBT
在深入理解 VMware CBT 功能及常见问题后,您可能需要一款能够为虚拟机提供高效、稳定增量备份能力的工具。
Vinchin 备份与恢复 是一款企业级虚拟化数据保护解决方案,广泛支持 VMware vSphere、Citrix Hypervisor(XenServer)、XCP-ng、Proxmox、Red Hat Virtualization(RHV)、oVirt 等主流虚拟化平台。Vinchin 备份与恢复目前已为以下平台实现 CBT 支持:VMware vSphere、Citrix Hypervisor(XenServer 7.3 及更高版本)、XCP-ng、RHV(4.4.7 或更新版本)、oVirt(4.4.7 或更新版本)、OLVM(4.4.8 或更新版本)以及华为 FusionCompute(KVM),大幅提升了增量备份的效率与可靠性。
对于不支持 CBT 的平台,Vinchin 提供自有 SpeedKit 技术作为替代方案,以实现类似的增量备份加速效果。
在 Vinchin 备份与恢复中启用 CBT 备份非常简单:
1. 选择备份对象
2. 指定备份目标位置
3. 设置备份策略。此处,在“高级策略”中,勾选“CBT”选项。
4. 提交任务
除了CBT技术外,Vinchin还提供多项高级功能,以进一步增强数据保护能力,例如即时恢复、文件级恢复、备份验证、多平台V2V迁移等。对于希望提升备份效率并降低存储成本的企业用户而言,Vinchin是一款值得考虑的专业解决方案。您可免费试用15天,全面体验其各项功能。
下载免费试用版
适用于多种数据备份
* 15天全功能免费安全下载
无法启用变更块跟踪(CBT)常见问题解答
1. CBT 元数据存储在哪里?能否手动删除?
CBT 使用与虚拟机的 VMDK 文件一同存储在数据存储中的 .ctk 文件。仅当虚拟机处于关机状态时,您才能手动删除这些文件;但请务必先禁用 CBT,以免造成数据损坏。
结论
VMware 的 CBT 技术是一种强大工具,可通过支持增量备份来提升虚拟机备份的效率与速度。尽管该技术需要正确配置,且存在若干限制(例如兼容性与快照约束),但其在缩短备份时间、降低存储占用方面的优势,使其在企业环境中极具价值。确保 CBT 正确启用并持续维护,有助于规避常见备份问题,并优化数据保护工作流程。