Software RAID in Linux Workstations
RAID-2: Error Checking and Correction 
RAID-2 adds error checking and correcting (ECC) checksums to RAID-1. ECC stands for either “Error 
Correcting Code” or “Error Checking and Correcting.” It is a code in which each data signal 
conforms to specific rules of construction so that departures from this construction in the received 
signal can generally be automatically detected and corrected. RAID-2 is rarely seen these days 
because most hard-disk controllers already do ECC, and this scheme offers few advantages over other 
RAID configurations. Software RAID-2 is not supported by HP Linux workstations. 
RAID-3: Byte-Level Striping with Parity Disk 
Like RAID-0, RAID-3 does striping, but at a very small granularity. It also adds a parity disk which 
helps in error detection and recovery. Parity in regards to hard disks refers to use of a parity bit, 
which counts whether the number of 1 bits in some preceding data was even or odd; if a single bit is 
changed in transmission, the parity bit will change, thus providing a redundancy check for data 
transmission. Parity bits are a very simple example of ECCs, or Error Correcting Codes. The details of 
ECC and parity are beyond the scope of this paper. The small granularity of RAID-3 leads to gains 
only when record sizes are very small and drive spindles are carefully synchronized. RAID-5 is 
generally preferred, and RAID-3 is very seldom used these days. Software RAID-3 is not supported by 
HP Linux workstations. 
RAID-4: Block-Level Striping with Parity Disk 
RAID-4 attempts to add error checking and recovery to RAID-3 by doing block-level striping, as in 
RAID-0, with the addition of a single parity disk. At least 3 disks are required for a RAID-4 array. 
Since all operations access the parity disk, that disk can become a bottleneck. RAID-4 can work in 
some operations, but RAID-5 is generally preferred where a compromise between speed and 
reliability is sought. Software RAID-4 is not supported by HP Linux workstations. 
RAID-5: Block-Level Striping with Distributed Parity 
In order to add error checking and recovery to RAID-0 and to eliminate the parity disk bottleneck of 
RAID-4, RAID-5 is implemented as a combination of data striping and parity, where data and parity 
blocks are successively written across the drives of the array. RAID-5 is used to ensure data integrity; 
should a single disk fail, it is possible to recover the data on the lost disk from the parity data on the 
others. RAID-5 requires a minimum of 3 disks, and the effective disk space availability of n disks in a 
RAID-5 array is n-1 disks. Software RAID-5 is supported by HP Linux workstations. 
Figure 3. Efficiency of Software RAID-5 
Read Performance  Write Performance Space Efficiency  Reliability 
Poor to Moderate  Moderate 
66-75% (3 and 4-
disk) 
Good 
For both small and large 
blocks, RAID-5 performs 
poorly because parity 
data is interspersed with 
real data. The 
performance of RAID-5 
can be dramatically 
improved by filesystem 
tuning. 
While RAID-5 eliminates 
the parity-disk bottleneck 
of RAID-4, block-write 
performance is still 
slower than raw disks. 
RAID-5's efficiency is 
about the same as RAID-
4, where one disk is 
used to hold parity data, 
except the parity data is 
spread rather than 
concentrated on one 
drive. 
Parity data is retained 
for all data. RAID-5 
arrays can tolerate the 
failure of one disk. 
6 










