We often hear frontend and backend IOPS. What does it stand for?
I will try to simplify the difference in both.
Frontend: Stands for IOPS required by an application / server.
Backend: Stands for IOPS required by storage array to satisfy frontend requirement, this calculation is required due to raid penalty.
I will try to explain it with below example.
A database application required 1500 IOPS at peak workload. Expected Read Write ratio is considered to be 60% (Read), 40% (Write)
For example storage array needs to be configured with Raid 5. 146 GB 15K SAS disk.
Let us assume the drive in use can provide approximately 150 IOPS.
So for calculating backend IOPS we need to use below formula.
Backend IOPS = Read IOPS + (Write IOPS * Raid Penalty)
Backend IOPS = 900 + (600 * 4)
Backend IOPS = 3300 IOPS
Hence to cater 1500 frontend IOPS requirement, we need to arrange for 3300 IOPS at the backend storage array.
Once we know this backend IOPS figure, we need to find out number of disks required for supporting required IOPS.
Total Disks = Required IOPS / IOPS per disk
Total IOPS = 3300 / 150
Total IOPS = 22
Minimum 22 disks will be required to cater 1500 IOPS requirement.
With the above formula, we can check for the other raid levels and required disk count.
Raid 0 = Write Penalty 1
Raid 1 = Write Penalty 2
Raid 5 = Write Penalty 4
Raid 6 = Write Penalty 6
Raid 10 = Write Penalty 2