 |
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 |
|
|