Recently I was asked how to go about calculating RAID penalties. So I thought a simple explanation can help others with same question.
First let us do a quick review of the various disk drives out there from an IOPS prospective.
Drive Type Average IOPS
7,200 rpm SATA 80 IOPs
10,000 rpm SATA 125 IOPs
10,000 rpm SAS 140 IOPS
15,000 rpm SAS 180 IOPS
SSD 6,000 IOPS
Now it is easy to add drives to get to your IOPS target right? Not so fast! In most production environments you will need some sort of RAID and with RAID you will need to take into consideration the “RAID Penalty”. Reads from disk have no penalty, Writes to disk on the other hand incur a penalty due to parity.
The type of RAID determines the total number of disks required to support the workload based on the amount of IOPS and Read/Write ratio and Write penalty. To help better explain, let us use an example. Lets say we have 1,000 IOPS target with a mix of 50/50 (50% (500) reads and 50% (500) writes) Calculations will look something like this:
RAID 5 for total IOPS = 500 Reads + [500 Writes x 4 (Penalty)] = 2,500 IOPS
RAID 6 for total IOPS = 500 Reads + [500 Writes x 6 (Penalty)] = 3,500 IOPS
RAID 10 for total IOPS = 500 Reads + [500 Writes x 2 (Penalty)] = 1,500 IOPS
So what does this mean?
This means that to meet 1,000 IOPS target in RAID 5 configuration with 50/50 ratio, we will need a storage disk capable of at least 2,500 IOPS. For RAID 6 we will need a disk capable of 3,500 IOPS and for RAID 10 we will need a 1,500 minimum IOPS disk.
I hope the above simple example explains how to calculate total IOPS for each RAID configuration.
Thank you for reading.