A RAID 0 configuration combines two or more devices by striping/spanning data across them. Striping is a technique that breaks up the data into chunks/segments/strips, and then alternately writes the chunk to each disk in the array. The advantage of this is that the combined performance of each device is now utilized by reads and writes, and is a simple way to increase capacity, IOPS, and bandwidth.
The theoretical performance profile of a RAID 0 array is the performance of an individual disk multiplied by the number of disks. While this approach offers greater performance, it has some very important drawbacks. Because the data is split up and divided between each of the disks in the array, any failure of a single device brings down the entire array, and all data is lost. If you are running a RAID 0 array, backups become extremely important, as your entire data set depends equally on the reliability of each of the disks in the array.
In practice, use RAID 0 only when you want to get the maximum performance from an array. The performance benefits can be great, but at the cost of reliability.
A RAID 1 configuration mirrors the data between two or more devices. Anything written to the array is placed on each of the disks in the array, which means that each device has a complete set of data, offering redundancy in case of device failure.
With a RAID 1 configuration, data is still accessible as long as a single device in the array is still functioning. The array can be rebuilt by replacing the failed drive, at which point the remaining disk is used to copy the data back to the new disk. This configuration is not as fast as RAID 0. The theoretical read speed is still calculated by multiplying the read speed of an individual disk by the number of disks. For write operations, however, theoretical maximum write performance is that of the slowest device in the array, due to having that data written to each of the disks in the array.
A RAID 1 array with two devices of equal size only has the usable capacity of a single disk. Adding additional disks increases the number of redundant copies of the data, but does not increase the amount of available capacity. If you're using rotating media, there is a penalty for writing the data onto another device, as the devices are not spindle synced. Since RAID 1 doubles space requirements, RAID 1 has limited use in production environments.
RAID 5 is very different from RAID 0 or 1. When it comes to the performance profile it has several drawbacks, but reliability benefits. With RAID 5, the data is striped across disks in much the same way as a RAID 0 array. For each stripe of data written across the array, parity information is added. The parity is a mathematically calculated value that is used for error correction and data reconstruction, and is written to one of the disks not containing data from the stripe. The disk that receives the calculated parity block, instead of a data block, will rotate with each stripe that is written.
Like the other arrays with striping, read performance benefits from reading from multiple disks at once. A RAID 5 array handles the loss of any one disk in the array, and the parity blocks allow for reconstruction of data if this happens. Because the parity is distributed, each disk has an equal amount of parity information. With RAID 5 parity, a level of redundancy is achieved at the cost of only a single disk's worth of space. For example, four 500G drives in a RAID 5 array would yield 1.5TB of usable space (the other 500G would be taken up by the distributed parity information).
RAID 5 has some significant drawbacks; system performance can slow down considerably due to on-the-fly parity calculations, and can impact each write operation. If a disk fails and the array enters a degraded state, it will also introduce a significant penalty for read operations (the missing data must be calculated from the remaining disks). Furthermore, when the array is repairing after replacing a failed drive, each drive must be read, and the CPU used to calculate the missing data is used to rebuild the missing data. Because you are rebuilding an entire single drive, the rebuild time can be quite long. This can stress the remaining drives, sometimes leading to additional failures, which results in the loss of all data.
RAID 6 uses an architecture similar to RAID 5, but uses double parity, which means that the array can withstand any two disks failing. This is a significant advantage, due to the increased likelihood of an additional disk failing during the rebuild process after a fault has occurred. A disadvantage of RAID 6 is it loses an additional disk's worth of capacity. The total capacity of the array is the combined space of the drives involved, minus two drives. The calculation to determine the parity data for RAID 6 is more complex than RAID 5, which can lead to worse write performance than RAID 5. RAID 6 suffers from some of the same degradation problems as RAID 5, but the additional disk's worth of redundancy guards against the likelihood of additional failures wiping out the data during rebuild operations.
RAID 10 is a combination of RAID 0 and RAID 1, consisting of striped data across mirrored stripes/spans. A RAID 10 drive group is a striped drive group that creates a striped set from a set of mirrored drives. RAID 10 allows for a maximum of eight spans, and you must use an even number of drives in each RAID virtual drive in the span. The RAID 1 virtual drives must have the same stripe size. RAID 10 provides high data throughput and complete data redundancy but uses a larger number of spans.
RAID 50, a combination of RAID 0 and RAID 5, uses distributed parity and disk striping. A RAID 50 drive group is a spanned drive group in which data is striped across multiple RAID 5 drive groups. RAID 50 works best with data that requires high reliability, high request rates, high data transfers, and medium-to-large capacity.
RAID 60, a combination of RAID 0 and RAID 6, uses distributed parity, with two independent parity blocks per stripe in each RAID set, and disk striping. A RAID 60 virtual drive can survive the loss of two drives in each of the RAID 6 sets without losing data. It works best with data that requires high reliability, high request rates, high data transfers, and medium-to-large capacity.
*Write penalty is the cost of the write when the write request is not equal to the stripe size. When it's not equal, a read modify write operation occurs. For example, with RAID 5, You have to 1) read the existing data, 2) read the parity, 3) modify and write the new and existing data, and 4) compute and write the new parity. With RAID 1, the penalty is because of the additional write.