0

I noticed that RAID 5 has been used for a lot of critical application such as SQL server machine. However RAID 10 seems to be a lot more robust. But not much people using it. Any reason why or when should we consider RAID 10 or never?

2
9

This question will depend greatly on your hardware, server workload and storage capacity.

For example, Raid 10 can have considerable performance increases over Raid 5 (especially on random or small writes), but storage capacity is cut in half. The performance differences may not even be noticeable depending on the load, so the Raid 5 with the extra space may be more appealing.

Let's assume we have 12 1TB hard drives. In a raid 5 we would get:
* Usable Space: 10TB (using base-2, what your operating system would see)
* Fault Tolerance: 1 drive can fail
* Read Speed: 11x
* Write Speed: < 1x

Pro's:
* The best storage efficiency
* High sequential read performance

Downsides to Raid 5:
* Rebuilding a bad drive can take very long time and will cause a medium performance decrease during the rebuilding process. You will have zero fault tolerance during this process.
* Overall performance degrades as the % of writes increase. This is due to I/O balancing.

Now take 12, 1TB hard drives in a raid 10:
* Useable space: 5.4TB
* Read speed: 12x (theoretical)
* Write Speed: 6x (theoretical)
* Fault Tolerance: can lose 1 drive in every raid 1 array, 6 in this example. But you cannot lose 2 drives in a single raid 1

Pros:
* High fault tolerance (as long as two drives in a mirror do not fail)
* Fast reads, writes, and random/small writes (important in databases)
* Fast rebuild times in case of disk error

Cons:
* 50% of your disk space is gone, and this is usually the deal breaker for most wihtout large budgets.
* Scalability can get expensive

For me, if I am on the fence between a 10 or 5 then I usually go with a RAID 50. This is a good balance between the two (cards that support Raid 50 can get expensive though). Raid 50
* Useable space: 9TB
* Read Speed: 10x
* Write Speed:< 2x * Fault tolerance: 2 drives
* Faster than raid 5 write speeds
* Good storage efficiency
* Fast read speeds
* Less of penalty to rebuild bad disk
* Retain fault tolerance if one disk fails

Again, a lot of variables will go into performance on these things: quality of the raid card, speed of the drives, number of drives in your pool, disk/strip alignment in databases, etc.

1

As mentioned before, most go straight for RAID5 due to cost issues. I use RAID10 for my small setups at work due to them being easier to recover if something goes wrong. If more than one disk goes, there is nearly 0 chance of recovery. With RAID10, for files at least, you have the ability to recover partial bits when things go wrong.

+1 for the BAARF above.

1

Wikipedia say :

The choice between RAID 10 and RAID 5 for the purpose of housing a relational database depends upon a number of factors (spindle availability, cost, business risk, etc.) but, from a performance standpoint, it depends mostly on the type of I/O expected for a particular database application.RAID 10 is often chosen because it offers a slight speed improvement over RAID 5 on sustained reads and sustained randomized writes.

For details visit :

http://en.wikipedia.org/wiki/RAID#RAID_10_versus_RAID_5_in_Relational_Databases

http://www.thegeekstuff.com/2010/08/raid-levels-tutorial/

0

For RDBMS's, some good arguments at: http://www.baarf.com/

RAID 5 is used a lot due to cost issues, and many people use it as a "default" without thinking further.