|
Use extra disks for redundant information,
e.g., checksum or parity, and repair faults of disks from those extra
disks
|
Partition disks into groups and assign
some extra check disks to each group |
|
|
MTTR (Mean Time To Repair) |
|
MTBF (group) = [MTBF (individual disk) / # of
disks in the group] * [1/prob(another failure in the group before repair)]
|
prob(another failure) = MTTR /
MTBF(remaining disks in the group) |
|
|
MTBF(raid) = MTBF(group) / # of group =
MTBF(individual disk)2/[(D+C*n) * (G+C-1) * MTTR]
|
D = total # of disks |
|
G = # of data disks in a group |
|
C = # of check disks in a group |
|
n = # of groups |
|
|
Some metrics
|
Reliability overhead = check-disks /
data-disks |
|
Usable storage capacity percentage =
just reverse of reliability overhead |
|
Performance: small independent reads Vs
big reads |
|
Effective performance = performance
boost Vs check disk overhead |
|
|
Bit
level interleaving
|
Pros:
use all disks simultaneously; load balancing |
|
Cons
|
only
1 I/O at a time per group |
|
if
disks are not synchronized, biggest rotation delay is taken
account |
|
|
|
Organization
|
Sector
(or disk I/O unit) interleaving |
|
Use
parity to correct the bit of the faulty disk |
|
|
Read
- just read the data disk having the sector |
|
Write
|
Read
the data disk having the sector |
|
Read
the parity disk |
|
Write
to the data disk |
|
Write
to the parity disk
|
new
parity = (old-data XOR new-data) XOR old-parity |
|
|
|
Advantages
|
Same
cost as level 2 & 3 |
|
Bulk
I/O is as fast as level 2 & 3 |
|
Small
I/O is a lot faster than level 2 & 3 |
|
|
Disadvantages
|
Small
modify is still slow. But this type of access is rare! |
|
Parity
disk should be accessed every time and thus is bottleneck
|
Only
one write is allowed at a time per group |
|
LFS can help with this since it writes out to a log
instead of updating in place |
|
|