The perils of quick init …
When building an array using Adaptec RAID cards (hardware RAID 5 that is), you have various build options … clear, build/verify, quick init and (on newer firmwares) skip init.
These options give you choices in how you build your RAID 5 array. While choice is good, and the marketing team love to sprout the line “flexible initialisation options” (because it’s a sexy thing to put on tech sheets), there are issues that users should be aware of when using these options.
As a tech I don’t like giving users all these options. At least not visible on the main screen of your array-build process. Personally I’d like to hide a couple of these options from the user and force them to do things in what I regard is the “correct” manner.
My pet hate is “Quick Init”. Skip Init is even worse but we give plenty of warnings when using this option that in fact you should not be using this option unless the sky is falling and you are talking to an Adaptec Support Professional. But Quick Init is a favourite amongst system builders because it sounds like a good idea.
System builders are always in a hurry. I find this a little frustating as they are generally building a server that is destined for many years of service … and they want reliability, performance and flexibility during those years. Yet they are not willing (in general) to take the time to do things properly in the first place (personal opinion that is bound to slight many builders but what the heck).
Did Michelangelo rush the paining of the Sistine Chapel? No, in fact many Columbines later he took his time and got it right the first time. The result of his initial care was a product that lasted for more than just a few years and has stood the test of time quite well.
So back to building RAID 5 arrays. When you use Quick Init you effectively lay out the array structure on the disk, but do not create any parity across all the stripes. You also, without most people knowing, fix the array into what we call “Full Stripe Writes”. This means that the entire stripe is written in one hit each time anything is written to that stripe. Whether it be a small amount of data or a large sequential write, the whole stripe is written (and subsequently parity calculated for that stripe in the process). This gives a major performance hit for small writes. While RAID 5 is not fantastically good at doing small writes in the first place, it is very, very poor at doing them in full stripe write mode.
We can go into more technical details at a later date if anyone is interested, but the moral behind this story is … use CLEAR or BUILD/VERIFY (clear is my favourite) when building your array. You will take a bit longer to build your system, but like Michelangelo you will create a product that will perform correctly from day one, not run like a dog for your customer. Of course there are many builders out there who either don’t know or don’t care, and just foist the box on the customer as quickly as they can, but for those who are interested in doing things correctly … don’t use Quick Init.
Here endeth the ancient painting (and RAID 5) lesson.