The technique (or techniques) used to provide redundancy in a RAID array is a primary
differentiator between levels. Redundancy is provided in most RAID levels through the use
of mirroring or parity (which is implemented with striping):
- Mirroring: Single RAID level 1, and multiple RAID levels 0+1 and 1+0
("RAID 10"), employ mirroring for redundancy. One variant of RAID 1 includes
mirroring of the hard disk controller as well as the disk, called duplexing.
- Striping with Parity: Single RAID levels 2 through 7, and multiple RAID
levels 0+3 (aka "53"), 3+0, 0+5 and 5+0, use parity with striping for data
redundancy.
- Neither Mirroring nor Parity: RAID level 0 is striping without parity;
it provides no redundancy
- Both Mirroring and Striping with Parity: Multiple RAID levels
1+5 and 5+1 have the "best of both worlds", both forms of redundancy protection.
The exact way that striping with parity is implemented depends on the particulars of
the level as well. Some levels involve striping of individual bytes or sectors, while
others use larger blocks; in the latter case, the size of the blocks is controlled by the stripe size of the array. RAID 2 uses a special
form of striping with parity that is actually more like the ECC encoding used to protect
data on various computer devices.
The choice of method for attaining redundancy affects almost every other characteristic
of an array, which is why I consider it a primary differentiator. All aspects of
performance, fault tolerance, impact of rebuilding, storage efficiency, cost and more:
they all depend on the choice of redundancy technique. For more information on how
mirroring works and its general advantages over parity; see here. For more on parity and its advantages over
mirroring, see here.
Next: Controller Requirements