File tree Expand file tree Collapse file tree 2 files changed +33
-1
lines changed
src/tools/raid-calculator Expand file tree Collapse file tree 2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,10 @@ const raidCalculations = {
11
11
// total disks * size
12
12
return ( num * size ) * unit ;
13
13
} ,
14
+ efficiency ( num ) {
15
+ // uses 100% of space
16
+ return 100 ;
17
+ } ,
14
18
fault ( num , size , unit ) {
15
19
return 'None' ;
16
20
} ,
@@ -25,6 +29,10 @@ const raidCalculations = {
25
29
// total size is size of a single drive
26
30
return size * unit ;
27
31
} ,
32
+ efficiency ( num ) {
33
+ // 1/N
34
+ return ( 1 / num ) * 100 ;
35
+ } ,
28
36
fault ( num , size , unit ) {
29
37
// FT = total - 1
30
38
return `${ num - 1 } drive failures` ;
@@ -40,6 +48,10 @@ const raidCalculations = {
40
48
// (N-1) * S (one drive for parity)
41
49
return ( ( num - 1 ) * size ) * unit ;
42
50
} ,
51
+ efficiency ( num ) {
52
+ // 1 - (1/N)
53
+ return ( 1 - ( 1 / num ) ) * 100 ;
54
+ } ,
43
55
fault ( num , size , unit ) {
44
56
// always 1 failure
45
57
return '1 drive failure' ;
@@ -55,6 +67,10 @@ const raidCalculations = {
55
67
// (N-2) * S (2 parity)
56
68
return ( ( num - 2 ) * size ) * unit ;
57
69
} ,
70
+ efficiency ( num ) {
71
+ // 1 - (2/N)
72
+ return ( 1 - ( 2 / num ) ) * 100 ;
73
+ } ,
58
74
fault ( num , size , unit ) {
59
75
// always 2 drive failures
60
76
return '2 drive failures' ;
@@ -70,6 +86,10 @@ const raidCalculations = {
70
86
// Total disks (stripe)/2 (mirror)
71
87
return ( ( num * size ) / 2 ) * unit ;
72
88
} ,
89
+ efficiency ( num ) {
90
+ // 1/2 (1/strips per stripe, 2 in this case)
91
+ return 50 ;
92
+ } ,
73
93
fault ( num , size , unit ) {
74
94
// one per mirror
75
95
return '1 drive failure per mirrored set' ;
Original file line number Diff line number Diff line change @@ -28,6 +28,10 @@ const calculatedFaultTolerance = computed(() => {
28
28
return raidCalculations [raidType .value ].fault (diskTotal .value , diskSize .value , diskUnit .value );
29
29
});
30
30
31
+ const calculatedSpaceEfficiency = computed (() => {
32
+ return raidCalculations [raidType .value ].efficiency (diskTotal .value );
33
+ });
34
+
31
35
function validateSetup() {
32
36
// validate the selected RAID type against parameters
33
37
return raidCalculations [raidType .value ].validate (diskTotal .value , diskSize .value );
@@ -90,10 +94,18 @@ function validateSetup() {
90
94
<td font-bold width =" 30%" >
91
95
Fault Tolerance
92
96
</td >
93
- <td :value = " calculatedFaultTolerance " >
97
+ <td >
94
98
{{ calculatedFaultTolerance }}
95
99
</td >
96
100
</tr >
101
+ <tr >
102
+ <td font-bold width =" 30%" >
103
+ Space Efficiency
104
+ </td >
105
+ <td >
106
+ {{ calculatedSpaceEfficiency }}%
107
+ </td >
108
+ </tr >
97
109
</tbody >
98
110
</n-table >
99
111
</c-card >
You can’t perform that action at this time.
0 commit comments