Fibre Channel and SAS drives can handle more IOPS than SATA drives, making them a good choice for applications that generate a lot of random IO. From a MBPS standpoint SATA isn’t quite as fast as Fibre Channel and SAS but the delta is much smaller, making SATA acceptable for workloads that mainly generate sequential IO.
RAID 1+0 provides the best performance for random workloads. RAID 5 and 6 provide good performance for sequential workloads. The workload, the mix of; random, sequential, reads and writes has a major impact on performance, with writes putting the biggest load on disk drives.
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 (Spindle speed): Measured in revolutions per minute (RPM), most disks you’ll consider for enterprise storage rotate at speeds of 7,200 or 15,000 RPM. A higher rotational speed is associated with a higher performing disk
· Average latency: The time it takes for the sector of the disk being accessed to rotate into position under a read/write head.
· Average seek time: The time (in ms) it takes for the hard drive’s read/write head to position itself over the track being read or written. There are both read and write seek times; take the average of the two values.
To calculate the IOPS range, use this formula:
Average IOPS: Divide 1 by the sum of the average latency in ms and the average seek time in ms (1 / (average latency in ms + average seek time in ms)
The IOPS RAID penalty
For “read” IOPS its simple, RAID Read IOPS = Sum of all Single Disk IOPS
For “write” IOPS it is slightly more complicated as there is a penalty introduced:
RAID Level IO Penalty Write IOPS
RAID 0 1 175
RAID 1 2 85
RAID 5 4 40
RAID 6 6 30
RAID DP 2 85
So how do we factor this penalty in? Well it’s simple for instance for RAID-5 for every single write there are 4 IO’s needed. That’s the penalty which is introduced when selecting a specific RAID type. This also means that although you think you have enough spindles in a single RAID Set you might not due to the introduced penalty and the amount of writes versus reads.
(TOTAL IOPS × % READ)+ ((TOTAL IOPS × % WRITE) ×RAID Penalty)
So for RAID-5 and for instance a VM which produces 1000 IOPS and has 40% reads and 60% writes:
(1000 x 0.4) + ((1000 x 0.6) x 4) = 400 + 2400 = 2800 IO’s
The 1000 IOPS this VM produces actually results in 2800 IO’s on the backend of the array.