RAID Scaling Charts, Part 3: 4-128 kB Stripes Compared

RAID: A Quick Summary

We provided detailed explanations of the common RAID modes 0, 1 and 0+1, in Part 1 of our RAID Scaling Charts. Similarly, you will find information on RAID 5 and RAID 6 in Part 2 of the RAID Scaling Charts. The RAID modes differ primarily in how they work with multiple hard drives, and hence have different characteristics. RAID 0 is ideal for maximum performance, but data has to be backed up on a regular basis to avoid data loss in case of a drive failure. RAID 1 is ideal to securely store data, because data is mirrored onto another drive. RAID 5 requires a serious RAID controller and runs with three or more drives. The array will still be functional if a drive fails, but performance isn’t as good as it is in RAID 0. RAID 6 creates double redundancy and hence keeps you data safe even if two drives fail, but to do this, RAID 6 needs at least four hard drives.

RAID does not have to be set up with physical hard drives, but it is often possible to create RAID arrays out of other arrays or storage partitions such as JBOD, where several drives are concatenated. Cascaded RAID arrays such as RAID 0+1 are referred to as Nested RAID. Popular options are RAID 5+0, where two or more RAID 5 arrays are put into a RAID 0 on a higher level. Using RAID 5 or RAID 6 arrays, which are more secure than individual drives, reduces the risk of losing data in a RAID 0.

Most people will recommend creating RAID arrays out of identical hard drives. It is in fact highly important to at least use drives with identical capacities, because the smallest capacity represents the lowest common denominator for the array: 4x 500 GB in a RAID 5 result in 1,500 GB net capacity (remember that one drive is used for parity data). However, using 2x 500 GB and 2x 320 GB will only give you the capacity of 4x 320 GB - the remaining storage capacity on the two 500 GB drive remains unused. Storage experts will even recommend using identical hard drives, which means that the drives’ firmware should be the same. Again, the weakest link, meaning the slowest drive, will determine performance.

Powerful RAID controllers always come with an integrated cache memory, or with a memory slot allowing the user to install an individual amount of memory. Caches work the same way as the cache you find on hard drives, but their much larger capacities ensure that their impact is higher. We used a powerful SAS RAID controller when we reviewed the HyperDrive 4 by HyperOS / Accelerated Logic. If you look at the data transfer diagram you’ll notice that this RAM-based solid state drive can write almost 90 MB/s. However, the first hundred megabytes can be written at an amazing speed of 450 MB/s, just because the RAID controller’s cache memory will buffer the incoming data. This effect can also be very positive for RAID arrays, but you should make sure that your RAID controller is equipped with a battery backup unit (BBU), or that the system is backed up by an uninterruptible power supply (UPS) to make sure that the cached data doesn’t get lost in case of a power outage.

  • alanmeck
    I've found conflicting opinions re stripe size, so I did my own tests (though I don't have precision measuring tools like you guys). My raid 0 is for gaming only, so all I cared about was loading time. So I used a stopwatch to measure the difference in loading times on Left 4 Dead when using 64kb and 128kb stripe size. Results, by map:
    64kb 128kb
    No Mercy No Mercy
    Level 1: 9.15 Level 1: 9.08
    Level 2: 8.31 Level 2: 8.38
    Level 3: 8.24 Level 3: 8.31
    Level 4: 8.45 Level 4: 8.45
    Level 5: 6.56 Level 5: 6.63
    Death Toll Death Toll
    Level 1: 7.75 Level 1: 7.89
    Level 2: 7.19 Level 2: 7.26
    Level 3: 9.01 Level 3: 8.94
    Level 4: 9.36 Level 4: 9.36
    Level 5: 9.5 Level 5: 9.64
    Dead Air Dead Air
    Level 1: 7.68 Level 1: 7.47
    Level 2: 7.96 Level 2: 8.03
    Level 3: 9.08 Level 3: 8.87
    Level 4: 8.17 Level 4: 8.17
    Level 5: 6.98 Level 5: 6.84
    Blood Harvest Blood Harvest
    Level 1: 8.24 Level 1: 8.17
    Level 2: 7.33 Level 2: 7.33
    Level 3: 7.68 Level 3: 7.68
    Level 4: 8.45 Level 4: 8.31
    Level 5: 7.89 Level 5: 8.1

    I'm using software raid 0 on my GA-870A-UD3 mobo. The results for me were almost identical (128kb was faster by .07 seconds total). That being the case, I erred on the side of 128kb in order to reduce the potential for write amplification (I'm using 3x ocz vertex 2's). What's remarkable is that, despite using the stopwatch to measure times manually, the results were always either identical, or separated by intervals of .07 seconds. Weird, huh? Btw thanks to Tomshardware, you guys give a lot of helpful info.
    Reply
  • Does anyone want a slower system? why do we have to choose? why do we not just get the fastest option without having to do this? or is that to simple!
    Reply
  • I wish we could see what 256 does. Or even 1024 but that just sounds like a waste of space unless your doing Video or Music. Maybe gameing but RAM and bandwidth will always give you an edge if no one is hacked the game.
    Reply
  • Shomare
    I agree...can you please look into getting one of the new Areca 1882 controllers with 1+GB of mem on it and a dual core 800Ghz processor? We would like to see the larger stripe sizes, the larger processor, and the larger memory footprint's results! :)
    Reply
  • dermoth
    There is a misconception in this article. The point about capacity used: "For example, if you selected a 64 kB stripe size and you store a 2 kB text file, this file will occupy 64 kB.". This is totally wrong.

    The only incidence on size used is the FILESYSTEM block size as all files stored will be rounded up to the upper block (the last block being only partially filled). To the OS, the RAID array still looks like any other storage device and multiple filesystems block can be stored within a single stripe element.

    Also note that on RAID 5 & 6, the stripe size is the stripe element size X number of data disks, and writes are fastest when full stripes are written at once. If you write only 4k in a 384k stripe (ex 64k stripe element on a 8-disk RAID6) then all other sectors have to be read on disk before the controller can write out the 4k block & updated parity data.

    You will get better performance if you manage to match the filesystem block size to the FULL raid stripe size, and only in that case the statement above is true. Many filesystems offers other means of tuning the filesystem IO access patterns to match the underlying RAID geography without having to use excessively large block sizes, and most filesystems default to 4k block sizes which is also what most standalone rotational medias use internally since many years (even when they show 512k sector sizes for compatibility).
    Reply