Common Name(s): RAID 2.
Technique(s) Used: Bit-level striping with Hamming code ECC.
Description: Level 2 is the "black sheep" of the RAID
family, because it is the only RAID level that does not use one or more of the
"standard" techniques of mirroring, striping and/or parity. RAID 2 uses
something similar to striping with parity, but not the same as what is used by
RAID levels 3 to 7. It is implemented by splitting data at the bit level and
spreading it over a number of data disks and a number of redundancy disks. The redundant
bits are calculated using Hamming codes, a form of error correcting code (ECC). Each time
something is to be written to the array these codes are calculated and written along side
the data to dedicated ECC disks; when the data is read back these ECC codes are read as
well to confirm that no errors have occurred since the data was written. If a single-bit
error occurs, it can be corrected "on the fly". If this sounds similar to the
way that ECC is used within hard disks today, that's for a good reason: it's
pretty much exactly the same. It's also the same concept used for ECC protection of system memory.
Level 2 is the only RAID level of the ones defined by the original Berkeley document
that is not used today, for a variety of reasons. It is expensive and often requires many
drives--see below for some surprisingly large numbers. The controller required was
complex, specialized and expensive. The performance of RAID 2 is also rather substandard
in transactional environments due to the bit-level striping. But most of all, level 2 was
obviated by the use of ECC within a hard disk; essentially, much of what RAID 2 provides
you now get for "free" within each hard disk, with other RAID levels providing
protection above and beyond ECC.
Due to its cost and complexity, level 2 never really "caught on". Therefore,
much of the information below is based upon theoretical analysis, not empirical evidence.
Controller Requirements: Specialized controller hardware required.
Hard Disk Requirements: Depends on exact implementation, but a typical
setup required 10 data disks and 4 ECC disks for a total of 14, or 32 data disks and 7 ECC
disks for a total of 39! The disks were spindle-synchronized to run in tandem.
Array Capacity: Depends on exact implementation but would be rather
large if built today using modern drives.
Storage Efficiency: Depends on the number of data and ECC disks; for
the 10+4 configuration, about 71%; for the 32+7 setup, about 82%.
Fault Tolerance: Only fair; for all the redundant drives included, you
don't get much tolerance: only one drive can fail in this setup and be recoverable
"on the fly".
Availability: Very good, due to "on the fly" error
correction.
Degradation and Rebuilding: In theory, there would be little
degradation due to failure of a single drive.
Random Read Performance: Fair. Bit-level striping makes multiple
accesses impossible.
Random Write Performance: Poor, due to bit-level striping and ECC
calculation overhead.
Sequential Read Performance: Very good, due to parallelism of many
drives.
Sequential Write Performance: Fair to good.
Cost: Very expensive.
Special Considerations: Not used in modern systems.
Recommended Uses: Not used in modern systems.
Next: RAID Level 3