HP 3PAR CIM API Programming Reference (OS 3.1.2 MU2) (QL226-97015, June 2013)

2. Invoking the StorageConfigurationServices 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