Raid arrays: which type of hardware is right for you?
In managing server hardware, I’ve ran across all sorts of different ways of doing raid arrays. Mainly, they fall in to two categories: Hardware based and Software based. Hardware arrays rely on add-in cards to support the RAID function, while software arrays use Operating system kernel level drivers to manage them.
So, Which way is right? Yes :). The main thing in constructing an array is to think of the function it will be performing and the cost you are willing to eat to make things happen.
Hardware arrays, while being fast and not using system resources, are expensive to set up. Sure, you’re taking a large load off of your server, but you are paying for it in hardware. I’m sure you’ve all seen motherboards with a RAID controller built in to the north or southbridge chips. One common misconception is that this is a hardware array – it really isn’t. It is a special type of hybrid software array that relies on drivers for the operating system to know how to use the array. Without these drivers, the array is useless. Also, the drivers still use the system’s cpu to do all of the calculations rather than having a dedicated processor as in a true hardware array.
Software arrays bi-pass the RAID controller and bring all of the calculation to the CPU of your system. The upshot is that most arrays can be constructed for a fraction of the cost of the RAID controller hardware. For low-impact applications (web servers, light use database servers), software raid arrays are perfect and can give your business enterprise level storage for desktop level pricing. One thing that people sometimes forget is that your system is only as fast as your slowest component – which is the network interface in most systems today. This is perfect for applications like a file server where your array only needs to be faster than the sum total of the network interfaces in the machine.
It used to be that the only way to get good performance out of a RAID array was to use expensive hardware and extremely fast drives. However, with the advances in both CPU’s and drives, one can construct an array that has good performance at a low price point.