There are two possible RAID approaches: Hardware RAID and Software
RAID.
The hardware-based array manages the RAID subsystem independently
from the host and presents to the host only a single disk per RAID
array.
An example of a Hardware RAID device would be one that connects to a
SCSI controller and presents the RAID arrays as a single SCSI
drive. An external RAID system moves all RAID handling "intelligence"
into a controller located in the external disk subsystem. The whole
subsystem is connected to the host via a normal SCSI controller and
appears to the host as a single disk.
RAID controllers also come in the form of cards that
act like a SCSI controller to the operating
system but handle all of the actual drive communications
themselves. In these cases, you plug the drives into the RAID
controller just like you would a SCSI controller, but then you add
them to the RAID controller's configuration, and the operating system
never knows the difference.
Software RAID implements the various RAID levels in the kernel disk
(block device) code. It offers the cheapest possible solution, as
expensive disk controller cards or hot-swap chassis
are not required. Software RAID also works with cheaper IDE disks as
well as SCSI disks. With today's fast CPUs, Software RAID
performance can excel against Hardware RAID.
The MD driver in the Linux kernel is an example of a RAID solution
that is completely hardware independent. The performance of a
software-based array is dependent on the server CPU performance and
load.
For information on configuring Software RAID during installation,
refer to the Chapter 10 Software RAID Configuration.
For those interested in learning more about what Software RAID has
to offer, here are the most important features:
Threaded rebuild process
Kernel-based configuration
Portability of arrays between Linux machines without
reconstruction
Backgrounded array reconstruction using idle system
resources
Hot-swappable drive support
Automatic CPU detection to take advantage of certain CPU
optimizations