RAID Levels
RAID level 0 - Disk Striping (without fault tolerance)
RAID 0 implements a striped disk array, the data is broken down into blocks
and each block is written to a separate disk drive with best performance being
achieved when data is striped across multiple channels with only one drive per
channel.
example:
HDD1 HDD2 HDD3 HDD4
block1 block2 block3 block4
block5 block6 block7 block8
block9 block10 block11 block12
block13 block14 block15 block16
The benefit is I/O performance is greatly improved by spreading the I/O load
across many channels and drives. No parity calculation overhead is involved. It
is a very simple design that is just as easy to implement.
Keep in mind though that RAID 0 is not considered a "True" RAID and
should really be called “AID” since it doesn’t include redundancy. The
failure of just one drive will result in all data in the entire array being lost
and so RAID 0 should never be used in mission critical environments.
RAID level 1 - Disk Mirroring/Duplexing
RAID 1 offers 100% redundancy of data which means no rebuild of data is
necessary in case of disk failure, just a copy to the replacement disk.
example:
HDD1 HDD2 HDD3 HDD4
block1 block1 block5 block5
block2 block2 block6 block6
block3 block3 block7 block7
block4 block4 block8 block8
While RAID 1 usually doesn’t offer any increase in speed, some controllers
will allow one Write/two Read and so can offer twice the Read transaction rate
of single disks, but still the same Write transaction rate as single disks.
Transfer rate per block is still equal to single disks.
RAID 1 is the simplest RAID storage subsystem design with the highest ECC (Error
Checking/Correction) disk overhead of all RAID types (100%).
Mirroring becomes Duplexing when the controller card is duplicated as well as
the drive, providing tolerance against failures of either a drive or a
controller. It is much less commonly seen than straight mirroring.
Typically the RAID function is done by system software, loading the CPU/Server
and possibly degrading throughput at high activity levels and may not support
hot swap of failed disk. Hardware implementation is strongly recommended.
RAID level 2 - Bit Level Striping Using Hamming Code ECC
In RAID 2, each data bit is written to a drive or drive set. A hamming code
ECC is generated for each and stored in a separate drive or drive set.
example:
HDD1 HDD2 HDD3 HDD4 HDD5 HDD6
[ stripe1 ] [ stripe1-ECC ]
[ stripe2 ] [ stripe2-ECC ]
[ stripe3 ] [ stripe3-ECC ]
[ stripe4 ] [ stripe4-ECC ]
The cool thing here is that data gets checked on read and corrected on the
fly if necessary. Extremely high data transfer rates possible and controller
design is relatively simple, compared to RAID levels 3,4 & 5.
To achieve high transfer speeds a very high ratio of ECC disks to data disks
is required making RAID 2 somewhat inefficient with a very high entry level
cost, implying a very high transfer rate requirement to justify.
RAID level 3 - Parallel Transfer with Parity
With RAID 3, the data is striped across the data disks at the byte level with
stripe size usually somewhere under a KB. Stripe parity is generated on Writes,
recorded on the parity disk and checked on Reads.
example:
HDD1 HDD2 HDD3 HDD4
[ stripe1 ] ECC1
[ stripe2 ] ECC2
[ stripe3 ] ECC3
[ stripe4 ] ECC4
RAID 3 has a very high Read data transfer rate and can have a high Write data
transfer. The low ratio of ECC disks to data disks means high monetary
efficiency.
Downside is that if write operation is maxed or spindels are synched,
transaction speed can slow to that of a single disk at best. It is also very
difficult and resource intensive to do as a software RAID.
RAID level 4 - Independent Data Disks with Shared Parity
In RAID 4, the data is striped across the data disks by blocks. Parity for
same rank blocks is generated on Writes, recorded on the parity disk and checked
on Reads.
example:
HDD1 HDD2 HDD3 HDD4
a - block1 block2 block3 ECCa
b - block4 block5 block6 ECCb
c - block7 block8 block9 ECCc
d - block10 block11 block12 ECCd
Very high Read data transaction rate and low ratio of ECC (Parity) disks to
data disks means high efficiency. High aggregate Read transfer rate.
The worst write transaction rate and write aggregate transfer rate. Difficult
and inefficient data rebuild in the event of disk failure. Block Read transfer
rate equal to that of a single disk
RAID level 5 - Independent Data Disks with Distributed Parity
RAID 5 stipes data by block on a data disk and parity for each stripe is
generated on Writes and checked on Reads with the parity being distributed
across the data disk set.
example:
HDD1 HDD2 HDD3 HDD4
a - block1 block2 block3 ECCa
b - block4 block5 ECCb block6
c - block7 ECCc block8 block9
d - ECCd block10 block11 block12
Highest read data transaction rate and by eliminating the paraty drive bottle
neck achieves medium write data transaction rate. Good aggregate transfer rate.
Disk failure has a medium impact on throughput and is difficult to rebuild in
the event of a disk failure (as compared to RAID level 1)
RAID Level 6 - Independent Data Disks with Two Independent Distributed Parity
RAID 6 stripes blocks of data and parity across an array of drives and
calculates two sets of parity information for each stripe to improve fault
tolerance. RAID 6 can handle the failure of any two drives in the array while
other single RAID levels can handle at most one fault.
HDD1 HDD2 HDD3 HDD4 HDD5
a - block1 block2 block3 ECCa1 ECCa2
b - block4 block5 ECCb1 ECCb2 block6
c - block7 ECCc1 ECCc2 block8 block9
d - ECCd1 ECCd2 block10 block11 block12
Performance-wise, RAID 6 is generally slightly worse than RAID 5 in terms of
writes due to the added overhead of more parity calculations, but may be
slightly faster in random reads due to spreading of data over one more disk. As
with RAID levels 4 and 5, performance can be adjusted by experimenting with
different stripe sizes.
RAID 7 - Asynchronous, cached striping with dedicated parity.
RAID 7 is a trademarked marketing term of Storage Computer Corporation, used
to describe their proprietary RAID design. This is an expensive solution, made
and supported by only one company.
Specialized high-end applications requiring absolutely top performance and
willing to live with the limitations of a proprietary, expensive solution. For
most users, a multiple RAID level solution like RAID 1+0 will probably yield
comparable performance improvements over single RAID levels, at lower cost.
|