# Class CIM_StorageRelocationService
extends CIM_Service

Typically, a storage pool is established on a set of storage extents, and a volume is allocated to a storage pool with different performance characteristics (e.g. with different RPM drives, or different drive classes). Storage Relocation (SR) can relocate storage elements to a different storage pool, or relocate a storage element to a specified set of storage extents.The relocation source and target could be either local or remote. Two functions are defined in this class: RelocateStorageElementsToStoragePool and RelocateStorageElementToElements.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Service
|
+--CIM_StorageRelocationService

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | Typically, a storage pool is established on a set of storage extents, and a volume is allocated to a storage pool with different performance characteristics (e.g. with different RPM drives, or different drive classes). Storage Relocation (SR) can relocate storage elements to a different storage pool, or relocate a storage element to a specified set of storage extents.The relocation source and target could be either local or remote. Two functions are defined in this class: RelocateStorageElementsToStoragePool and RelocateStorageElementToElements.
Experimental | boolean | true
UMLPackagePath | string | CIM::Device::StorageServices

## Class Properties

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_Service
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
Generation | uint64 | CIM_ManagedElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
Name | string | CIM_Service
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryOwnerContact | string | CIM_Service
PrimaryOwnerName | string | CIM_Service
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Started | boolean | CIM_Service
StartMode | string | CIM_Service
Status | string | CIM_ManagedSystemElement
SystemCreationClassName | string | CIM_Service
SystemName | string | CIM_Service
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### RelocateStorageVolumesToStoragePool (uint32)

#### Method Qualifiers (RelocateStorageVolumesToStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to relocate a specified set of volumes to a target StoragePool. Both relocation source and target could be either local or remote. If 0 is returned, the function completes successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to kick off the relocation. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, ElementType Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (RelocateStorageVolumesToStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
TheElements | CIM_StorageVolume[]
Description | string | As an input, TheElements is an array of storage volumes for the source of relocation. As an output, it represents the storage volumes after relocation. Notice that: 1) The input may not be identical to the output. One example is relocation from local to remote. 2)It is output only when the relocation operation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TargetPool | REF CIM_StoragePool
Description | string | A reference to target storage pool instance used for relocation. As an input parameter, TargetPool specifies the storage pool to relocate source onto. As an output parameter, TargetPool represents the pool actually used as the relocation target. It is output only when the relocation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The requirements for the relocation target pool. If set to a null value, the default configuration associated with the service will be used. This parameter should be a reference to a CIM_StorageSetting which represent the profile appropriate to the relocation target pool. If not NULL, this parameter will supply a new Goal for the target pool.
IN | boolean | true

#### RelocateStoragePoolsToStoragePool (uint32)

#### Method Qualifiers (RelocateStoragePoolsToStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to relocate a specified set of storage pools to a target StoragePool. Both relocation source and target could be either local or remote. If 0 is returned, the function completes successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to kick off the relocation. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, ElementType Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (RelocateStoragePoolsToStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
TheElements | CIM_StoragePool[]
Description | string | As an input, TheElements is an array of storage pools for the source of relocation. As an output, it represents the storage pools after relocation. Notice that: 1) The input may not be identical to the output. One example is relocation from local to remote. 2)It is output only when the relocation operation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TargetPool | REF CIM_StoragePool
Description | string | A reference to target storage pool instance used for relocation. As an input parameter, TargetPool specifies the storage pool to relocate source onto. As an output parameter, TargetPool represents the pool actually used as the relocation target. It is output only when the relocation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The requirements for the relocation target pool. If set to a null value, the default configuration associated with the service will be used. This parameter should be a reference to a CIM_StorageSetting which represent the profile appropriate to the relocation target pool. If not NULL, this parameter will supply a new Goal for the target pool.
IN | boolean | true

#### RelocateStorageVolumeToStorageExtents (uint32)

