I have heard/read different performance stories on the various raid flavors. I am curious what the agreed upon best answer is.
One worthwhile location to check out is StorageReview.com's Comparison of RAID Levels
But focused on the answer:
LEVEL | CAPACITY | STORAGE | FAILURE | RDM READ | RDM WRITE | SEQ READ | SEQ WRITE | 0 | S * N | 100% | 0 | **** | **** | **** | **** | 1 | S | 50% | 1 | *** | *** | ** | *** | 5 | S * (N-1)| (N-1)/N | 1 | **** | ** | *** | *** | 6 | S * (N-2)| (N-2)/N | 2 | **** | * | *** | ** | 0+1 | S * (N/2)| 50% | 1 | **** | *** | **** | *** |
Capacity: Size of drive
Storage: Amount of space on all drives actually useable
Failure: Number of drives that can fail
Agreed upon best answer...
I'd say it's application specific. If you're a gamer who wants to speed everything up and throw caution to the wind, RAID0 is great! You double your chances of disk failure but if your data are unimportant, who cares?
RAID1 is just the opposite; it provides an hot backup of all your data and can withstand a single disk failure, which halves the probability of data loss.
RAID5 and RAID6 are more expensive (need more disks) but have the benefit of being able to withstand disk loss while providing a handy speed increase. You halve your probability of data loss with RAID5 and quarter it with RAID6 (can withstand two lost disks and function.)
When it comes to RAID1+0 v. RAID5/6, RAID5/6 will provide a superior speed increase (due to a higher level of striping) than RAID1+0 but have the potential to slow down more in the event of a disk loss (since data has to be reconstructed from parity information.) RAID1+0, however, will not lose any speed in the event of a disk loss (since there's not much bandwidth gain from having a mirrored set.)
As far as restoring functionality from a broken set (out of 1+0, 5 and 6) 1+0 would be the easiest to do so. You would only have to copy the data from the the mirror drive to the new drive whereas with RAID5/6, all drives in the array are involved in the recreation of a lost disk's data.
Hope this helped :)
Chealion's answer is perfect, but I would add that the answer to your question (what is best), depends primarily on three factors:
The cheapest solutions (which also can operate with the smallest number of disks) are RAID 0 and 1, which are optimized for speed and data loss respectively. The more expensive solutions require more drives, more power, more cooling, and typically more expensive RAID controllers. Using RAID built on to your motherboard (software based) is different (and slower) from buying a real multi-hundred-dollar-battery-backed RAID controller that moves much of the heavy-lifting to hardware.
The priority refers to the importance you place on data loss/speed/capacity (pick any two). If you have, say, 4 500GB drives to work with... configured as RAID 0 you would have 2TB of capacity and slightly less than 4x the speed of a single drive. However, if any of those drives fails, all of your data is lost. If you use those same 4 drives as RAID 1, you only have the capacity and speed of a single drive, but you could have three of the drives fail and not lose any data. Either RAID 0 or 1 with that many drives would be somewhat wasteful, and levels such as RAID 5 or 10 are a good middle ground.
Finally, workload makes a difference. RAID 5 and 6 have slower write speeds than several other RAID levels due to the fact that a checksum must be calculated and written for every write (while read speeds are as fast as you have spindles). Some workloads (such as databases) may be very write intensive, and running RAID 5 can make a noticeable difference with performance. Write intensive workloads often work better with RAID levels such as 10, 50, 60, etc. Other workloads (such as web servers) are primarily read intensive, and writing is not a priority. In those cases, it makes sense to use a cheaper RAID level such as 5 than to invest in the hardware needed for RAID 10/50/60.
Please help me fill this in! I'm making this table a community wiki. I didn't see a way to make a table in markdown and I don't want everyone to reinvent the wheel. So please help me fill this in (and fix it if I've got mistakes).
Theoretical Read/Write performance for various RAID levels:
|_____No_Failures____|_____One_Failure______ ________|_Read_____|__Write__|__Read____|___Write___ RAID0 | 1x - Nx | Nx | FAIL | FAIL RAID1 | Nx | 1x | (N-1)x | 1x | | | | RAID5 | | | | RAID6 | | | | | | | | RAID1+0 | | | |
I have seen RAID6 implementations that were about as fast as RAID5, and some that were MANY times slower. You have to test with great caution when using RAID6 - it's the right choice if it works, but it can be a disaster.
Any recommendation for anandtech or tomshardware for serious advice such as this should be avoided. These are serious issues, and those sites do not do serious testing. They're jokes. Maybe they started off legitimate, but they simply aren't now.
I have seen workloads that were random-write intensive, with huge amounts of cache, where RAID5 was just as fast or even faster than RAID1+0. This is because the data was being written at a sufficiently slow rate (lots of writes, but all small blocks) where the cache could keep up flushing it to disk.
You have to test your workload if you really care.
In very general terms 0 is quickest, then 10, then 1, then 50, then 60, then 5, then 6 - once again, these are in general. Have a look at a site like anandtech.com or tomshardware.com for more detailed breakdowns for specific types and speeds of disks/arrays.
If speed is the ONLY concern, then RAID0 wins hands down no comparison. But it is rare to only care about speed. RAID0 has no redundancy at all and is far more likely to fail than a single drive so be careful how you use it.