In a previous article, we analyzed the superlative RAID logic and the ways it can be implemented in software / hardware RAID. RAID is basically an array of hard drives where they work together to achieve either the best system performance, or fault tolerance, or both. More detailed information can be found in the first part of the article.
Let's look at some typical RAID layouts:
RAID 0 (Disk striping):
RAID 0, one of the simplest RAID devices, shares the data on 2 or above drives, known as striping, allowing for greater data throughput. Each file is read by multiple disks by combining the speed of all media together. However, it does not provide some kind of error tolerance as it does not keep copies of the files nor parity info (more about parity in next article). Both or more disks appear as a partition, so if one is spoiled, it spoils the entire array, leading to data loss. This layout is usually used to record live streams where speed comes first while reliability is second.
RAID 1 (Disk mirroring):
RAID 1 writes the same data to disk pairs. This process is called data mirroring and its role is to provide extended availability. If one of the disks of an array gets corrupted, the system can access the data through the other drives as there are always copies. Once the failed disk is replaced, the data is copied to it from the existing disk in use, and the array is made again. RAID 1 is the easiest way to create a failover storage and need at least 2 drives to run.
RAID 5 (Striping with parity):
RAID 5 shares the data on multiple disks as RAID 0 does, but it also maintains parity blocks that are used to retrieve data if a disk has a problem. A Parity block is a set of bits used to correct errors or retrieve data. This layout provides increased speed as the data is divided into multiple disks, but also ensures availability, since in case a disk stops functioning, its data can be retrieved through the parity blocks on the other drives. Parity blocks occupy approximately 1 / 3 of available disk space. At least 3 drives are required to run.
RAID 6 (Striping with double parity):
RAID 6 is similar to RAID 5, but it provides more reliability as it maintains an extra parity block. This means that even if 2 disks of the array are destroyed at the same time, system operation continues normally. At least 4 drives are required to run.
RAID 10 (Striping + Mirroring):
RAID 10 combines the mirroring of RAID 1 with RAID 0 striping. In other words, it combines reliability with speed and is usually used in environments such as servers that perform multiple registrations where speed and high reliability are needed. At least 4 drives are required to run.