Scratchpad r77 (See the current copy)

Information about Tcl
Information about interesting Current Projects
Information about Random Number Generation
Information about Threads
Random Demonstrations
Feel free to contact me about this website at mailto:wiki@rkeene.org
Random Scripts
Information about Roy Keene
Random Links
My Friends
My Scratchpad
----
Random Diatribes
What you will find here

** 16-SEP-2012: RAID Allocation Guide **
Given several trays (T) of disks, each tray with the same number of disks (N) per tray we can compute the "redundancy" (R) of an array built out of various standard and nested configurations, as well as how much space is lost to parity/mirroring.

Redundancy (R) is defined as the minimum number of disks that can be lost to cause integrity failure (position is worst-case)

The tables below are list the formula to compute each value (if needed) and the example values in parenthesis for 3 trays of each 7 disks (21 disks total), that is N = 7, T = 3.

Standard RAID levels:
%| RAID Level | Redundancy        | Space Overhead                               |%
| 0           | 1                 | 0 %                                          |
| 1           | N x T (21)| (N x T - 1) / (N x T) (95%)  |
| 5           | 2                 | 1 / (N x T) (5%)                     |
| 6           | 3                 | 2 / (N x T) (10%)                    |
| 10          | 2                 | -                                            |

Nested RAID Levels (RAID A of RAID Bs, or RAIDB+A):
%| A   | B    | Redundancy        | Space Overhead                                                  |%
| 0    | 0    | 1                 | 0 %                                                             |
| 0    | 1    | N (7)         | (N - 1) / N (86%)                                       |
| 0    | 5    | 2                 | 1 / N (14%)                                                 |
| 0    | 6    | 3                 | 2 / N (28%)                                                 |
| 1    | 0    | T (3)         | (T - 1) / T (66%)                                       |
| 1    | 1    | N x T (21)| (N x T - 1) / (N x T) (95%)                     |
| 1    | 5    | 2 x T (6)     | (N x (T - 1) + 1) / (N x T) (71%)               |
| 1    | 6    | 3 x T (9)     | (N x (T - 2) + 1) / (N x T) (76%)               |
| 5    | 0    | 2                 | 1 / T (33%)                                                 |
| 5    | 1    | N x 2 (14)    | 1 - ((1 - ((N - 1) / N)) x ((T - 1) / T)) (91%) |
| 5    | 5    | 4                 | (N + T - 1) / (N x T) (43%)                     |
| 5    | 6    | 6                 | (N + (T - 1) x 2) / (N x T) (52%)               |
| 6    | 0    | 3                 | 2 / T (66%)                                                 |
| 6    | 1    | N x 3 (21)    | (N x 3 - 1) / (N x T) (95%)                         |
| 6    | 5    | 6                 | (N x 2 + 1) / (N x T') (71%)                        |
| 6    | 6    | 9                 | (N x 2 + 2) / (N x T') (76%)                        |

Given this we can also come up with an aggregate "mean time between failure" (MTBF) based on the MTBF of each disk and the amount of redundancy.


For most RAID levels this would be:  MTBF_AGG = MTBF_DISK / (N x T - R + 1)

For RAID levels B+0 this would be: MTBF_AGG = (MTBF_DISK * T) / (N - R + 1)

For RAID10, it's even more complicated.