Share via


CIM_StoragePool class

A StoragePool is a conglomeration of storage capacity for the purpose of assignment and allocation based on service characteristics, such as location, available space or other criteria (for example, cost per megabyte or hardware ownership). A StoragePool is managed within the scope of a particular System. StoragePools may consist of component StoragePools or StorageExtents. StorageExtents that belong to the StoragePool have a Component relationship to the StoragePool. StorageExtents/StoragePools that are elements of a pool have their available space aggregated into the pool. StoragePools, StorageVolumes and LogicalDisks may be created from StoragePools. This is indicated by the AllocatedFromStoragePool association. StoragePool is scoped to a system by the HostedStoragePool association.

The following syntax is simplified from Managed Object Format (MOF) code and includes all of the inherited properties.

Syntax

[Abstract, Version("2.15.0"), UMLPackagePath("CIM::Device::StorageServices")]
class CIM_StoragePool : CIM_ResourcePool
{
  string   Caption;
  string   Description;
  string   ElementName;
  datetime InstallDate;
  string   Name;
  uint16   OperationalStatus[];
  string   StatusDescriptions[];
  string   Status;
  uint16   HealthState;
  uint64   Capacity;
  uint64   Reserved;
  uint16   ResourceType;
  string   OtherResourceType;
  string   ResourceSubType;
  string   AllocationUnits;
  string   InstanceID;
  string   PoolID;
  boolean  Primordial = FALSE;
  uint64   TotalManagedSpace;
  uint64   RemainingManagedSpace;
  uint16   LowSpaceWarningThreshold;
  uint16   Usage;
  string   OtherUsageDescription;
  uint16   ClientSettableUsage[];
};

Members

The CIM_StoragePool class has these types of members:

Methods

The CIM_StoragePool class has these methods.

Method Description
GetAvailableExtents This method can be used to retrieve a list of available Extents that may be used in the creation or modification of a StoragePool, StorageVolume, or LogicalDisk. The GetAvailableExtents method MUST return the Extents from the set of Component Extents of the Pool on which the method is being invoked. 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. The Extent returned MUST be a component Extent of the Pool or subdivisions of a component Extent, the subdivisions themselves represented as Extents.
GetSupportedSizeRange For pools that that support a range of sizes for volume or pool creation, this method can be used to retrieve the supported range. Note that different pool implementations may support either or both the GetSupportedSizes and GetSupportedSizeRanges methods at different times, depending on Pool configuration. Also note that the advertised sizes may change after the call due to requests from other clients. If the pool currently only supports discrete sizes, then the return value will be set to 1.
GetSupportedSizes For pools that support discrete sizes for volume or pool creation, this method can be used to retrieve a list of supported sizes. Note that different pool implementations may support either or both the GetSupportedSizes and GetSupportedSizeRanges methods at different times, depending on Pool configuration. Also note that the advertised sizes may change after the call due to requests from other clients. If the pool currently only supports a range of sizes, then the return value will be set to 1.

Properties

The CIM_StoragePool class has these properties.

AllocationUnits

Data type: string

Access type: Read-only

This property specifies the units of allocation used by the Reservation and Limit properties. For example, when ResourceType=Processor, AllocationUnits may be set to MegaHertz. When ResourceType=Memory, AllocationUnits may be set to MegaBytes The value of this property shall be a legal value of the Programmatic Units qualifier as defined in Appendix C.1 of DSP0004 V2.4 or later.

This property is inherited from CIM_ResourcePool.

Capacity

Data type: uint64

Access type: Read-only

This property represents the maximum amount (in units of AllocationUnits) of reservations that the ResourcePool can support.

This property is inherited from CIM_ResourcePool.

Caption

Data type: string

Access type: Read-only

Qualifiers: MaxLen (64)

The Caption property is a short textual description (one- line string) of the object.

This property is inherited from CIM_ManagedElement.

ClientSettableUsage

Data type: uint16 array

Access type: Read-only

Qualifiers: Experimental, ModelCorrespondence ("CIM_StoragePool.Usage")

Indicates which values from the "Usage" valuemap can be manipulated by a client using the method "StorageConfigurationService.RequestUsageChange".

Description

Data type: string

Access type: Read-only

Contains a textual description of the object.

This property is inherited from CIM_ManagedElement.

ElementName

Data type: string

Access type: Read-only

