System information

Software RAID
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 faster
CPUs, Software RAID also generally outperforms Hardware RAID.
The Linux kernel contains a multi-disk (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.
Here are some of the key features of the Linux software RAID stack:
Multi-threaded design
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 features such as streaming SIMD
support
Automatic correction of bad sectors on disks in an array
Regular consistency checks of RAID data to ensure the health of the array
Proactive monitoring of arrays with email alerts sent to a designated email address on important
events
Write-intent bitmaps which drastically increase the speed of resync events by allowing the kernel
to know precisely which portions of a disk need to be resynced instead of having to resync the
entire array
Resync checkpointing so that if you reboot your computer during a resync, at startup the resync
will pick up where it left off and not start all over again
The ability to change parameters of the array after installation. For example, you can grow a 4-
disk RAID5 array to a 5-disk RAID 5 array when you have a new disk to add. This grow operation
is done live and does not require you to reinstall on the new array.
17.2. RAID Levels and Linear Support
RAID supports various configurations, including levels 0, 1, 4, 5, 6, 10, and linear. These RAID types
are defined as follows:
Level 0
RAID level 0, often called " striping," is a performance-oriented striped data mapping
technique. This means the data being written to the array is broken down into strips and
written across the member disks of the array, allowing high I/O performance at low inherent
cost but provides no redundancy.
Many RAID level 0 implementations will only stripe the data across the member devices up
to the size of the smallest device in the array. This means that if you have multiple devices
with slightly different sizes, each device will get treated as though it is the same size as the
smallest drive. Therefore, the common storage capacity of a level 0 array is equal to the
[4]
Soft ware RAID
127