08-16-2017, 10:50 PM
[attachment=14680]
Raid
What is RAID
Redundant Array of Independent (Inexpensive) Disks
A set of disk stations treated as one logical station
Data are distributed over the stations
Redundant capacity is used for parity allowing for data repair
Levels of RAID
6 levels of RAID (0-5) have been accepted by industry
Other kinds have been proposed in literature
Level 2 and 4 are not commercially available, they are included for clarity
RAID 0
All data (user and system) are distributed over the disks so that there is a reasonable chance for parallelism
Disk is logically a set of strips (blocks, sectors, ). Strips are numbered and assigned consecutively to the disks (see picture.)
Raid 0 (No redundancy)
Data mapping Level 0
RAID 0:
Performance depends highly on the the request patterns
High data transfer rates are reached if
Integral data path is fast (internal controllers, I/O bus of host system, I/O adapters and host memory busses)
Application generates efficient usage of the disk array by requests that span many consecutive strips
If response time is important (transactions) more I/O requests can be handled in parallel
Raid 1 (mirrored)
RAID 1
RAID 1 does not use parity, it simply mirrors the data to obtain reliability
Plus:
Reading request can be served by any of the two disks containing the requested data (minimum search time)
Writing request can be performed in parallel to the two disks: no writing penalty
Recovery from error is easy, just copy the data from the correct disk
RAID 1
Minus:
Price for disks is doubled
Will only be used for system critical data that must be available at all times
RAID 1 can reach high transfer rates and fast response times ( 2*RAID 0) if most of the requests are reading requests. In case most requests are writing requests, RAID 1 is not much faster than RAID 0.
Raid 2 (redundancy through Hamming code)
RAID 2
Small strips, one byte or one word
Synchronized disks, each I/O operation is performed in a parallel way
Error correction code (Hamming code) allows for correction of a single bit error
Controller can correct without additional delay
Is still expensive, only used in case many frequent errors can be expected
Hamming code
RAID 3 (bit-interleaved parity)
RAID 3
Level 2 needs log2(number of disks) parity disks
Level 3 needs only one, for one parity bit
In case one disk crashes, the data can still be reconstructed even on line ( reduced mode ) and be written (X1-4 data, P parity):
P = X1+X2+X3+X4
X1=P+X2+X3+X4
RAID 2-3 have high data transfer times, but perform only one I/O at the time so that response times in transaction oriented environments are not so good
RAID 4 (block-level parity)
RAID 4
Larger strips and one parity disk
Blocks are kept on one disk, allowing for parallel access by multiple I/O requests
Writing penalty: when a block is written, the parity disk must be adjusted (e.g. writing on X1):
P =X4+X3+X2+X1
P =X4+X3+X2+X1
=X4+X3+X2+X1 +X1+X1
=P+X1+X1
Parity disk may be a bottleneck
Good response times, less good transfer rates
RAID 5 (block-level distributed parity)
RAID 5
Distribution of the parity strip to avoid the bottle neck.
Can use round robin:
Parity disk = (-block number/4) mod 5