Types of RAID Cards
There is quite a bit of confusion over the different types of RAID cards on the market today. Most of the cards that end up in the hands of the consumer are IDE RAID solutions due to their low price and it is IDE RAID cards that we focus on in this article. Of the types readily available to the consumer, the cards can be broken down into two categories: software RAID and hardware RAID.
Software RAID is the RAID controller type that is found integrated onto a number of motherboards and available as a low cost PCI card. These cards are really nothing more than a slightly specialized IDE controller Software RAID cards appear to function as an IDE controller with the ability to stripe or mirror data, but this is not actually the case. Software RAID controllers do not actually perform the striping or mirroring calculations but rather call upon the CPU to perform these functions. When a file is sent to a software IDE RAID controller, the controller passes along the data and the stripe size and the details of the data to the CPU which then does the dirty work of figuring out how the file is broken up and what goes where.
Once the CPU has done its job, the information is passed back to the software RAID controller and then written to the disks in the array just as an IDE controller on the southbridge of a chipset would do. Since the CPU is actually the brains behind the software RAID solutions, RAID 5 ability is typically not provided on these cards. This is because the parity calculations that RAID 5 require (the XOR operations) are rather stressful. If they were passed to the CPU they would require quite a bit of CPU time and power. The striping calculations, on the other hand, are fairly stress-free on the CPU. Just how much CPU power these cards required would have to wait for the benchmarks.
Hardware RAID cards bypass the CPU and instead perform the striping calculations on an integrated controller chip. The most common chip used for these calculations is the Intel i960. Because data is processed on the card, hardware RAID solutions are much more complex than software RAID cards. Hardware RAID cards must include memory for cache as well as extra controls to power the i960 brain.
It is typically not the strain reduced from the CPU during striping calculations that is the need for a hardware RAID solution, but rather the fact that hardware RAID cards can provide RAID 5 support. Since these cards have a dedicated processor on them, they can handle the XOR operations without influencing CPU speed at all. It is for this reason that hardware RAID cards have realized large success, since they are really the only viable solution for RAID 5 support that promises to combine the speed of striping with the reliability of mirroring
Due to their complexity, hardware RAID cards are much more expensive than software RAID ones. With the cost also comes extra features, as we found when we got a chance to play around with our hardware RAID cards.
For these series of RAID tests we were able to get our hands on the 3 most popular software RAID solutions and two of the large players in the hardware RAID market. Now it is time to take a look at the cards.
2 Comments
View All Comments
kburrows - Thursday, December 4, 2003 - link
Have you run any tests on any onboard RAID solutions for RAID 0 & 1? I would love to see the results posted for the new SATA RAID on the Intel 875 boards.Anonymous User - Sunday, August 17, 2003 - link
In adressing the performance of an raid array with different stripe sizes, you miss an important factor, namely the accestime of an disk. This wait time has two main couses. First the head positioning and second the rotational latency (the heads track the right trace, but position where the read start has not passed under the head). You may have to wait from 0 to (in the worst case) a full cycle.Since the disks move independently You can calculate that the average latency to get an small file is minimal when the stripe size is about an full cycle of an disk in the array (aprox. 250kB today). All other factors I do know do not reduce this. (controller overhead, transport,...)
So I think that today a minimum stripe size of 256kB should be used.