In a situation where the IOPS cannot be gathered from the physical SAN storage due to either limitations or access. The IOPS is required to see if the current solution will run the workload once it has been virtualised and if the hardware it will end up living on has the capacity.
The calculation is (MBps / Block size) * 1024.
To use the calculation the block size of the SAN needs to be understood and in the following it is assumed that a 64k block size has been used.
So… We have run PerfMon for 24 hours over the weekend and the same in the week. This is against the virtual machine or physical that is to be moved. I this case it is a SQL servers to give us the peak data throughput. Using PerfMon will allow us to see the average and peak.
The findings are listed below:
- Physical – Read 282 MBps
- Physical– Write 175 MBps
- Virtual – Read 495 MBps
- Virtual – Write 326 MBps
From these I can work out the I/O
- Physical – Read (282 / 64) * 1024 = 4512
- Physical – Write (175 / 64) * 1024 = 2800
- Virtual – Read (495 / 64) *1024 = 7943
- Virtual – Write (326 / 64) * 1024 = 5216
Now, with the virtual server it is known to have some caching that is involved, and that the actual data being written to the disk is 2900 IOPS Read and 1600 Write (Reported from the SAN console).
Which roughly translates to 36% of the 7943 is actual disk I/O and 64% is cached for reads and 31% is actual disk I/O and 69% is cached for writes.
Taking these numbers, I can apply the same percentages to the physical server
Reads total being 4512 IOPS, these are then broken down into 1624 IOPS actual disk I/O and 2888 IOPS cached. Writes total being 2800 IOPS, broken down to 868 IOPS actual disk I/O and 1932 IOPS cached.
Physical server would need 2492 total IOPS
I hope this helps people out when you are not able to run any other tool to gather the data required.
By Paul Wood