一、CBT 技术简介
VMware 变更块跟踪(Changed Block Tracking,简称 CBT)是 VMware vSphere 提供的一项核心功能,用于记录虚拟机(VM)磁盘数据块的变更。CBT 首次在 VMware vSphere 4.0 中引入,作为 VMware vSphere 存储 API – 数据保护框架的一部分。它允许第三方数据保护应用程序利用此技术执行更高效的备份和复制操作。
CBT 在 ESXi 存储堆栈级别工作,允许第三方备份解决方案仅备份自上次备份以来发生变化的数据块,从而实现增量备份,而不是整个虚拟机的全量备份。这样不仅大大减少了备份数据的大小,尤其在拥有数百个 VM 的大型环境中,还加快了备份过程。
二、CBT 工作原理
CBT 通过比较最后一次和当前的更改集 ID,找出这两个更改集 ID 之间被修改的磁盘扇区。此外,CBT 还能识别虚拟磁盘上所有正在使用的 VMFS(Virtual Machine File System)块。这一跟踪过程由虚拟化管理程序(hypervisor)本身进行,并在 VM 外部进行。
三、CBT 使用条件
- VMware vSphere(ESXi 4.0 或更高版本)
- 必须为虚拟机启用 CBT(默认情况下已启用)
- 虚拟硬件版本 7 或更高
- 本地 VMFS 数据存储、NFS 或 iSCSI 数据存储
- 厚置备或薄置备
- 不支持物理兼容模式的原始设备映射(Raw Device Mapping, RDM)
- 虚拟机存储不能是独立磁盘(持久性和非持久性的),这意味着不受快照影响。
四、确认CBT是否启用
要检查虚拟磁盘是否启用了 CBT,请执行以下操作:
- 打开 vSphere Client,选择已关闭电源的虚拟机。
- 右键单击虚拟机,然后导航到编辑设置 > 选项 > 高级/常规 > 配置参数。
3. 虚拟机的配置文件 (.vmx) 包含以下条目:
ctkEnabled = “TRUE”
注意:要禁用 CBT,请将值设置为 False。
4. 在每个虚拟磁盘的配置中,.vmx 文件都会包含如下所示的条目:
scsix:x.ctkEnabled = “TRUE”
5. 每个虚拟磁盘及其对应的快照磁盘都会关联一个 .ctk 文件。
vmname.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 (更改块跟踪),请按照以下步骤操作:
- 关闭虚拟机的电源。
- 右击该虚拟机,并选择“编辑设置”。
- 点击“选项”选项卡。
- 在“高级”区域,点击“常规”,然后选择“配置参数”。这将打开“配置参数”对话框。
- 对于指定的 SCSI 磁盘,将 ctkEnabled 参数更改为 false。
- 重新开启虚拟机的电源。