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

**Calculating throughput:**

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

**Sizing Datastore:**

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
- RTO

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,

Mordi