Lot of  people do not focus on the importance of IOPS calculation when sizing their storage . Understanding of IOPS calculation along with RAID penalty and Workload Characterization can help them size their storage for optimal performance. Of course there are various other parameters like Cache , I/O request size , Protocol of access(FC/iSCSI),Type of I/O (Sequential/Random) etc.. that has to be considered in a storage design but will restrict myself to the importance IOPS,RAID penalty and workload characterization.

IOPS- Input/Output Operations per second :

Any read/write operation that is performed on a disk is considered an IO.Number of Read/Write that you can perform per second is called IOPS.

There are three types of I/O as listed below

  • Read IOPS – Total number of Read operations performed per second
  • Write IOPS – Total number of Write operations performed per second
  • Total IOPS – Total number of Read/Write operations performed per second ( Total IOPS = Read IOPS+Write IOPS)

Some industry standard numbers on IOPS

RAID Penalty:

Any read operations that are performed on disks does not incur any penalty as all disks can be used for Read operations whereas it is not the case with Write operations. Based on RAID configuration  , penalty on write operations performed  varies. For example ,

In a RAID 1  scenario when a write has to be performed to disks, data has to be written twice (once each on both disks) and hence the raid penalty on Write operation on RAID 1 would be 2.

In a RAID 5 scenario when a write has to be performed to disks, Raid penalty for write operation would be 4 ( Read existing data, Read parity,Write new data,Write new parity).

Work Load Characterization :
Work Load characterization is basically understanding the percentage of Reads and Writes that would make the total IOPS of your application. For example , in a VDI environment the total IOPS could be 90% write and 10% Read. Understanding Workload characterization is going to be critical as this would help us choose the optimal RAID for the environment. A write intensive application is a good candidate for RAID 10 whereas Read intensive application can be hosted on a RAID 5 .
IOPS Calculation and how workload characterization is critical to decide RAID type :
There are two possible scenarios when it comes to IOPS calculation. One of the scenario is in which you have certain number of disks and you wish to know how much IOPS would these disks provide ? Second scenario is when you want to know how much disks is required to achieve certain IOPS ?
Calculating IOPS from disks available:
Let us consider a server/storage with 8  450GB 15,000 RPM drives. We will consider two scenarios of Workload 80%Write20%Read and another scenario with 20%Write80% Read. Also we will calculate IOPS that cab be achieved in RAID5 and RAID 10 Scenario.
Total Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS =(((Total Raw IOPS×Write %))/(RAID Penalty))+(Total Raw IOPS×Read %)
In our example ,
Total Raw IOPS = 175*8 = 1400 IOPS ( Since 15K RPM disk can give 175 IOPS)
When on RAID-5,
Scenario 1(80%Write20%Read) Functional IOPS = (((1400*0.8))/(4))+(1400*0.2) = 560 IOPS
Scenario 2(20%Write80%Read) Functional IOPS = (((1400*0.2))/(4))+(1400*0.8) = 1190 IOPS
When on RAID-1,
Scenario 1(80%Write20%Read) Functional IOPS = (((1400*0.8))/(2))+(1400*0.2) =  840 IOPS
Scenario 2(20%Write80%Read) Functional IOPS = (((1400*0.2))/(2))+(1400*0.8) =  1260 IOPS
Calculating number of Disks required to achieve certain IOPS:
Consider a scenario where you will have to decide on RAID and number of disks required to achieve 2000 IOPS with a workload characterization of 80%Write20%Read and another scenario with 20%Write80% Read.
Total number of Disks required = ((Total Read IOPS + (Total Write IOPS*RAID Penalty))/Disk Speed IOPS)
Total IOPS = 2000
Note : 80% 0f 2000 IOPS = 1600 IOPS & 20% of 2000 IOPS = 400 IOPS
When on RAID-5,
Scenario 1(80%Write20%Read) - Total Number of disks required = ((400+(1600*4))/175) = 39 Disks approximately
Scenario 2(20%Write80%Read) - Total Number of disks required = ((1600+(400*4))/175) = 18 Disks approximately
When on RAID-1,
Scenario 1(80%Write20%Read) - Total Number of disks required = ((400+(1600*2))/175) = 21 Disks approximately
Scenario 2(20%Write80%Read) - Total Number of disks required = ((1600+(400*2))/175) = 14 Disks approximately
As we see from above examples , There are lot many parameters to consider when sizing storage other than disk size. Understanding of IOPS , RAID penalty and workload characterization is very critical . When the work load is write intensive it is better to opt for RAID 10 whereas in a Read intensive workload it is better to opt for RAID-5 where we would get required performance as well as space.