Installation guide
RAID Levels and Linear Support
87
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 capacity of the smallest
member disk in a Hardware RAID or the capacity of smallest member partition in a Software RAID
multiplies by the number of disks or partitions in the array.
Level 1
RAID level 1, or "mirroring," has been used longer than any other form of RAID. Level 1 provides
redundancy by writing identical data to each member disk of the array, leaving a "mirrored" copy
on each disk. Mirroring remains popular due to its simplicity and high level of data availability.
Level 1 operates with two or more disks, and provides very good data reliability and improves
performance for read-intensive applications but at a relatively high cost.
2
The storage capacity of the level 1 array is equal to the capacity of the smallest mirrored hard disk
in a Hardware RAID or the smallest mirrored partition in a Software RAID. Level 1 redundancy is
the highest possible among all RAID types, with the array being able to operate with only a single
disk present.
Level 4
Level 4 uses parity
3
concentrated on a single disk drive to protect data. Because the dedicated
parity disk represents an inherent bottleneck on all write transactions to the RAID array, level 4
is seldom used without accompanying technologies such as write-back caching, or in specific
circumstances where the system administrator is intentionally designing the software RAID device
with this bottleneck in mind (such as an array that will have little to no write transactions once the
array is populated with data). RAID level 4 is so rarely used that it is not available as an option in
Anaconda. However, it could be created manually by the user if truly needed.
The storage capacity of Hardware RAID level 4 is equal to the capacity of the smallest member
partition multiplied by the number of partitions minus one. Performance of a RAID level 4 array will
always be asymmetrical, meaning reads will outperform writes. This is because writes consume
extra CPU and main memory bandwidth when generating parity, and then also consume extra
bus bandwidth when writing the actual data to disks because you are writing not only the data, but
also the parity. Reads need only read the data and not the parity unless the array is in a degraded
state. As a result, reads generate less traffic to the drives and across the busses of the computer
for the same amount of data transfer under normal operating conditions.
Level 5
This is the most common type of RAID. By distributing parity across all of an array's member disk
drives, RAID level 5 eliminates the write bottleneck inherent in level 4. The only performance
bottleneck is the parity calculation process itself. With modern CPUs and Software RAID, that
is usually not a bottleneck at all since modern CPUs can generate parity very fast. However, if
2
RAID level 1 comes at a high cost because you write the same information to all of the disks in the array, provides data
reliability, but in a much less space-efficient manner than parity based RAID levels such as level 5. However, this space
inefficiency comes with a performance benefit: parity-based RAID levels consume considerably more CPU power in order to
generate the parity while RAID level 1 simply writes the same data more than once to the multiple RAID members with very
little CPU overhead. As such, RAID level 1 can outperform the parity-based RAID levels on machines where software RAID is
employed and CPU resources on the machine are consistently taxed with operations other than RAID activities.
3
Parity information is calculated based on the contents of the rest of the member disks in the array. This information can then be
used to reconstruct data when one disk in the array fails. The reconstructed data can then be used to satisfy I/O requests to the
failed disk before it is replaced and to repopulate the failed disk after it has been replaced.