Since I joined the inbound social media team there is one question that makes me raise my eyebrows.
How much storage performance will be required for my IT environment? Mainly how much IOPS are required for my IT storage system?
Wow what a question right? So I thought to myself I need to educate myself in this area to learn some more of how this question should be answered. So this will be a high over view to try to help you get an understanding of how we calculate IOPs.
As you know when it comes to measuring storage performance, IOPS are the common way to measure this. But do not get this confused with the overall performance, conditions of the environment have to be factored in so let’s just take this as a guide and when you hear you get ‘x’ number of Iops per disk don’t take it as gospel! There will be other factors that will affect the performance you will receive from your storage device.
IOPS calculations vary based on the kind of workload being handled. In general, there are three performance categories related to IOPS: random performance, sequential performance, and a combination of the two, which is measured when you assess random and sequential performance at the same time.
Every disk in your storage system has a maximum theoretical IOPS value that is based on a formula. Disk performance — and IOPS — is based on three key factors:
- Rotational speed
- Average Latency
- Average Seek time.
Most common disks types have a good rule of thumb, how much IOPS are expected on average
7,200k SATA = 75 IOPS
10,000k SATA =125 IOPS
10,000k SAS = 140 IOPS
15,000k SAS = 175 IOPS
Where SSD drives will be off the charts. Some can return 6000 + IOPS!!
So we have an idea of what drive IOPS can be produced but as we know this is just the tip of the iceberg if only it was as easy as that. We now have to factor in the Raid groups and the effect they have on performance.
Determining which type of RAID to use when building a storage solution will largely depend on two things; capacity and performance. As this blog is on performance I will focus on this.
Now as we have a customer who will more than likely want to have RAID set up for that extra protection of his data (well we would hope so). The original IOPS we were getting from the drive will no longer be the same. We can’t get the same amount of IOPS because there will be a need for an equation or calculation written to the disk so if there was a failure we would be able to recover.
We know we can’t complete the write of a disk until both the data and the parity info have been entirely written to disk, in case one of the operations fails. Waiting the extra time for the parity info to be written is the RAID Penalty. This has a direct effect on the performance.
Each RAID group writes parity differently to disk and therefore has a different write penalty associated with it. In the table below you will see the different penalties associated with the different RAID groups.
Also a RAID 0 stripe has no write penalty linked with it since there is no parity to be calculated. A no RAID penalty is expressed as a 1.
Raid 1 – it’s simple to calculate the write penalty for Raid 1 as it’s a mirror so the raid penalty would be two as there is two writes to take place one on each write of the disk.
RAID 5 takes quite a load on the write penalty because of how the data is laid out on disk. RAID 5 is used over RAID 4 in most cases because it distributes the parity data over all the disks. In a RAID 4 setup, one of the disks is responsible for all of the parity info, so every write requires that single parity disk to be written to, while the data is spread out over 3 disks. RAID 5 changed this by striping the data and parity over different disks.
RAID 6 will be almost identical to RAID 5 except instead of calculating parity once, it has to do the job twice therefore we have three reads and then three writes giving us a penalty of 6.
Take note from my research that since we don’t have to calculate parity for a read operation, there is no penalty associated with this type of IO. Only when you have a write to disk will you see the RAID penalty come into play. With the exception of RAID 0, which is purely an array of disks laced together to produce a bigger storage pool, RAID configurations count on the fact that write operations actually result in multiple writes to the array. This characteristic is why different RAID configurations are suitable for different tasks.
Ok so we now have a rough idea of the Drive IOPS and Raid write penalty we can now have a guide into calculating IOPS. This is excluding other factors that could affect performance, such as connectivity, network etc.
So to calculate the IOPS we need to use this formula.
Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS = (Raw IOPS * Write % / RAID Penalty) + (RAW IOPS * Read %)
So let’s use a real example and use the formula.
Let’s say we have five SATA disks at 7200 RPM which will give us a total Raw IOPS of 375 IOPS. (75 IOPS x 5 disks = 375)
If we were to put these disks as a RAID 5 setup, we would have no penalty for reads, but the writes would have a penalty of four. Let’s assume 50% reads and writes.
(375 Raw IOPS * .5 / 4) + (375 * .5) = 234.375 IOPS
As you can see we get 234.375 IOPS from this scenario.
This is a guide to give you an idea of what we can expect and from this we can also leverage and help our customers or if you are a customer looking to work out how much drives are required for performance purposes I hope I have made a clearer understanding in this.
This is my first of many blogs! You shall hear from me soon.
If there are any mistakes in my blog feel free to correct me in the comments I appreciate the feedback!
See you soon,
M.M. (upside down W.W, all Breaking Bad fans will understand)