Relevance of Change Block Tracking with Backup Software

Relevance of Change Block Tracking with Backup Software

I would like to know how CBT works when we backup a VM , either using Full Backup or Incremental Backup.
for instance, in some environment the backup can be at file level ; I mean they install backup agent on the VM Machine and from the Backup software there will be just API requests sent to Vmware to get the VM prepared for Backup. ( I am not sure if the API will request a Snapshot or not, but probably it does.)

there is another type of backup: block level. there is no Backup agent installed on the remote VM. The backup software will just send an API Request to VMware and backs up the whole VM ( I am not sure if it will back up the provisioned size of the VM or just the used side of the VM)

Well, let 'say the Full backup has been done today. Does that mean the Backup has made CBT attribute turned on ? if so then let 's say I make a second  full Backup what will happen to CBT attribute, will it be turned off or it stays turned on.

Any Help will be appreciated.

Thank you.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
Change Block Tracking works, when the VM is backed up at the Host level, and block transfer is used. (and it can track block changes to increase backup speed).

If you install an Agent in the VM, you are using the older non-effecient file and folder backup, so not use blocks!

As for whether CBT is used or not, most modern virtual machine aware backups use CBT, if the virtual machine version is correct and CBT is enabled!

from Anton Gostev from Veeam on CBT:

In essence, CBT is all about CTK files, these are the files which contain change tracking information of the corresponding VMDK file.

The concept is pretty simple, and if you are familiar with AD DirSync control, or Exchange ICS (public folders change tracking) – it is essentially the same: global USN (Update Sequence Number) for each object. CTK file describes the state of each block for tracking purposes, and contain USN for each block in the corresponding VMDK. After any block is updated, it is assigned the new global USN (which is previous USN value that was used on previously processed block plus 1). This way, any application can ask VMware API “tell me if this block was changed since THIS moment”, and the API will easily tell that by simply comparing the provided sequence number with the actual USN on each block. If provided USN is smaller than actual for particular block, it means that the block was changed (and needs to be backed up, replicated or otherwise processed). So multiple processes cannot conflict with each other anyhow. Each process just memorizes the USN corresponding to the snapshot that the application created during processing, and next time it will use the memorized USN to query for changed blocks.

There should be one CTK file per VMDK file, and CTK file cannot grow out of proportion with number of blocks in VMDK (as it stores only 1 record per VMDK block). CTK file is also thousands time smaller than actual VMDK, because it stores only a few bytes of information (USN) for each corresponding 256KB VMDK block (I am 90% sure it is 256KB, used to calculate it once using CTK debug/stats data, just don’t remember for sure – unimportant info escapes my head automatically to prevent overload with useless facts ;) . For the same reasons, I/O overhead is barely noticeable with CBT: change few extra bytes to write for each 256000 bytes of data.

The CTK files are permanent, and should not be deleted after backup/replication.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jskfanAuthor Commented:
OK , CBT keeps track of changed block.
If I backup today a VM ,let 's say 100GB.
tomorrow a user makes change and adds some data to it  50 MB.
After Tomorrow I run Backup , I will backup just 50 MB, if I use the Incremental Backup, or I will Backup 100GB+50 MB if it is full Backup.
Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
Well you would backup what blocks have changed in the host datastore.

and that might not be 100GB+50MB.

because it's changed blocks, and the delta of changes between before and after.

You are talking in terms of files and folder changes, in Size of 100GB and 50MB.

50MB of block changes will be backed up in a incremental.

If you really want to experiment making changes in a VM, and observing what block change size has been made, you can use these scripts in this article

EE Article here
10 Tips to Protect Your Business from Ransomware

Did you know that ransomware is the most widespread, destructive malware in the world today? It accounts for 39% of all security breaches, with ransomware gangsters projected to make $11.5B in profits from online extortion by 2019.

David Johnson, CD, MVPOwnerCommented:
Think of having a large file and editing it and changing 1 byte.  With CBT and an incremental backup only 1 byte will get backed up otherwise the entire file has to be backed up as it has been modified
Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
A few examples...its a function of Snapshot API...and difference between parent and delta (snapshot)

in a Windows 2012 R2 Server...with an 80GB disk, after installing Chrome 1GB of blocks changed!

After copying a file to the server, this caused 1.2GB of blocks to change in the VM. (remember that the OS is also changing blocks on the disk!)

After copying file to the server, this caused 1.1GB of blocks to change in the VM.
jskfanAuthor Commented:
Thank you Guys!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.