In Part 1 of our RAID primer last month, we looked at the five basic levels of RAID as defined in David Patterson et al.'s landmark 1988 paper. In the 16 years since its publication, those levels have been expanded upon by engineers and marketing organizations across the industry. We cannot hope to address all of them here, but we will hit on most of the best-known variants. If I miss your favorite, write to me and I'll include it next time.RAID-0: Striping. RAID-0 does not add redundancy. In fact, when run by itself, it reduces the level of protection for the data. When data is striped, it is spread across several disks with each block of data only being written in one place. The advantage here is not in protection but in performance. If any of the disks in the stripe fail, then access to all the disks is lost. However, by spreading the data across more pieces of hardware, writes and reads can be completed more quickly, since the task can be performed by more independent readers and writers. RAID-6: Dual parity. RAID-6 takes the striped parity region from RAID-5 and duplicates it. Each disk in a RAID-6 stripe has two parity regions, each calculated separately. The advantage of RAID-6 is that even if two disks fail, the RAID stripe would still have a complete set of data and be able to recover the failed disks. The biggest disadvantage is in performance. The performance impact of RAID-5 is roughly doubled as each set of parities is calculated separately. Where RAID-5 requires one extra disk for parity RAID-6 requires two, increasing the cost of the implementation. RAID-7: RAID-7 is a trademarked term, owned by Storage Computer Corporation. They appear to have the only commercial implementation that involves proprietary disk array hardware with an internal CPU and a combination of striping and a RAID-5-like model. RAID-S: EMC Symmetrix disk arrays offer an alternate, proprietary method for parity RAID that they call RAID-S. While detailed documentation on RAID-S is proprietary, it appears to be similar to RAID-5 with some performance enhancements as well as the enhancements that come from having a high-speed disk cache on the disk array. RAID 5+0: By building a series of RAID-5 groups and then striping them in RAID-0 fashion, you can improve RAID-5 performance without reducing data protection. RAID 5+3: It would be more accurate to call this RAID 0+3 but it has come to be called RAID 5+3 and it's defined by striping (in RAID-0 style) RAID-3's virtual disk blocks. RAID-10: Combining RAID-0 and RAID-1 is often referred to as RAID-10, and it comes in two different forms. In RAID-0+1, the data is organized as stripes across multiple disks, and then the striped disk sets are mirrored. In RAID-1+0, the data is mirrored and the mirrors are striped.
For more detailed information on RAID, including differences between hardware and software RAID and a really funny joke about insecticide, please see "Blueprints for High Availability" by Evan Marcus and Hal Stern, 2003.
About the author: Evan Marcus is a Principal Engineer and Data Availability maven with VERITAS Software Corporation, with more than 15 years of experience in Unix systems. After spending five years at Sun Microsystems, Evan joined Fusion Systems and, later, OpenVision Software, where he worked to bring the first high availability software applications for SunOS and Solaris to market. Evan is the author of several articles and talks on the design of high availability systems. He is the author (along with Hal Stern of iPlanet) of "Blueprints for High Availability".