In our previous article within this mini-series we looked at the RAID configurations of RAID 0, RAID 1 and RAID 5. To briefly review, RAID stands for redundant array of independent disks. RAID is a data technology that combines multiple computer disk drives for data redundancy and performance. With a RAID your computer's data is spread across multiple disk drives (an array) in what is referred to as RAID levels, depending on the desired level of redundancy and performance. Each RAID level provides a different configuration of redundancy, performance, reliability, capacity and availability.
In this edition of our mini-series we want to look at the configurations of RAID 6, RAID 0+1, and RAID 10 (also knows as RAID 1+0). In addition we want to look at both 'hardware' (RAID Controller) and 'software' based RAID configurations.
RAID 6
-
RAID 6 is a configuration that builds upon the schema used in RAID 5, in RAID 6 the data is striped across several drives with double parity distributed among the drives. The double parity of RAID 6 provides additional redundancy at the expense of lower write performance, although read performance remains the same as RAID 5, and redundancy overhead remains relatively low. RAID 6 requires a minimum of 4 identical drives.

RAID 6 offers improved fault tolerance and redundancy over RAID 5, but is more expensive and complex.
-
RAID 0+1
-
RAID 0+1 is a mirrored (RAID 1) array whose segments are striped (RAID 0) arrays. This configuration combines the security of RAID 1 with the performance of RAID 0 striping. This configuration requires a minimum of 4 drives.

RAID 0+1 offers excellent fault tolerance and high performance, but is expensive and has very limited scalability.
-
RAID 10 (RAID 1+0)
-
RAID 10, also known as RAID 1+0 is configured as a striped (RAID 0) array whose segments are mirrored like a (RAID 1) array. RAID 10 is an appropriate configuration for environments where high performance and security are required. This configuration requires a minimum of 4 drives.

Performance of a RAID 10 is similar to that of a RAID 0+1; however, it has superior fault tolerance and rebuild capabilities. RAID 10 is designed to permit multiple simultaneous drive failures, but in achieving this redundancy this configuration is very expensive with high overhead, despite its limited scalability.
-
RAID Hardware vs. Software Configurations
-
Hardware-based RAID configurations
With a hardware based RAID configuration the processing for data configuration is done via a RAID controller in the server (or workstation or NAS) typically at the level of the storage subsystem, so that there is no added load to the actual server processor and buses. Hardware RAID configurations tend to have more advanced features; one of the most significant of these features is the ability to hot-swap physical drives in case of failure. Hardware RAID configurations are far more expensive than software based RAID solutions, but offers better performance and interoperability than their software counterparts.
While RAID controller hardware can fail, the frequency of such occurrences is relatively rare. The fact that a RAID controller fails does not directly correlate to either loss or corruption of data, or inability to recover from such a controller loss. In most cases when the failed controller is replaced and configured, the RAID array goes right back to operating normally without any data loss or corruption.
Software-based RAID configurations
Some operating systems, especially those associated with Servers, and Network Attached Storage units, allow disk drives to be configured as RAID arrays simply based upon the configuration of the drives into a RAID level. This software version of RAID does its processing on the motherboard of the hardware which adds a considerable load, slowing down not only the RAID operations on the device, but other computing requirements.
With software RAID configurations you are restricted to those RAID levels supported by the specific operating system. The greater the redundancy and parity requirements of the RAID configuration, the more likely overall system performance is likely to decline.
Unlike hardware based RAID systems, when a software-based RAID configuration is lost due to either data loss or corruption impacting the actual RAID software itself, significant data loss and/or corruption can result to the RAID array. In some cases attempts to reconstruct the RAID array may fail because the necessary parity calculations can not be performed based upon the extent of data loss.
So while software-based RAID configurations tend to be more economical than hardware systems, they are less reliable and may not afford the level of redundancy and recovery potential otherwise associated with identical RAID configurations that are hardware based.
So my question for tonight's conclusion of this part is this: "If you are using RAID, are you using a hardware based RAID, or a software based RAID, or do you know?"
Next time we will look at some issues associated with RAID failures and recovery.