4.3. Hardware RAID versus Software RAID
There are two possible RAID approaches: Hardware RAID and
Software RAID.
The hardware-based array manages the RAID subsystem
independently from the host. It presents a single disk per
RAID array to the host.
A Hardware RAID device connects to the 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 controller cards function like a SCSI controller to the
operating system, and handle all the actual drive
communications. The user plugs the drives into the RAID
controller (just like a normal SCSI controller) and then adds
them to the RAID controllers configuration, and the operating
system won't know 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 [1] are not required. Software RAID also works with
cheaper IDE disks as well as SCSI disks. With today's faster
CPUs, Software RAID outperforms Hardware RAID.
The Linux kernel contains an MD driver that allows the RAID
solution to be completely hardware independent. The
performance of a software-based array depends on the server
CPU performance and load.
To learn more about Software RAID, here are the key 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