Contains a user-friendly name for the object. This property allows each instance to define a user-friendly name in addition to its key properties, identity data, and description information.

This property is inherited from CIM_ManagedElement.

HealthState

Data type: uint16

Access type: Read-only

Indicates the current health of the element. This attribute expresses the health of this element but not necessarily that of its sub-components.

This property is inherited from CIM_ManagedSystemElement.

The following values have been defined:

Unknown (0)

The implementation cannot report on HealthState at this time.

OK (5)

The element is fully functional and is operating within normal operational parameters and without error.

Degraded/Warning (10)

The element is in working order and all functionality is provided. However, the element is not working to the best of its abilities. For example, the element might not be operating at optimal performance or it might be reporting recoverable errors

Minor failure (15)

All functionality is available but some might be degraded.

Major failure (20)

The element is failing. It is possible that some or all of the functionality of this component is degraded or not working.

Critical failure (25)

The element is non-functional and recovery might not be possible.

Non-recoverable error (30)

The element has completely failed, and recovery is not possible. All functionality provided by this element has been lost.

DMTF Reserved

DMTF has reserved the unused portion of the continuum for additional HealthStates in the future.

InstallDate

Data type: datetime

Access type: Read-only

Qualifiers: MappingStrings ("MIF.DMTF|ComponentID|001.5")

Indicates when the object was installed. The lack of a value does not indicate that the object is not installed.

This property is inherited from CIM_ManagedSystemElement.

InstanceID

Data type: string

Access type: Read-only

Qualifiers: Key, Override ("InstanceID")

Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following 'preferred' algorithm:

<OrgID>:<LocalID>

