Skip to content

Commit 54c7246

Browse files
authored
Added decision matrix row for max disk size for Oracle block volumes (#126)
* Added decision matrix row for max disk size for Oracle block volumes Signed-off-by: Vinayak Shinde <vinayakshnd@gmail.com>
1 parent c33708f commit 54c7246

3 files changed

Lines changed: 309 additions & 2 deletions

File tree

oracle/storagemanager/spec/generator.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,17 @@ func main() {
1919
matrixRows := []cloudops.StorageDecisionMatrixRow{}
2020
for vpu := 0; vpu <= 120; vpu = vpu + 10 {
2121
matrixRows = append(matrixRows, getMatrixRows(vpu)...)
22+
row := getCommonRow(0)
23+
iopsPerGB, maxIopsPerVol, err := getIOPSdetails(vpu)
24+
if err != nil {
25+
panic(err)
26+
}
27+
row.DriveType = fmt.Sprintf("%s%d", vpusPrefix, vpu)
28+
row.MinIOPS = uint64(maxIopsPerVol)
29+
row.MaxIOPS = uint64(maxIopsPerVol)
30+
row.MinSize = uint64(math.Ceil(float64(row.MaxIOPS) / float64(iopsPerGB)))
31+
row.MaxSize = uint64(32768)
32+
matrixRows = append(matrixRows, row)
2233
}
2334
matrix := cloudops.StorageDecisionMatrix{Rows: matrixRows}
2435
if err := parser.NewStorageDecisionMatrixParser().MarshalToYaml(&matrix, oracleYamlPath); err != nil {
@@ -29,9 +40,8 @@ func main() {
2940

3041
}
3142

32-
func getMatrixRows(vpu int) []cloudops.StorageDecisionMatrixRow {
43+
func getIOPSdetails(vpu int) (int64, int64, error) {
3344
var iopsPerGB, maxIopsPerVol int64
34-
rows := []cloudops.StorageDecisionMatrixRow{}
3545
switch vpu {
3646
case 0:
3747
iopsPerGB = 2
@@ -72,6 +82,17 @@ func getMatrixRows(vpu int) []cloudops.StorageDecisionMatrixRow {
7282
case 120:
7383
iopsPerGB = 225
7484
maxIopsPerVol = 300000
85+
default:
86+
return 0, 0, fmt.Errorf("invalid vpu value [%d]", vpu)
87+
}
88+
return iopsPerGB, maxIopsPerVol, nil
89+
}
90+
91+
func getMatrixRows(vpu int) []cloudops.StorageDecisionMatrixRow {
92+
rows := []cloudops.StorageDecisionMatrixRow{}
93+
iopsPerGB, maxIopsPerVol, err := getIOPSdetails(vpu)
94+
if err != nil {
95+
panic(err)
7596
}
7697
row := getCommonRow(0)
7798

oracle/storagemanager/testspecs/oracle.yaml

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ rows:
6666
priority: 0
6767
thin_provisioning: false
6868
drive_type: pv-0
69+
- min_iops: 3000
70+
max_iops: 3000
71+
instance_type: '*'
72+
instance_max_drives: 8
73+
instance_min_drives: 1
74+
region: '*'
75+
min_size: 1500
76+
max_size: 32768
77+
priority: 0
78+
thin_provisioning: false
79+
drive_type: pv-0
6980
- min_iops: 0
7081
max_iops: 500
7182
instance_type: '*'
@@ -616,6 +627,17 @@ rows:
616627
priority: 0
617628
thin_provisioning: false
618629
drive_type: pv-10
630+
- min_iops: 25000
631+
max_iops: 25000
632+
instance_type: '*'
633+
instance_max_drives: 8
634+
instance_min_drives: 1
635+
region: '*'
636+
min_size: 417
637+
max_size: 32768
638+
priority: 0
639+
thin_provisioning: false
640+
drive_type: pv-10
619641
- min_iops: 0
620642
max_iops: 500
621643
instance_type: '*'
@@ -1716,6 +1738,17 @@ rows:
17161738
priority: 0
17171739
thin_provisioning: false
17181740
drive_type: pv-20
1741+
- min_iops: 50000
1742+
max_iops: 50000
1743+
instance_type: '*'
1744+
instance_max_drives: 8
1745+
instance_min_drives: 1
1746+
region: '*'
1747+
min_size: 667
1748+
max_size: 32768
1749+
priority: 0
1750+
thin_provisioning: false
1751+
drive_type: pv-20
17191752
- min_iops: 0
17201753
max_iops: 500
17211754
instance_type: '*'
@@ -3366,6 +3399,17 @@ rows:
33663399
priority: 0
33673400
thin_provisioning: false
33683401
drive_type: pv-30
3402+
- min_iops: 75000
3403+
max_iops: 75000
3404+
instance_type: '*'
3405+
instance_max_drives: 8
3406+
instance_min_drives: 1
3407+
region: '*'
3408+
min_size: 834
3409+
max_size: 32768
3410+
priority: 0
3411+
thin_provisioning: false
3412+
drive_type: pv-30
33693413
- min_iops: 0
33703414
max_iops: 500
33713415
instance_type: '*'
@@ -5566,6 +5610,17 @@ rows:
55665610
priority: 0
55675611
thin_provisioning: false
55685612
drive_type: pv-40
5613+
- min_iops: 100000
5614+
max_iops: 100000
5615+
instance_type: '*'
5616+
instance_max_drives: 8
5617+
instance_min_drives: 1
5618+
region: '*'
5619+
min_size: 953
5620+
max_size: 32768
5621+
priority: 0
5622+
thin_provisioning: false
5623+
drive_type: pv-40
55695624
- min_iops: 0
55705625
max_iops: 500
55715626
instance_type: '*'
@@ -8316,6 +8371,17 @@ rows:
83168371
priority: 0
83178372
thin_provisioning: false
83188373
drive_type: pv-50
8374+
- min_iops: 125000
8375+
max_iops: 125000
8376+
instance_type: '*'
8377+
instance_max_drives: 8
8378+
instance_min_drives: 1
8379+
region: '*'
8380+
min_size: 1042
8381+
max_size: 32768
8382+
priority: 0
8383+
thin_provisioning: false
8384+
drive_type: pv-50
83198385
- min_iops: 0
83208386
max_iops: 500
83218387
instance_type: '*'
@@ -11616,6 +11682,17 @@ rows:
1161611682
priority: 0
1161711683
thin_provisioning: false
1161811684
drive_type: pv-60
11685+
- min_iops: 150000
11686+
max_iops: 150000
11687+
instance_type: '*'
11688+
instance_max_drives: 8
11689+
instance_min_drives: 1
11690+
region: '*'
11691+
min_size: 1112
11692+
max_size: 32768
11693+
priority: 0
11694+
thin_provisioning: false
11695+
drive_type: pv-60
1161911696
- min_iops: 0
1162011697
max_iops: 500
1162111698
instance_type: '*'
@@ -15466,6 +15543,17 @@ rows:
1546615543
priority: 0
1546715544
thin_provisioning: false
1546815545
drive_type: pv-70
15546+
- min_iops: 175000
15547+
max_iops: 175000
15548+
instance_type: '*'
15549+
instance_max_drives: 8
15550+
instance_min_drives: 1
15551+
region: '*'
15552+
min_size: 1167
15553+
max_size: 32768
15554+
priority: 0
15555+
thin_provisioning: false
15556+
drive_type: pv-70
1546915557
- min_iops: 0
1547015558
max_iops: 500
1547115559
instance_type: '*'
@@ -19866,6 +19954,17 @@ rows:
1986619954
priority: 0
1986719955
thin_provisioning: false
1986819956
drive_type: pv-80
19957+
- min_iops: 200000
19958+
max_iops: 200000
19959+
instance_type: '*'
19960+
instance_max_drives: 8
19961+
instance_min_drives: 1
19962+
region: '*'
19963+
min_size: 1213
19964+
max_size: 32768
19965+
priority: 0
19966+
thin_provisioning: false
19967+
drive_type: pv-80
1986919968
- min_iops: 0
1987019969
max_iops: 500
1987119970
instance_type: '*'
@@ -24816,6 +24915,17 @@ rows:
2481624915
priority: 0
2481724916
thin_provisioning: false
2481824917
drive_type: pv-90
24918+
- min_iops: 225000
24919+
max_iops: 225000
24920+
instance_type: '*'
24921+
instance_max_drives: 8
24922+
instance_min_drives: 1
24923+
region: '*'
24924+
min_size: 1250
24925+
max_size: 32768
24926+
priority: 0
24927+
thin_provisioning: false
24928+
drive_type: pv-90
2481924929
- min_iops: 0
2482024930
max_iops: 500
2482124931
instance_type: '*'
@@ -30316,6 +30426,17 @@ rows:
3031630426
priority: 0
3031730427
thin_provisioning: false
3031830428
drive_type: pv-100
30429+
- min_iops: 250000
30430+
max_iops: 250000
30431+
instance_type: '*'
30432+
instance_max_drives: 8
30433+
instance_min_drives: 1
30434+
region: '*'
30435+
min_size: 1283
30436+
max_size: 32768
30437+
priority: 0
30438+
thin_provisioning: false
30439+
drive_type: pv-100
3031930440
- min_iops: 0
3032030441
max_iops: 500
3032130442
instance_type: '*'
@@ -36366,6 +36487,17 @@ rows:
3636636487
priority: 0
3636736488
thin_provisioning: false
3636836489
drive_type: pv-110
36490+
- min_iops: 275000
36491+
max_iops: 275000
36492+
instance_type: '*'
36493+
instance_max_drives: 8
36494+
instance_min_drives: 1
36495+
region: '*'
36496+
min_size: 1310
36497+
max_size: 32768
36498+
priority: 0
36499+
thin_provisioning: false
36500+
drive_type: pv-110
3636936501
- min_iops: 0
3637036502
max_iops: 500
3637136503
instance_type: '*'
@@ -42966,3 +43098,14 @@ rows:
4296643098
priority: 0
4296743099
thin_provisioning: false
4296843100
drive_type: pv-120
43101+
- min_iops: 300000
43102+
max_iops: 300000
43103+
instance_type: '*'
43104+
instance_max_drives: 8
43105+
instance_min_drives: 1
43106+
region: '*'
43107+
min_size: 1334
43108+
max_size: 32768
43109+
priority: 0
43110+
thin_provisioning: false
43111+
drive_type: pv-120

0 commit comments

Comments
 (0)