Let’s start with the basics.
Table of Contents
RAID stands for Redundant Array of Independent Disks which is a standard implementation of a storage array in the industry and facilitates parallel access and saving from data loss as per requirements.
RAID can be implemented in hardware, by actually having several parallel storages with a hardware controller. It can also be implemented in software by logically arranging data to be stored into redundant arrays in accordance with host-based software.
Different types of RAID levels include a number of disk drives to implement RAID which is logically grouped to create logical arrays called RAID sets. These are controlled via a RAID controller to communicate with the host.
Before going through the different types of RAID levels, it is necessary to understand certain terminologies and techniques associated with it. It defines data availability and performance characteristics of a RAID set.
It is a technique to spread out data across multiple drives so that these drives can be accessed in parallel to improve the performance of the RAID set by making all the read-write heads work simultaneously on reading or writing the same data set.
Strip size defines the number of blocks in a particular strip. Strips spanning across various disk drives together form a stripe.
A technique through which the same data is written on two different disks simultaneously, hence providing two copies of data, is called mirroring. If one drive fails, the data can be retrieved from another mirrored drive. Mirroring is transparent to the host.
The difference between mirroring and backing up is that data is simultaneously written on both disks in mirroring while in backup, it is written only on one disk and at a particular time, the entire data is copied to a new disk while backing up.
Parity is a method to protect striped data from disk drive failures without the cost of mirroring. An additional disk holds the parity bits (even parity or odd parity) and uses it to recover lost data.
Parity calculation is bitwise XOR operation on all the bits stored which provides a sense of duplication without storing the same data multiple times.
The various types of RAID levels are as follows.
RAID 0
Data is simply striped across multiple disks for parallel storage and retrieval. It utilizes full storage capacity. There is no arrangement in case data is lost.
RAID 1
It uses the mirroring technique. Every disk has a mirror disk and data is simultaneously written to both of them.
It is a combination of RAIDs. It includes RAID 0+1 which performs mirroring first followed by striping and RAID 1+0 which performs striping first followed by mirroring.
RAID 3
It uses parity bits for fault tolerance. Parity bits for an entire stripe are stored on a strip on a dedicated disk for parity called parity disk which is used for reconstruction of data. Every time new data is written, parity is to be updated.
RAID 4
It is similar to RAID 3 except that the strips are larger in size due to which the can be accessed independently as well.
It is not always necessary to read the entire stripe. Also, the parity is stored on the dedicated parity disk in the form of arrays where each value in an array corresponds to a single strip.
RAID 5
Previous versions of RAID have a single point of failure since if the parity disk fails, the system goes down. Hence, in RAID 5, the parity bits are distributed across multiple disks instead of a single parity disk.
If a disk goes down, the parity bits for all the stripes are not lost.
RAID 6
For further reducing dependency on one disk, RAID 6 uses dual distributed parity with two parity bits for each stripe located on different disks. Hence, if one disk goes down, the other parity bit can be used to recover data of lost stripe.
You may like to read…
This is all from the Different types of RAID levels. I know it is quite confusing. If you have any question, you can ask me in a comment.
Proper Indentation of the paragraph will look more good and organized.
Thanks Sanhil for your feedback. Taking note of it.
Which one should I use for a home server?