VMware Cloud Community
bvivek
Contributor
Contributor

how changed block tracking works?

I have gone through the changed block tracking functionality- how to enable it, its advanages(incremetnal and differential backups) etc.

When enabled, *-ctk.vmdk files are created, one per virtual disk.

What I have not understood clearly is what are the contents of *-ctk.vmdk and how those are used for changed block tracking?

Can somebody point me to the references for these details?

Thanks,

Vivek.

0 Kudos
6 Replies
DenisJannot
Contributor
Contributor

Hi Vivek,

One ctk.vmdk file is created fo each virtual disk.

It's a map of the virtual disk which indicates the timestamp of the last modification for each zone of the virtual disk (and other information).

When you run a backup, the backup software can then ask the list of all the zones of the virtual disk which have been modified since the last backup (sending the timestamps of the last backup).

As, it's a map, the ctl.vmdk files are not growing if you don't change the size of the virtual disk.

Best regards,

Denis

0 Kudos
bvivek
Contributor
Contributor

Can you please elaborate a bit more on the map?

Does the map store actaul timestamps? or does it emply some other technique like sequence numbers?

Thanks,

Vivek.

0 Kudos
DenisJannot
Contributor
Contributor

Yes, the map stores timestamps.

The Virtual Disk API Programming Guide gives a lot of information about Change Block Tracking :

http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vddk_prog_guide.pdf

Best regards,

Denis

0 Kudos
bvivek
Contributor
Contributor

Yes, from there, I understand how changeID and QueryChangedDiskAreas can be used and how it is helpful in incremental/differential backups. What I am interested in is the contents of *-ctk.vmdks and technique used to determine the changed disk areas.

I have confusion because some internet references mention about technique other than which you mentioned(timestamps).

http://www.yellow-bricks.com/2009/12/21/changed-block-tracking/

http://www.punchingclouds.com/?p=896

http://itknowledgeexchange.techtarget.com/virtualization-pro/what-is-changed-block-tracking-in-vsphe...

Thanks,

Vivek.

0 Kudos
DenisJannot
Contributor
Contributor

Hi Vivek,

Here is an extract of the VDDK programming guide :

changeId – An identifier for the state of a virtual disk at a specific point in time. A new ChangeId results

every time someone creates a snapshot. You should retain this value with the version of change data that

you extract (using QueryChangedDiskAreas) from the snapshot’s virtual disk.

When you back up a snapshot, you either have a previously saved ChangeId or you do not. If you have a saved

ChangeId, it identifies the last time a backup was taken, and tells the changed block tracking logic to identify

changes that have occurred since the time indicated by the ChangeId. If you do not have a saved ChangeId,

then you must save a baseline (full) backup of the virtual disk.

Best regards,

Denis

0 Kudos
bvivek
Contributor
Contributor

Thanks.

As I mentioned earlier I understand this from the VDDK guide. However, what I am looking for is the exact "information stored in *-ctk.vmdk" and "the logic" that uses this information to track changed blocks.

???

Regards,

Vivek.

0 Kudos