Estimating bandwidth requirements for Zerto Replication

 

One thing that I run across quite a bit is customers that want to implement Zerto for their replication needs, but are unsure of what the bandwidth requirements would be for their organization.  Luckily, Zerto provides a WAN sizing tool just for that.

First thing, we want to make sure we are collecting the needed statistics in vCenter.

  • In the vSphere Web Client, select the vCenter object, and select your vCenter server.
  • Select the Manage tab, and then under General, choose Edit.
  • Set all statistics to level 2

settings

At this point, we want to allow at least 24 hours to pass, so we are sure we have collected the proper statistics.

Next, we will run a powerCLI script to collect the average writes in KB/s for each VM and export to a CSV file. Be sure to edit the variables fro vCenter server and credentials.

# Beginning script
# Section 1 – vCenter Server settings
$vcentertocollectstatsfrom = “192.168.1.101”
$vcenterusername = “root”
$vcenterpassword = “P@ssw0rd”
# Section 2 – Collection time frame
$noofdaystocollect = “7”
# Section 3 – CSV Output filename and directory
$csvoutput = “C:\scriptoutput\ZertoOutput.csv”
# Nothing to edit below this line
function LoadSnapin{
param($PSSnapinName)
if (!(Get-PSSnapin | where {$_.Name -eq $PSSnapinName})){
Add-pssnapin -name $PSSnapinName
}
}
LoadSnapin -PSSnapinName “VMware.VimAutomation.Core”
connect-viserver -server $vcentertocollectstatsfrom -user $vcenterusername -password $vcenterpassword
$report = @()
Get-VM | %{$stats = Get-Stat -Entity $_ -Stat disk.write.average -Start (Get-Date).adddays(-$noofdaystocollect) -ErrorAction SilentlyContinue
if($stats){
$statsGrouped = $stats | Group-Object -Property MetricId
$row = “” | Select Name, WriteAvgKBps, WriteAvgMBps
$row.Name = $_.Name
$row.WriteAvgKBps = ($statsGrouped | where {$_.Name -eq “disk.write.average”} | %{$_.Group | Measure-Object -Property Value -Average}).Average
$row.WriteAvgMBps = $row.WriteAvgKBps/1024
$row.WriteAvgKBps = “{0:N2}” -f $row.WriteAvgKbps
$row.WriteAvgMBps = “{0:N2}” -f $row.WriteAvgMBps
$report += $row
}
}
$report | Export-Csv $csvoutput
# End of script

 

Now, we should have a CSV file called ZertoOutput.csv that looks something like this:

script-output

By using the VM column, and the WriteAvgKBps column, we can plug it into the Zerto Wan Sizing tool, and see our bandwidth usage estimate.

 

bandwidth-estimate

As you can see, in our lab environment, we will need about 20 Mb/s for replication.  Be sure to add 20% for bursts, to ensure a low RPO at all times.  If the WAN link will be used for other traffic, size accordingly, and use Zerto’s built in throttling.

Contact a Zerto partner, or Zerto support to get your estimation.

This Post Has 3 Comments

  1. Mike Pagán

    I have tried your script out in a my environment and so far I have not been able to produce a spreadsheet that contains any data. The end result is completely blank (I even waited 24 hours). Have you run into this issue during the creation of the script and might you have an ideas on what I might be missing?

  2. Mike Pagán

    Nevermind, I just doubled back to this a day or so later and the stats generated. I suppose I hadn’t waited long enough the first time.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.