HP 3PAR StoreServ 7200 2-node HP 3PAR CIM API Programming Reference (OS 3.1.2 - Page 27

Is always NULL., StorageSetting.DeleteInstance

Page 27 highlights

2. Invoking the StorageConfigurationService's CreateOrModifyStoragePool method: a client passes in the StorageSetting obtained in step 1 and other relevant input parameters to create a DynamicStoragePool. • The input StorageSetting can be deleted by StorageSetting.DeleteInstance, or it can be made persistent via ModifyInstance of the StorageSetting.ChangeableType property to "Persistent" and StorageSetting.TemplateType property to "DynamicStoragePool". • The method CreateOrModifyStoragePool (existing method) of StorageConfigurationService is used to create a DynamicStoragePool (DSP). Only DynamicStoragePool can be created; concrete pool cannot be created. The method signature is described below: uint32 CreateOrModifyStoragePool [In] String ElementName, [Out] CIM_ConcreteJob ref Job, [In] StorageSetting ref Goal, [In, Out] Uint64 Size, [In] String InPools[], [In] String InExtents[], [In, Out] DynamicStoragePool ref Pool); • ElementName - The end user's input name of the DynamicStoragePool (CPG) to be created. • Job - Is always NULL. • Goal - This is an instance of StorageSetting describing characteristics of the desired DynamicStoragePool. If it is NULL, the provider picks the default setting. The ThinProvisionedPoolType property specifies what type of DSP to create: (ThinlyProvisionedQuotaStoragePool(8) for a DSP with an upper limit, or ThinlyProvisionedLimitlessStoragePool(9) for a DSP with no upper bound). • Size - The virtual size of the DynamicStoragePool. On initial creation, the system does not allocate any space to the pool. The minimum unit (the grow increment) is allocated for this pool only after a volume is created off this pool. If the DSP has a size limit, then ThinProvisionedPoolType property in Goal has to be set to ThinlyProvisionedQuotaStoragePool(8). To create a "limitless" DynamicStoragePool (e.g., creating a CPG without specifying the size), the ThinProvisionedPoolType property in Goal has to be set to ThinlyProvisionedLimitlessStoragePool(9), and this parameter is ignored. • InPools - This shall contain an array of StoragePool where the new pool is to be created from. However, only support creation from "HP_3PAR:primordial""HP_3PAR:all-FC", "HP_3PAR:all-NL", or "HP_3PAR:all-SSD" pools is supported. Therefore, this array should contain only one element. If any other values are passed in, an "Invalid Parameter" error is returned. If primordial pool is specified, the DynamicStoragePool will be created from the all-FC pool. • InExtents - This is optional, but can contain an array of references to TPD_DiskStorageExtent to let the client specify the disks that should be used to create the DynamicStoragePool. • Pool - It should be null as an input to create a new DynamicStoragePool. Upon method completion, it contains the object path of the newly created DynamicStoragePool. If it is not null, it refers to an existing DynamicStoragePool whose properties are being modified based on the input Goal (StorageSetting). Block Services Package 27

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309

2.
Invoking the
StorageConfigurationService
s CreateOrModifyStoragePool
method: a client passes in the
StorageSetting
obtained in step 1 and other relevant input
parameters to create a
DynamicStoragePool
.
The input
StorageSetting
can be deleted by
StorageSetting.DeleteInstance
,
or it can be made persistent via
ModifyInstance
of the
StorageSetting
.
ChangeableType
property to “Persistent” and
StorageSetting.TemplateType
property to “DynamicStoragePool”.
The method
CreateOrModifyStoragePool
(existing method) of
StorageConfigurationService
is used to create a
DynamicStoragePool
(DSP).
Only
DynamicStoragePool
can be created; concrete pool cannot be created.
The method signature is described below:
uint32 CreateOrModifyStoragePool
[In] String ElementName,
[Out] CIM_ConcreteJob ref Job,
[In] StorageSetting ref Goal,
[In, Out] Uint64 Size,
[In] String InPools[],
[In] String InExtents[],
[In, Out] DynamicStoragePool ref Pool);
ElementName
- The end user’s input name of the
DynamicStoragePool
(CPG) to be
created.
Job
- Is always NULL.
Goal
- This is an instance of
StorageSetting
describing characteristics of the desired
DynamicStoragePool
. If it is NULL, the provider picks the default setting. The
ThinProvisionedPoolType
property specifies what type of DSP to create:
(
ThinlyProvisionedQuotaStoragePool(8)
for a DSP with an upper limit, or
ThinlyProvisionedLimitlessStoragePool(9)
for a DSP with no upper bound).
Size
- The virtual size of the
DynamicStoragePool
. On initial creation, the system
does not allocate any space to the pool. The minimum unit (the grow increment) is allocated
for this pool only after a volume is created off this pool. If the DSP has a size limit, then
ThinProvisionedPoolType
property in
Goal
has to be set to
ThinlyProvisionedQuotaStoragePool(8)
. To create a “limitless”
DynamicStoragePool
(e.g., creating a CPG without specifying the size), the
ThinProvisionedPoolType
property in
Goal
has to be set to
ThinlyProvisionedLimitlessStoragePool(9)
, and this parameter is ignored.
InPools
- This shall contain an array of
StoragePool
where the new pool is to be
created from. However, only support creation from
“HP_3PAR:primordial”“HP_3PAR:all-FC”
,
“HP_3PAR:all-NL”
, or
“HP_3PAR:all-SSD”
pools
is supported. Therefore, this array should contain only one element. If any other values
are passed in, an “Invalid Parameter” error is returned. If primordial pool is specified,
the DynamicStoragePool will be created from the all-FC pool.
InExtents
- This is optional, but can contain an array of references to
TPD_DiskStorageExtent to let the client specify the disks that should be used to create the
DynamicStoragePool.
Pool
- It should be null as an input to create a new
DynamicStoragePool
. Upon
method completion, it contains the object path of the newly created
DynamicStoragePool
. If it is not null, it refers to an existing
DynamicStoragePool
whose properties are being modified based on the input
Goal
(
StorageSetting
).
Block Services Package
27