Traditionally RAID 10 is regarded as faster for data writes than RAID 5 but beware when creating arrays with fewer disks.
I’m not going to go into detail about the various RAID levels so if you need a refresher check out the Wikipedia article.
Your Shiny New SAN
Consider this situation: in a small / medium enterprise you have a shiny new 18 disk SAN which is to be used for both VM hosting and file storage and you explain to the manager who controls the project/budget that for best VM performance you require RAID 10 and will hence “lose” 50% of the native storage on all the disks.
You visibly see the managers jaw drop as he’s already sold the total capacity of the SAN as part of his business case for the capital outlay. He suggests you use RAID 5 and he very cleverly tells you that you’ll only lose up to a third of the native storage capacity (and probably a lot less on a modern SAN).
You counter that RAID 5 is slower on data writes as each write requires parity information to be calculated (using SAN CPU time) and then written to another disk (using SAN write time).
Being professionals you end up compromising and splitting the SAN into two arrays of which the RAID 5 is the larger so the business get their visible file storage space and you believe you have ended up with a smaller but faster RAID 10 array. It’s only 6 months later when you realise your VM disks are running slower than you expected… So what went wrong?
The cause isn’t as you may have expected – the RAID types you selected – but in actuality it’s the number of disks in each array. Simply put more disks in an array equals more simultaneous reads and writes.
If ever you find yourself in this situation with a shiny new SAN ensure you do some throughput testing before the SAN is put into production.
Test, Test, Test!
In the case above test the following (at the very least you’ll get lots of practise destroying and creating arrays!).
* All 18 disks as a RAID 5
* All 18 disks as a RAID 10
* Whatever the proposed compromised split is between RAID 5 and 10
Test each array with a simple disk IO tool such as Microsoft’s SQLIO. For a simple test just create a LUN in each array and present it to a VM and then run your IO test on the VM against that disk. The testing parameters aren’t overly critical but you should ensure you use the exact same parameters for the tests on each RAID array.
Now apologies that I don’t have any figures for you here but I don’t have a spare SAN to play with today 🙂 However, I have previously tested performance in just this situation and I was presently surprised that a RAID 5 array composed of 18 disks was significantly faster on both read and write than a RAID 10 array with 6 disks. Of course, an 18 disk RAID 10 would be the fastest option but this was already eliminated by the business case / storage size requirements.
So in conclusion, compromising on a small/medium SAN with a mixture of lower performance RAID 5 and high performance RAID 10 arrays may actually result in lower performance across all arrays than deploying a single RAID 5 array containing the maximum number of disks.