#### Method Qualifiers (RelocateStorageVolumeToStorageExtents)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to relocate a StorageVolume to a specified group of storage extents. Both relocation source and target couldbe either local or remote. If 0 is returned, the function completed successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to kick off the relocation. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, ElementType Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (RelocateStorageVolumeToStorageExtents)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
InElements | CIM_StorageExtent[]
Description | string | An array of StorageExtents that 'TheElement' is relocated to.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The requirements for the relocation target element. If set to a null value, the default configuration associated with the service will be used. This parameter should be a reference to a CIM_StorageSetting which represents the profile appropriate to the relocation target elements. If not NULL, this parameter will supply a new Goal for the target elements.
IN | boolean | true
TheElement | REF CIM_StorageVolume
Description | string | As an input, TheElement is a storageVolume as the source ofrelocation. As an output, it represents the storageVolume after relocation. Notice that: 1) The input may not be identical to the output. One example is relocation from local to remote. 2) It is output only when the relocation operation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true

#### RelocateStoragePoolToStorageExtents (uint32)

#### Method Qualifiers (RelocateStoragePoolToStorageExtents)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to relocate a StoragePool to a specified group of storage extents. Both relocation source and target couldbe either local or remote. If 0 is returned, the function completed successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to kick off the relocation. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, ElementType Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (RelocateStoragePoolToStorageExtents)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
InElements | CIM_StorageExtent[]
Description | string | An array of StorageExtents that 'TheElement' is relocated to.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The requirements for the relocation target element. If set to a null value, the default configuration associated with the service will be used. This parameter should be a reference to a CIM_StorageSetting which represents the profile appropriate to the relocation target elements. If not NULL, this parameter will supply a new Goal for the target elements.
IN | boolean | true
TheElement | REF CIM_StoragePool
Description | string | As an input, TheElement is a storagePool as the source ofrelocation. As an output, it represents the storagePool after relocation. Notice that: 1) The input may not be identical to the output. One example is relocation from local to remote. 2) It is output only when the relocation operation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true

#### RelocateLogicalDiskToStorageExtents (uint32)

#### Method Qualifiers (RelocateLogicalDiskToStorageExtents)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to relocate a LogicalDisk to a specified group of storage extents. Both relocation source and target couldbe either local or remote. If 0 is returned, the function completed successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to kick off the relocation. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, ElementType Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (RelocateLogicalDiskToStorageExtents)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
InElements | CIM_StorageExtent[]
Description | string | An array of StorageExtents that 'TheElement' is relocated to.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The requirements for the relocation target element. If set to a null value, the default configuration associated with the service will be used. This parameter should be a reference to a CIM_StorageSetting which represents the profile appropriate to the relocation target elements. If not NULL, this parameter will supply a new Goal for the target elements.
IN | boolean | true
TheElement | REF CIM_LogicalDisk
Description | string | As an input, TheElement is a logicalDisk as the source ofrelocation. As an output, it represents the logicalDisk after relocation. Notice that: 1) The input may not be identical to the output. One example is relocation from local to remote. 2) It is output only when the relocation operation succeeds.
IN | boolean | true
OUT | boolean | true
Required | boolean | true

#### GetAvailableTargetRelocationExtents (uint32)

#### Method Qualifiers (GetAvailableTargetRelocationExtents)

Name | Data Type | Value
--- | --- | ---
Description | string | This method can be used to retrieve a list of available target Extents that may be used in the relocation of a StoragePool, StorageVolume, or LogicalDisk. This method MUST return Extents from InPool. The returned Extents are available at the time the method returns. There is no guarantee that the same Extents will be available later. This method MUST return the Extents that are not being used as supporting capacity for any other Pools, Volumes, or LogicalDisks that have been allocated from this Pool.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Reserved, Vendor Specific

#### Method Parameters (GetAvailableTargetRelocationExtents)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
AvailableExtents | CIM_StorageExtent[]
Description | string | List of references to available StorageExtents for relocation.
OUT | boolean | true
InPool | REF CIM_StoragePool
Description | string | A reference to target storage pool instance used for relocation. InPool specifies the storage pool to relocate source onto.
IN | boolean | true
Required | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The TargetSettingGoal for which supported extents should be retrieved as available. If a NULL is passed for the Goal, the method will return all available extents, regardless of the goal. There exists a possibility of error in relocating a Pool, Volume, or LogicalDisk to extents retrieved in this manner.
IN | boolean | true
TheElement | REF CIM_LogicalElement
Description | string | TheElement is a storage element as the source of relocation.
IN | boolean | true
Required | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
ChangeAffectedElementsAssignedSequence | uint32 | CIM_Service
RequestStateChange | uint32 | CIM_EnabledLogicalElement
StartService | uint32 | CIM_Service
StopService | uint32 | CIM_Service