之前给客户做了一个BE备份项目,其中出现一个情况,有一台SQL的虚拟机要备份,每周1个全备,每天一次增量,开启了GRT。
之后做备份测试,首先全备成功,无异常,数据为200G,第二天对它做增量时出现了状况,增量备份的大小为800G,但是备份成功,没有报错没有异常。
排除了有第三方对SQL做备份、有其它的快照存在、agent的问题的情况下,增量的大小仍然是800G。后来查看了虚拟机参数,发现客户的这台虚拟机中并没有CBT的参数存在,于是加入在虚拟机中加入CBT参数后进行增量备份,备份大小正常,问题解决。
所谓CBT是指ESX/ESXi 主机上运行的虚拟机可以跟踪更改了的磁盘扇区。 此功能被称为块修改跟踪 (CBT)。 在许多文件系统上,CBT 在两个变更集 ID 之间识别修改了的磁盘扇区。 在 VMFS 分区上,CBT 还可以识别所有正在使用的磁盘扇区。可从虚拟机外部在虚拟化层中对虚拟磁盘的块修改进行跟踪。 当软件执行备份时,它可以请求仅传输自上次备份以来更改的数据块或正在使用的数据块。 CBT 功能属于 vSphere APIs for Data Protection (VADP) 的一部分,第三方应用程序可以访问此功能。 通过调用 VADP,应用程序可请求 VMkernel 返回自上次备份快照以来虚拟磁盘上已更改的数据块。
要在虚拟机上启用 CBT,请执行以下操作:
-
关闭虚拟机电源。
-
右键单击虚拟机,然后单击编辑设置。
-
单击选项选项卡。
-
单击“高级”区域下方的常规,然后单击配置参数。此时将打开“配置参数”对话框。
-
单击添加行。
-
添加 ctkEnabled 参数,然后将其值设置为 true。
-
单击添加行,添加 scsi0:0.ctkEnabled,然后将其值设置为 true。注意:scsi0:0.ctkEnabled 中的 scsi0:0 指示 SCSI 设备已分配给添加到虚拟机的硬盘。向每个添加到虚拟机的硬盘提供了一个 SCSI 设备,该设备如 scsi0:0、scsi0:1 或 scsi 1:1 所示。已分别在每个磁盘上启用(或禁用)CBT。
-
打开虚拟机电源。
-
在虚拟机的主目录中,验证启用 CBT 的每个磁盘还具有vmname-ctk.vmdk文件。