RAID (Redundant Array of Independent Disks) systems are used to increase the performance and/or reliability of the hard disk drives of the system. In this article we will explain the basics about RAID0, RAID1, RAID5 and the advantages of RAID6 over them.
There are two basic ideas behind RAID: data stripping (a.k.a. RAID0), used to increase performance, and mirroring (a.k.a. RAID1), used to increase reliability.
On RAID1 the data stored at one hard drive is automatically copied to another. In a two-disk system, data found on the second disk will be an exact copy of the data stored on the first disk. If the first hard drive goes defective, you will still have your data, since the second disk will have an updated copy of all data stored on disk 1. This process is also known as mirroring.
RAID0, on the other hand, is targeted to increase the disk performance, by dividing the files between all available disks. For example, on a RAID0 system with two disks, a 100 KB file to be stored on the hard disk is split into two 50 KB data chunks, each one stored in one different disk, increasing the disk performance, since it is faster to store half the file than to store the full file. In other words, it is faster for a hard drive to store a 50 KB file than to store a 100 KB file.
The problem with RAID0 is to increase its reliability, since if one of the disks go defective, all data is lost.
Several RAID systems were created to increase the reliability of data stripping, like RAID3, which uses an extra hard disk drive to store parity and data correction information, and RAID5, which is similar to RAID3 but stores parity and data correction information inside the disks found on the system, thus not requiring an extra hard disk drive. Keep in mind that since RAID5 will store parity and data correction information inside each “data” hard disk drive of the system, less space is left on those drives for data storage.
If there is any read error, the RAID system automatically starts a data recover operation, using the parity and error correction information to restore the data being read.