This post is a continuation of Storage Calculation – Part 2; in this post we are going to talk about how we calculate storage throughput and datastore sizing for your design.
Note: This post will show basic calculations and will not take into account caching and tiering technologies
In the previous post we discussed IOPS, and now we will use the IOPS in a formula to calculate the throughput.
The formula to calculate the throughput is: Throughput in MB/s = Workload IOPS * IO size / 1024
For example :
A Company uses storage to archive and steam video surveillance, the I/O size for this workload is 64K and the total workload IOPS is 5000 (for all cameras)
lets plug the numbers = 64k * 5000 / 1024 = 312.5 MB/s
When sizing Datastore, we need to consider the following:
- SAN/NAS volumes or filesystem size limitation
- VMFS5 limitations
- vmdk size limitation
- Number of VM in a datastore
- Network bandwidth for backup / replication
For me the RTO is critical. Lets assume that we have an RTO of 1 hour, that means that I have to backup or replicate all the VM on that datastore in one hour and we need to consider our network bandwidth.
Lets also assume that we have a 10Gb dedicated line to our replication site, theoretically that means that my bandwidth is 1250MB/s (i know that we don’t actually get this number due to TCP overhead, protocol speeds and much more), but with 1250MB/s this means that in one hour we can pass 4.5 TB. So now I can calculate the amount of VM on the datastore.
Number of VM’s per datastore:
Now that we know that we can pass 4.5TB in an hour on the dedicated line, we can store up to 4.5TB in our datastore. So how many VM’s can we store?
We need to consider the following in regard to VM’s:
- MAX VMFS5 datastore size = 64TB
- MAX LUN size on your back end storage = depends on the SAN vendor
- VM size – how much capacity the VM needs
- VM memory – .vswap, which takes space in the datastore, needs to be included in the formula
- VM memory reserve – if VM has memory reserve, we need to account for that (Allocated Memory to VM – Reserve Memory to VM = Size of Swap file)
- IOPS requirements – can the datastore provide the total IOPS requirements? are we using the right RAID and disk configuration?
- Latency and queue depth configuration – what is the configuration of the queue depth? This can impact latency and overall IOPS
- Here’s great article about this subject from Frank Denneman: http://frankdenneman.nl/2009/03/04/increasing-the-queue-depth/
- To change the max queue depth config for each HBA vendor look at this KB. https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1267
The basic formula is with no memory reserve:
Number of VM’s X (VM size + VM memory) + VM slack % (normally 20%)
Let’s plug the numbers for 20 vm’s each vmsize = 150G with 16G of RAM :
20 * ( 150G + 16G) + 20% = 3984GB which is 3.9TB which can fit in our 1 hour RTO
Thanks for reading,