Windows Server 2016远程桌面服务配置和授权激活

希捷硬盘F3家族系列模块和系统文件对照表

  返回  

启用或禁用更改块跟踪 (Changed Block Tracking, CBT) 的两种方式

2018/12/20 1:54:35 浏览:
启用或禁用更改块跟踪 (Changed Block Tracking, CBT) 的两种方式
由于VMware提供了方便的数据块修改追踪(Changed Block Tracking,CBT)技术,为虚拟机增量备份提供了基础,除第一次备份必须完整备份与传输整个VM数据外,后续备份都只需通过查询 CBT 记录,获取哪些异动过区块,然后只备份这些异动区块即可,既节省了扫描磁盘、判定异动区块的时间,所需传输的数据量也大幅缩小。

默认情况下 CBT 这个功能是禁用的,因为它会引起一个很小但是可测的性能降低。通常需要在第一个快照之前启用CBT,通过请求虚拟机配置,就可以判断修改块跟踪是否启用。

CBT 这个功能不是一开始 VMware 公司就有提供的,所以要使用 CBT 功能需满足如下先决条件:

ESX/ESXi 主机必须是 4.0 及以上版本;
VM 硬件版本必须是 7 或更新;
支持所有的虚拟磁盘类型(Thick、thin 及 RDM 虚拟兼容模式),除了 RDM 物理兼容模式;

RDM (Raw Device Mapping)是VMware 服务器虚拟化环境中,用以允许一个虚拟机直接访问SAN(Storage Area Networking)中的一个存储LUN(Logical Unit Number)。 
RDM也可以叫做裸设备映射(Raw Device Mapping ),虚拟机直接使用存储中的LUN,而不经过虚拟化层。

虚拟机上没有可用的快照;

虚拟机必须处于断电状态。
如果备份时,没开启 CBT,会出现下面的错误:

■ 更改块跟踪配置不正确

■ 磁盘“Hard disk #”的更改块跟踪配置不正确

■ 一个或多个虚拟机磁盘的更改块跟踪配置不正确

启用块修改跟踪 (CBT)

在虚拟机上启用块修改跟踪 (CBT) ,有两种方式,第一种是通过 vSphere client 客户端进行配置;第二种是通过程序设置。

通过 vSphere client 客户端进行配置 CBT 步骤

要在虚拟机上启用 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文件。
要禁用 CBT,首先也要关闭虚拟机,同样打开配置窗口,将所需禁用的 SCSI 磁盘的 ctkEnabled 参数设置为 false 即可。

通过程序设置启动 CBT

使用 PropertyCollector 从 VirutalMachine 托管对象中获取这个属性域,如果这个域包含 changeTrackingSupported 标志,就可以进行相关操作。

如果支持的话,可以使用一个简单的 VirtualMachineConfigSpec 来启用修改块跟踪,并调用 ReconfigVM_Task 方法来重新配置虚拟机:

判断虚拟机修改跟踪的状态(先获取虚拟机的配置信息 VirtualMachineConfigInfo,根据其方法 isChangeTrackingEnabled() 来判断),如果是false,激活修改块跟踪,并调用ReconfigVM_Task方法来重新配置虚拟机,程序如下:

VirtualMachineConfigSpec configSpec = new VirtualMachineConfigSpec();
// 获取虚拟机信息, VirtualMachine 为自定义的一个实体对象,获取虚拟机信息的方法也为自定义方法
VirtualMachine vm = getVirtualMachineInfoByVmMor(targetVmMoRef);
if(!vm.getConfig().isChangeTrackingEnabled()){
    configSpec.setChangeTrackingEnabled(new Boolean(true));
}

ManagedObjectReference taskMoRef = serviceConnection.getService().ReconfigVM_Task(targetVmMoRef,configSpec);

public void setChangeTrackingEnabled(Boolean value) {
    this.changeTrackingEnabled = value;
}
1
2
3
4
5
6
7
8
9
10
11
12

--------------------- 
作者:joexk 
来源:CSDN 
原文:https://blog.csdn.net/zhouxukun123/article/details/77823233 
版权声明:本文为博主原创文章,转载请附上博文链接!

联系我们

济南鉴信DATAHELP服务器数据恢复中心
数据恢复服务热线:0531-62399989
数据恢复服务电话:0531-62399989
公司传真:0531-55575577
数据恢复业务Mail:DATAHELP@163.COM
数据恢复公司地址:济南市山大路157号华强电子世界三楼Q3059,Q3060