3

I'm investigating some 4TB database systems and I'm comparing differences between RAID-10 & RAID-50.

I know how to calculate the IOPS for common RAID levels like RAID-1, RAID-5 & RAID-10. However, I am unsure how to calculate IOPS for RAID-50 & RAID-60 systems, specifically with respect to the RAID Write penalties which are the bane of RAID-5 & RAID-6 system.

How would I calculate the IOPS for a RAID-50 system? Should I combine the RAID-10 & RAID-5 metrics somehow? What is the RAID write penalty for a RAID-50 or RAID-60 array?

We know that effective IOPS for RAID arrays can be calculated with the following formula

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Where:

  • Ieffective is effective number of IOPS
  • Isingle is a single drive's average IOPS.
  • n is number of disks in the array
  • READ% is the fraction of reads taken from disk profiling
  • WRITE% is the fraction of writes taken from disk profiling
  • F is the RAID write penalty (The number of operations required for each write). RAID Penalties for common raid levels are:

    RAID Level      Write Penalty
    RAID-0          1   
    RAID-1          2   
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

But what is the write penalty for a RAID-50 system?

Note: For people who are wondering about ZFS: IOPS used for ZFS RAIDZ, RAIDZ2 and RAIDZ3 are much, much improved compared to traditional RAID5 & RAID6: See Is calculating IOPS for ZFS RAIDZ different then calculating IOPS for RAID5 & RAID6?

Stefan Lasiewski
  • 22,949
  • 38
  • 129
  • 184
  • Are you ignoring the effects of caching? – ewwhite Aug 14 '13 at 22:58
  • For the purpose of calculating IOPS, yes as I am trying to get an apples-to-apples comparison. I should probably look at caching effects also, but that's another question. – Stefan Lasiewski Aug 14 '13 at 23:02
  • Wait, did you provide a total number of disks? – ewwhite Aug 15 '13 at 12:58
  • No I did not. First need to determine the amount of drives necessary to provide a certain number of IOPS. Next step would be to find a server type (and chassis type) which can provide that many drive slots. A common 2U server with 8 drive slots cannot provide a 4TB array at 800 IOPS, for example. – Stefan Lasiewski Aug 15 '13 at 17:17
  • And what type of controller? WIll this be hardware RAID or no? If software,w ill it be ZFS? If so, there are other considerations. – ewwhite Aug 15 '13 at 17:23
  • It's likely a LSI hardware controller. There's a small chance that these will be FreeBSD with ZFS. – Stefan Lasiewski Aug 15 '13 at 17:34
  • If ZFS, the calculation is different. – ewwhite Aug 15 '13 at 17:50
  • And that's something I've been wondering for a while, but I have not found a conclusive answer. Therefore, I will ask a new question: http://serverfault.com/questions/531319/is-calculating-iops-for-zfs-raidz-different-then-calculating-iops-for-raid5-ra – Stefan Lasiewski Aug 15 '13 at 18:43

1 Answers1

2

Here are the basics of the calculation:

  • A 16-drives RAID-50 array has the same read and write IOPS as two 8-drives RAID-5 arrays.
  • A 16-drives RAID-60 array has the same read and write IOPS as two 8-drives RAID-6 arrays.

You have to calculate the IOPS of the RAID arrays being used to build the block, then add them together.

You can't make an easy formula for these spanned RAID types. You would need to include the number of underlying RAID groups and the characteristics of each, calculating each member raid and adding them together.

Basil
  • 8,811
  • 3
  • 37
  • 73
  • That assumes two parity groups on the RAID 50. What if the OP were to use 4 parity groups on the RAID 50? – ewwhite Aug 15 '13 at 12:57
  • 1
    then it would be the same IOPS as the sum of the 4 underlying raids. Raid 50 and 60 are basically tying together multiple raids to do the same job. – Basil Aug 15 '13 at 13:02
  • So if I had two RAID 5 arrays which could each provide 500 IOPS (for example), then my RAID50 array would be 500 IOPS x 2 = 1000 IOPS? – Stefan Lasiewski Aug 15 '13 at 17:18
  • 1
    Yes, because you're striping across parity groups. – ewwhite Aug 15 '13 at 17:22