RAID Explained
RAID, which stands for “redundant array of independent” disks provides a way to group disks into one volume and/or provide fault tolerance. There are three way to implement RAID: hardware, a combination of hardware/software, and software only.
Hardware RAID uses an add in card (PCI, PCI Express, PCI-X). The card has on-board memory and a processor to compute the RAID calculations. The RAID is stored in the controllers proprietary format and most likely you will need to use their drivers. The price is around $300-400 for a 4 port SATA card. The CPU load is basically non-existent with this setup.
Hardware/software RAID uses an add in card as well. However the card doesn’t contain memory or a RAID processor. It instead off-loads the RAID calculations to the CPU. The data is still in a proprietary RAID format and most likely you’ll need to use the card’s RAID drivers. These run around $100-150 for a 4 port card. Personally I think this form of RAID is pointless unless it is used for RAID 1 or 0 for reasons explained below.
Software RAID is proprietary to the software format. In linux you can move the drives easily between systems and linux distros provided the kernel support is the same. I’ve moved between Debian and Ubuntu without an issue. All the RAID calculations are performed by the CPU. However with today’s processors this will most likely not be an issue. The advantage to software RAID is the support as it is widely used.
No matter which implementation you choose make sure to test all possible scenarios before putting the RAID into production. Practice failing a drive, replacing it, and rebuilding the array. If you are going the software RAID route VMWare allows easy and fast testing. You can create multiple 1 GB drives which will rebuild much faster than 500GB real drives.