Skip to main content

PCI Express SATA RAID Controllers For SMB Servers

Go RAID!

RAID, a Redundant Array of Inexpensive Drives, has different flavors and is widely used to either increase performance or to increase data safety - or both.

Performance can be increased by striping data across multiple drives while reading or writing (RAID 0). Ideally, transfer rates multiply with the number of hard drives used. However, this does not reflect the pristine meaning of RAID, namely a "redundant" array for the sake of data safety. In fact, a RAID 0 even increases the risk of data loss since a single faulty drive has your RAID 0 array degrade past recovery and all data is gone.

The easiest way to provide secure and redundant data storage is RAID 1, which simply means writing data onto two drives at the same time. Should one drive fail, you will still have the other one, which is an exact copy. Yet RAID 1 has a considerable drawback: Every drive you add for mirroring will increase data safety, but the storage capacity doesn’t increase, and write transfer performance remains at the level of a single drive.

RAID 0+1 or RAID 1+0 operate two drives in one RAID mode (0 or 1) and then add an additional RAID layer based on the opposite mode (1 or 0). This approach is called a nested RAID and it is very feasible, because it does not require sophisticated hardware. Actually, almost every enthusiast-class or high-end storage controller supports simple RAID modes for up to four hard drives.

If, however, you want to use more than four hard drives, or if you want a better net storage capacity than a RAID 0+1 or 1+0 array can offer (1:2 ratio), RAID 5 is an option. It offers the total capacity of all hard drives minus one and distributes data blocks across all available drives while adding simple parity data to every complete data chunk. If this parity information were written onto one specific hard drive we’d be talking about RAID 3, while RAID 5 stores parity information onto alternating drives, which avoids a parity bottleneck.

Parity is calculated by simple XOR operations (either-or), which are taken care of by either the system CPU(s) or a co-processor on the RAID controller card. The latter is clearly more expensive, but since XOR calculation can put heavy workloads on the processor(s), it is considered the best solution for high-performance environments. However, with the advent of dual and quad-core processors this issue is becoming increasingly negligible for more and more server types.

Most solutions in this roundup are based on system-level RAID, often referred to as software-RAID. We’d rather not use the term software-RAID, since many operation systems allow the user to create RAID arrays that are fully controlled by the OS, which we would call a software-RAID. Software-accelerated RAID should be referred to as host-based RAID.

  • Eric The Red
    This is a very well put together article! It would be nice if there was a review with recent RAID cards while doing the same thing you did here.
    Reply