Where <OrgID> and <LocalID> are separated by a colon ':', and where <OrgID> MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity creating/defining the InstanceID, or is a registered ID that is assigned to the business entity by a recognized global authority (This is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness <OrgID> MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between <OrgID> and <LocalID>.

<LocalID> is chosen by the business entity and SHOULD not be re-used to identify different underlying (real-world) elements. If the above 'preferred' algorithm is not used, the defining entity MUST assure that the resultant InstanceID is not re-used across any InstanceIDs produced by this or other providers for this instance's NameSpace.

For DMTF defined instances, the 'preferred' algorithm MUST be used with the <OrgID> set to 'CIM'.

LowSpaceWarningThreshold

Data type: uint16

Access type: Read-only

Qualifiers: Experimental, Punit ("percent"), Units ("Percentage"), MinValue (0), MaxValue (100), ModelCorrespondence ("CIM_StoragePool.RemainingManagedSpace")

LowSpaceWarningThreshold simplifies the creation of a pool specific Indication based on RemainingManagedSpace <=

(TotalManagedSpace*LowSpaceWarningThreshold)/100. One example client for an Indication based on this property is a delta copy implementation where the pool enables continuous, variable space consumption for the delta storage. Another example client for an Indication based on this property is a provisioning manager implementing a policy for adding storage to a pool when it becomes low.

Name

Data type: string

Access type: Read-only

Qualifiers: MaxLen (1024)

The Name property defines the label by which the object is known. When subclassed, the Name property can be overridden to be a Key property.

This property is inherited from CIM_ManagedSystemElement.

OperationalStatus

Data type: uint16 array

Access type: Read-only

Qualifiers: ArrayType ("Indexed"), ModelCorrespondence ("CIM_ManagedSystemElement.StatusDescriptions")

Contains indicators of the current status of the element. The first value of OperationalStatus should contain the primary status for the element.

Note

OperationalStatus replaces the deprecated Status property. Due to the widespread use of the existing Status property in management applications, Microsoft strongly recommends that providers or instrumentation provide both the Status and OperationalStatus properties. When instrumented, Status (because it is single-valued) should also provide the primary status of the element.

This property is inherited from CIM_ManagedSystemElement.

The following values have been defined:

Unknown (0)

Indicates the implementation cannot report on OperationalStatus at this time.

Other (1)

Indicates an undefined state.

OK (2)

Indicates full functionality without errors.

Degraded (3)

Indicates the element is working and all functionality is provided. However, the element is not working to the best of its abilities. For example, the element might not be operating at optimal performance or it might be reporting recoverable errors

Stressed (4)

Indicates that the element is functioning, but needs attention. Overload and overheated are examples of Stressed states.

Predictive Failure (5)

Indicates that an element is functioning nominally but predicting a failure in the near future.

Error (6)

Indicates that an error has occurred.

Non-Recoverable Error (7)

A non-recoverable error has occurred.

Starting (8)

The job is starting.

Stopping (9)

The job is stopping.

Stopped (10)

The element has been intentionally stopped.

In Service (11)

Indicates the element is being configured, maintained, cleaned, or otherwise administered.

No Contact (12)

Indicates that the monitoring system has knowledge of this element, but has never been able to establish communications with it.

Lost Communication (13)

Indicates that the job is known to exist and has been contacted successfully in the past, but is currently unreachable.

Aborted (14)

Indicates the job stopped in an unexpected way. The state and configuration of the job might need to be updated.

Dormant (15)

Indicates that the job is inactive.

Supporting Entity in Error (16)

Indicates that an element on which this job depends is in error. This element may be OK but is unable to function because of the state of a dependent element. An example is a network service or endpoint that cannot function due to lower-layer networking problems.

Completed (17)

Indicates that the job has completed its operation. This value should be combined with either OK, ErrorError, or Degraded so that a client can tell if the complete operation Completed with OK (passed), Completed with Error (failed), or Completed with Degraded (the operation finished, but it did not complete OK or did not report an error).

Power Mode (18)

"Power Mode" indicates that the element has additional power model information contained in the associated PowerManagementService association.

DMTF Reserved

DMTF has reserved this portion of the range for additional OperationalStatus values in the future.

Vendor Reserved

Microsoft has reserved the unused portion of the range for additional OperationalStatus values in the future.

OtherResourceType

Data type: string

Access type: Read-only

Qualifiers: ModelCorrespondence ("CIM_ResourcePool.ResourceType")

A string that describes the resource type when a well defined value is not available and ResourceType is set to 0 for Other.

This property is inherited from CIM_ResourcePool.

OtherUsageDescription

Data type: string

Access type: Read-only

Qualifiers: Experimental, ModelCorrespondence ("CIM_StoragePool.Usage")

Populated when "Usage" has the value of "Other".

PoolID

Data type: string

Access type: Read-only

Qualifiers: Required, Override ("PoolID"), MaxLen (256)

A unique name in the context of the System that identifies this pool.

Primordial

Data type: boolean

Access type: Read-only

Qualifiers: Override ("Primordial")

If true, "Primordial" indicates that this StoragePool is the base from which storage capacity is drawn and returned in the activity of storage management. Being primordial means that this StoragePool shall not be created or deleted by consumers of this model. However, other actions, modeled or not, may affect the characteristics or size of primordial StoragePools. If false, "Primordial" indicated that the StoragePool, a concrete Storage Pool, is subject to storage services functions. This distinction is important because higher-level StoragePools may be assembled using the Component or AllocatedFromStoragePool associations. Although the higher-level abstractions can be created and deleted, the most basic, (i.e. primordial), hardware-based StoragePools cannot. They are physically realized as part of the System, or are actually managed by some other System and imported as if they were physically realized.

RemainingManagedSpace

Data type: uint64

Access type: Read-only

Qualifiers: Required, Punit ("byte"), Units ("Bytes"), ModelCorrespondence ("CIM_StoragePool.TotalManagedSpace", "CIM_AllocatedFromStoragePool.SpaceConsumed")

The remaining usable capacity after the allocation of StorageVolumes, LogicalDisks, or child Storage Pools. This property is maintained here to provide efficient access to this information. However, note that it is possible to compute RemainingManagedSpace as (TotalManagedSpace minus the sum of SpaceConsumed from all of the AllocatedFromStoragePool references from this StoragePool). Note that SpaceConsumed remains useful to determine the amount of capacity consumed by a particular allocated element.

Reserved

Data type: uint64

Access type: Read-only

This property represents the current reservations (in units of AllocationUnits) spread across all active allocations from this pool. In a hierarchical configuration, this represents the sum of all descendant ResourcePool current reservations.

This property is inherited from CIM_ResourcePool.

ResourceSubType

Data type: string

Access type: Read-only

Qualifiers: ModelCorrespondence ("CIM_ResourcePool.ResourceType")

A string describing an implementation specific sub-type for this pool. For example, this may be used to distinguish different models of the same resource type.

This property is inherited from CIM_ResourcePool.

ResourceType

Data type: uint16

Access type: Read-only

Qualifiers: ModelCorrespondence ("CIM_ResourcePool.OtherResourceType", "CIM_ResourcePool.ResourceSubType")

The type of resource this ResourcePool may allocate.

This property is inherited from CIM_ResourcePool.

Other (1)

Computer System (2)

Processor (3)

Memory (4)

IDE Controller (5)

Parallel SCSI HBA (6)

FC HBA (7)

iSCSI HBA (8)

IB HCA (9)

Ethernet Adapter (10)

Other Network Adapter (11)

I/O Slot (12)

I/O Device (13)

Floppy Drive (14)

CD Drive (15)

DVD drive (16)

Disk Drive (17)

Tape Drive (18)

Storage Extent (19)

Other storage device (20)

Serial port (21)

Parallel port (22)

USB Controller (23)

Graphics controller (24)

IEEE 1394 Controller (25)

Partitionable Unit (26)

Base Partitionable Unit (27)

Power Supply (28)

Cooling Device (29)

DMTF reserved

30 32767

Vendor Reserved

32768 65535

Status

Data type: string

Access type: Read-only

Qualifiers: Deprecated ("CIM_ManagedSystemElement.OperationalStatus"), MaxLen (10)

Contains a string indicating the primary status of the object.

Note

This property is deprecated and replaced by the OperationalStatus property. If you choose to use the Status property for backward compatibility it should be secondary to the OperationalStatus property.

This property is inherited from CIM_ManagedSystemElement.

("OK")

("Error")

("Degraded")

("Unknown")

("Pred Fail")

("Starting")

("Stopping")

("Service")

("Stressed")

("NonRecover")

("No Contact")

("Lost Comm")

("Stopped")

StatusDescriptions

Data type: string array

Access type: Read-only

Qualifiers: ArrayType ("Indexed"), ModelCorrespondence ("CIM_ManagedSystemElement.OperationalStatus")

Contains strings describing the corresponding values in the OperationalStatus array. For example, if an element in OperationalStatus contains the value Stopping, then the element at the same array index in this property may contain an explanation as to why an object is being stopped.

This property is inherited from CIM_ManagedSystemElement.

TotalManagedSpace

Data type: uint64

Access type: Read-only

Qualifiers: Punit ("byte"), Units ("Bytes"), ModelCorrespondence ("CIM_StoragePool.RemainingManagedSpace")

The total amount of capacity usable for the allocation of StorageVolumes, LogicalDisks, or child Storage Pools.

For primordial Storage Pools, this capacity reflects the usable capacity of Disk Drives or LUNs, for example, to the owning storage device or application. For example, in storage array, a primordial Storage Pool's TotalManagedSpace does not include metadata such as the disk label area and absolute disk drive capacity lost in disk formatting.

For concrete Storage Pools, the same applies, but the metadata not included in TotalManagedSpace is consumed in virtualization like RAID and concatenation. Concrete Storage Pool may also be simple reserve of capacity. In such a case, no capacity may be lost in formation of the Storage Pool.

Conceptually TotalManagedSpace is the sum of all storage known via AssociatedComponentExtent associations to underlying StorageExtents. However, note some of these underlying storage may not be modeled by the instrumentation.

Usage

Data type: uint16

Access type: Read-only

Qualifiers: Experimental, ModelCorrespondence ("CIM_StoragePool.OtherUsageDescription")

Indicates the intended usage or any restrictions that may have been imposed on the usage of this component. For example, a storage pool may be reserved for use by the block server. In that case the Usage of the storage pool is marked as "Reserved for the ComputerSystem". In the case of "Other", see OtherUsageDescription for more information.

Other (1)

Unrestricted (2)

Reserved for ComputerSystem (the block server) (3)

Reserved as a Delta Replica Container (4)

Reserved for Migration Services (5)

Reserved for Local Replication Services (6)

Reserved for Remote Replication Services (7)

Reserved for Sparing (8)

DMTF Reserved

9 32767

Vendor Reserved

32768 65535

Requirements

Minimum supported client
None supported
Minimum supported server
Windows Server 2012 R2
Namespace
Root\CIMv2\Storage\iScsiTarget
MOF
SmIscsiTarget.mof
DLL
SMiSCSITargetProv.dll

See also

CIM_ResourcePool