There are different types of RAID levels which we can use in the storage systems. The RAID level selection depends on the parameters such as application performance, data availability requirements, and cost. These RAID levels are defined on the basis of striping, mirroring, and parity techniques. Some RAID levels use a single technique, whereas others use a combination of techniques. Commonly used RAID levels are
  • RAID 0 – Striped set with no fault tolerance
  • RAID 1 – Disk Mirroring
  • RAID 1 + 0 – Nested RAID
  • RAID 3 – Striped set with parallel access and dedicated parity
  • RAID 5 – Striped set with independent disk access and distributed parity
  • RAID 6 – Striped set with independent disk access and dual distributed parity

Comparing RAID Levels

When choosing a RAID type, it is imperative to consider its impact on disk performance and application IOPS. In both mirrored and parity RAID configurations, every write operation translates into more I/O overhead for the disks, which is referred to as a write penalty. The commonly used RAID types during these days are

RAID 1 offers good performance but comes with a 50 percent RAID capacity overhead. It’s a great choice for small-block random workloads and does not suffer from the write penalty.

RAID 5 is block-level interleaved parity, whereby a single parity block per stripe is rotated among all drives in the RAID set. RAID 5 can tolerate a single drive failure and suffers from the write penalty when performing small-block writes.

RAID 6 is block-level interleaved parity, whereby two discrete parity blocks per stripe are rotated among all drives in the RAID set. RAID 6 can tolerate a two-drive failure and suffers from the write penalty when performing small-block writes.
 
RAID Comparison
In a RAID 1 implementation, every write operation must be performed on two disks configured as a mirrored pair, whereas in a RAID 5 implementation, a write operation may manifest as four I/O operations. When performing I/Os to a disk configured with RAID 5, the controller has to read, recalculate, and write a parity segment for every data write operation.
 
For example a single write operation on RAID 5 that contains a group of five disks. The parity (P) at the controller is calculated as follows
Cp = C1 + C2 + C3 + C4 (XOR operations)
 
Whenever the controller performs a write I/O, parity must be computed by reading the old parity (Cp old) and the old data (C4 old) from the disk, which means two read I/Os. Then, the new parity (Cp new) is computed as follows
Cp new = Cp old – C4 old + C4 new (XOR operations)
 
After computing the new parity, the controller completes the write I/O by writing the new data and the new parity onto the disks, amounting to two write I/Os. Therefore, the controller performs two disk reads and two disk writes for every write operation, and the write penalty is 4.
 
But in RAID 6, which maintains dual parity, a disk write requires three read operations: two parity and one data. After calculating both the new parities, the controller performs three write operations: two parity and an I/O. Therefore, in a RAID 6 implementation, the controller performs six I/O operations for each write I/O, and the write penalty is 6.

The detailed description of the above RAID levels and their use cases are explained in the next posts

Less Commonly used RAID Levels

Some RAID levels are not commonly used in today’s data centres either due to complexity or cost issues. The other types of RAID levels which are not or rarely in use are

RAID 2 
RAID 2 is bit level striping and it is the only RAID that can recover from single-bit errors.

RAID 3
RAID 3 performs parity at the byte level and uses a dedicated parity drive. RAID 3 stripes data for performance and uses parity for fault tolerance. Parity information is stored on a dedicated parity drive so that the data can be reconstructed if a drive fails in a RAID set

RAID 4

RAID 4 is similar to RAID 5. It performs block-level striping but has a dedicated parity drive. The common issues with using dedicated parity drives is that the parity drive can become a bottleneck for write performance. Every single block update on each row requires updating the parity on the dedicated parity drive which can cause the parity drive to become a bottleneck. One advantage of this type of RAID is that it can be easily expanded by adding more disks to the set by only rebuilding the parity drive. 



Go To >> Index Page

Leave a Reply