Skip to main content

Measure the changed data in your VMware environment


Pasqual Döhring

The problem

Have you ever needed to know how much data you need to backup incrementally from your VMware environment? Because you need to design a new backup storage? Because you need to know, if your WAN is capable of transferring everything into the cloud or from your branch office? Because you need to know the change rates of your VMs?

 

The solution

Now you can track these data changes with a simple script! Let me introduce you to GetChangedBlocksV2!

 

It is a PowerShell script which uses the VMware PowerCLI to read the changes from your VMware disks each time it is run and saves it as CSV. It keeps track of the changes between each run, between each day and between each week. In order to get good results, you need to run this tool on a regular basis, e.g., with the Task Scheduler.

There is even a basic Excel file included to analyze the results for you. But if you have better tools feel free to utilize them.

 

Where to get it?

https://github.com/turboPasqual/GetChangedBlocksV2

 

Other stuff

Why just VMware? Because VMware offers a good API to get everything that is needed. Many environments consist of mainly VMware VMs and therefore the majority of the data gets tracked. Also, everything else (like Hyper-V, physical machines, NAS filers) is either very difficult to track or at least too much work for me at the moment.

You can do the same with Veeam One… No, you cannot! Veeam One has a very similar approach to track changes but it tracks every single change and not just changes between snapshots. Let’s make an example: You have a disk with 1 GB of unique data. You take a backup as a baseline. Now you change every single byte 5 times and make an incremental backup. Since every block has changed, you will get an incremental backup size of 1 GB and that is exactly what the script would report. Veeam One on the other side would tell you that there is 5 GB of changed data, which is not wrong but often not what you want to know.

 

Excerpt from the official script description

PowerShell script to measure the amount of disk changes on VMware VMs each time it is run.

This scripts measures the amount of disk changes on VMware VMs each time it is run.
The main/original purpose is to get real data of the daily and weekly incremental changes of your
VMs in order to size your data protection / backup solution properly.
It measures all VM virtual disks for which Change Block Tracking (CBT) has been enabled.
The first time it is run, it creates a file containing baseline data (CBT change IDs and times).
Each subsequent run measures changes since the last run.
Additionally once a day/week (first run) it measures changes since the last day/week.
Note that every run creates a short-lived snapshot on every VM that has CBT enabled.

12 comments

StefanZi
Forum|alt.badge.img+3
  • Comes here often
  • 49 comments
  • February 7, 2022

Great work Pasqual.

Is your VeeamONE comparison based on VM Change Rate Estimation - Veeam ONE Reporting Guide or another report?


JMeixner
Forum|alt.badge.img+17
  • On the path to Greatness
  • 2650 comments
  • February 7, 2022

Great script, thank you :thumbsup_tone3:


falkob
Forum|alt.badge.img+13
  • Veeam Vanguard
  • 90 comments
  • February 7, 2022

Great script Pasqual, really useful as you already know from my feedback ;)


Pasqual Döhring
StefanZi wrote:

Great work Pasqual.

Is your VeeamONE comparison based on VM Change Rate Estimation - Veeam ONE Reporting Guide or another report?

Hi Stefan. Thanks for your feedback… You are right. That is the the report which I am referring to.


Chris.Childerhose
Forum|alt.badge.img+21
  • Veeam Legend, Veeam Vanguard
  • 8459 comments
  • February 7, 2022

Great script and thanks for sharing. :thumbsup_tone2:


marcofabbri
Forum|alt.badge.img+13
  • On the path to Greatness
  • 990 comments
  • February 9, 2022

Script corner is becoming full of gems, great work @Pasqual Döhring 


Chris.Childerhose
Forum|alt.badge.img+21
  • Veeam Legend, Veeam Vanguard
  • 8459 comments
  • February 9, 2022
marcofabbri wrote:

Script corner is becoming full of gems, great work @Pasqual Döhring 

Yes it is.  Once place I visit 2-3 times per week to see what is new.  Trying to find some time to post my own liittle things there.  :joy:


Forum|alt.badge.img+4
  • Experienced User
  • 576 comments
  • March 8, 2022

bb5890
Forum|alt.badge.img
  • Comes here often
  • 10 comments
  • March 11, 2022

Very useful for our environment . Thanks for sharing with us!


Thommo_Nick
  • New Here
  • 2 comments
  • November 7, 2022

Nice work thanks for sharing with the community Pascal


Scott
Forum|alt.badge.img+9
  • Veeam Legend
  • 997 comments
  • November 8, 2022

Very handy. Thanks for the share. 


  • New Here
  • 7 comments
  • March 29, 2023

Thanks for the script!

Does anyone know how much time (approximately) does it takes to run a script for 1000 VMs in production environment?