RAID: Faster and Cheaper with Linux - Page 2
Software RAID Advantages
Linux software RAID is more versatile than most hardware RAID controllers. Hardware controllers see each drive as a single member of the RAID array, and handle only one type of hard disk. Most hardware controllers are picky about the brand and size of hard disk -- you can't just slap in any old disks you want, but must carefully choose compatible disks. And it's not always documented what these are.
Linux RAID is a separate layer from Linux block devices, so any block device can be a member of the array -- a particular partition, any type of hard drive, and you can even mix and match. Endless debates rage over which offers superior performance, hardware or software RAID. The answer is "it depends." An old slow RAID controller won't match the performance of a modern system with a fast CPU and fast buses. The number of drives on a cable, the types of drives and cabling, the speed of the data bus- all of these affect performance in addition to the speed of the CPU and the demands placed on it.
One disadvantage is hot-swap ability is limited and not entirely reliable.
First of all, your power supply must be capable of powering all the drives you want to run on the system. Adding as many drives as you want is easy and inexpensive. If you're going to purchase new hard disks, you might as well get SATA, because the cost is about the same as PATA. SATA drives are faster and use less cabling, and will soon supplant PATA drives. PCI controller cards for additional PATA and SATA disks cost around $40, and will run two disks each. The built-in IDE channels on mainboards can handle two disks each, but you should run only one disk per channel. You'll get better performance and minimize the risk of a fault taking out both hard disks.
Next, install the raidtools2 and mdadm packages. If you want your RAID array to be bootable, you'll need RAID support built into the kernel. Or use a loadable module and use an initrd file, which to me is more trouble than rebuilding a kernel. Next week in Part 2 we'll cover how to do all of this. You may get a head start by consulting the links in Resources.