RAID levels and linear support

RAID and linear storage levels offer various data protection, performance, and capacity options. Compare RAID levels 0, 1, 4, 5, 6, 10, and linear arrays to determine the best configuration for reliable Linux storage.

The following are the supported configurations by RAID, including levels 0, 1, 4, 5, 6, 10, and linear:

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 stripes and written across the member disks. This provides high I/O performance at low inherent cost but provides no redundancy.

RAID level 0 implementations only stripe data across the member devices up to the smallest device size in the array. If you have multiple devices with slightly different sizes, each device is treated as having the same size. Each device is considered equal to the size of the smallest drive. Therefore, the common storage capacity of a level 0 array is the total capacity of all disks. If the member disks have a different size, RAID0 uses all the space of those disks using the available zones.

Level 1

RAID level 1, or mirroring, provides redundancy by writing identical data to each member disk of the array. It leaves 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 improved read-intensive performance. However, costs are relatively high.

RAID level 1 is costly because you write the same information to all of the disks in the array. This 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 to generate parity. RAID level 1 writes identical data to multiple members with minimal CPU overhead. As such, RAID level 1 can outperform parity-based RAID levels on systems using software RAID. This is especially true when CPU resources are heavily used by non-RAID operations.

The level 1 array storage capacity equals the capacity of the smallest mirrored hard disk in a hardware RAID. Or, it is equal to the smallest mirrored partition in a software RAID. Level 1 redundancy is the highest possible among all RAID types. The array can continue operating with only a single disk present.

Level 4

Level 4 uses parity concentrated on a single disk drive to protect data. Parity information is calculated based on the content 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 satisfy I/O requests to the failed disk before replacement and repopulate the disk after replacement.

The dedicated parity disk represents an inherent bottleneck on all write transactions to the RAID array. Therefore, level 4 is seldom used without accompanying technologies such as write-back caching. Or, it is used where the system administrator intentionally designs the software RAID device with this bottleneck in mind. This applies to arrays with little to no write transactions once 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 needed.

The hardware RAID level 4 capacity equals the smallest member partition capacity multiplied by the number of partitions minus one. The performance of a RAID level 4 array is always asymmetrical, which means reads outperform writes. This is because write operations consume extra CPU resources and main memory bandwidth when generating parity. They also consume extra bus bandwidth when writing the actual data to disks because you write both data and parity. Read operations only read the data and not the parity unless the array is in a degraded state. Consequently, they generate less traffic to drives and across computer buses for the same amount of data transfer. This applies under normal operating conditions.

Level 5

This is the most common type of RAID. RAID level 5 distributes parity across all member disk drives of an array. This eliminates the write bottleneck inherent in level 4. The only performance bottleneck is the parity calculation process itself. Modern CPUs can calculate parity very fast. However, with many disks in a RAID 5 array, high combined data transfer speeds can make parity calculation a bottleneck.

Level 5 has asymmetrical performance, and reads substantially outperforming writes. The storage capacity of RAID level 5 is calculated the same way as with level 4.

Level 6

This is a common RAID level when data redundancy and preservation, instead of performance, are the paramount concerns. But, level 1 space inefficiency is not acceptable. Level 6 uses a complex parity scheme to recover from the loss of any two drives in the array. This complex parity scheme creates a significantly higher CPU burden on software RAID devices and increased burden during write transactions. As such, level 6 is considerably more asymmetrical in performance than levels 4 and 5.

The total capacity of a RAID level 6 array is calculated similarly to RAID level 5 and 4. However, you must subtract two devices instead of one from the device count for extra parity storage space.

Level 10

This RAID level attempts to combine the performance advantages of level 0 with the redundancy of level 1. It also reduces some of the space wasted in level 1 arrays with more than two devices. With level 10, you can create a 3-drive array to store only two copies of each piece of data. The overall array size then becomes 1.5 times the smallest device size. This differs from a 3-device level 1 array where it equals the smallest size. This avoids CPU process usage to calculate parity similar to RAID level 6, but it is less space efficient.

The creation of RAID level 10 is not supported during installation. It is possible to create one manually after installation.

Linear RAID

Linear RAID is a grouping of drives to create a larger virtual drive.

In linear RAID, chunks are allocated sequentially from one member drive. Allocation moves to the next drive only when the first is filled. This grouping provides no performance benefit, as it is unlikely that any I/O operations split between member drives. Linear RAID also offers no redundancy and decreases reliability. If any one member drive fails, the entire array cannot be used and data can be lost. The capacity is the total of all member disks.