Link to home
Start Free TrialLog in
Avatar of sara2000
sara2000

asked on

VMs Block Tracking

vm experts u there , My backup software requires block tracking enabled for incremental backup.
Is there any easy way I can find out which VM has not been block tracking enabled?
have around 100 VMs.
Avatar of Abhilash
Abhilash

This is the command that can be executed using PowerCli

Get-VM | Get-View | Sort Name | Select Name, @{N="ChangeTrackingStatus";E={$_.Config.ChangeTrackingEnabled}} > c:\cbt.txt


It will fetch all the results and store it in a txt file. So  you will know which VM's have it enabled and which don't.

Depending on the environment it will take a while to fetch the data and store it in the text file.
Avatar of Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Make sure the virtual machine version is v7 and above.

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.
Avatar of sara2000

ASKER

will it enable if i upgraded the hardware to ver 7 or above?
The first requirement is the VM, must be at v7.

and then Change Block Tracking is enabled, usually it's enabled by default.

But check, the vmx settings.
Andrew,
can we check this while the vm is on?
ASKER CERTIFIED SOLUTION
Avatar of Abhilash
Abhilash

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Yes, you can check, while the VM is on, but you cannot change it, if the VM is on!
Thank you fro your help. One more help.
I have a VM is in on a  host ver 4.1 and this vm  has four vmdk files in  multiple shared storage.
I did ssh into the host where this VM is homed.
I did vmware-cmd -l and noticed that vmfs/volumes/some random number/myserver/myserver.vmx

I can only see two vmdk .
how do I find the other two vmdk files?
@Sara2000, one more help, is one more question, and as it's completely off-topic and unrealted to the OP a new question.

To maintain, the thread, please ask one question per post.

Please post a new question and myself or other Experts will be glad to assist.