RAID stands for Redundant Array of Independent Disks and it basically involves combining two or more drives together to improve the performance and the fault tolerance. Combining two or more drives together also offers improved reliability and larger data volume sizes. A RAID distributes the data across several disks and the operating system considers this array as a single disk.
Several different arrangements are possible and different standard schemes have evolved which represent a set of trade-offs between capacity, speed and protection against the data loss.
Some of the common RAID levels are -
RAID 0 uses data stripping as the data is broken into fragments while writing it to the drive. The fragments are then written to their disks simultaneously on the same sector. While reading, the data is read off the drive in parallel and so, this type of arrangement offers huge bandwidth.
The trade-off associated with RAID 0 is that a single disk failure destroys the entire array as it offers no fault tolerance and RAID 0 does not implement error checking.
RAID 1 uses mirroring to write the data to the drives. It also offers fault tolerance from the disk errors and the array continues to operate efficiently as long as at least one drive is functioning properly.
The trade-off associated with the RAID 1 level is the cost required to purchase the additional disks to store data.
It uses Hamming Codes for error correction. In RAID 2, the disks are synchronized and they're striped in very small stripes. It requires multiple parity disks.
This level uses a dedicated parity disk instead of rotated parity stripes and offers improved performance and fault tolerance. The benefit of the dedicated parity disk is that the operation continues without parity if the parity drive stops working during the operation.
It is similar to RAID 3 but it does block-level stripping instead of the byte-level stripping and as a result, a single file can be stored in blocks. RAID 4 allows multiple I/O requests in parallel but the data transfer speed will be less. Block level parity is used to perform the error detection.
RAID 5 uses block-level stripping with distributed parity and it requires all drives but one to be present to operate correctly. The reads are calculated from the distributed parity upon the drive failure and the entire array is not destroyed by a single drive failure. However, the array will lose some data in the event of the second drive failure.
The above standard RAID levels can be combined together in different ways to create Nested RAID Levels which offer improved performance. Some of the known Nested RAID Levels are -