# Class CIM_StorageCapabilities
extends CIM_Capabilities

A subclass of Capabilities that defines the Capabilities of a StorageService or StoragePool. For example, an instance of StorageCapabilities could be associated with either a StorageConfigurationService or StoragePool by using ElementCapabilities.

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

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_Capabilities
|
+--CIM_StorageCapabilities

## Direct Known Subclasses

CIM_StorageTierCapabilities

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | A subclass of Capabilities that defines the Capabilities of a StorageService or StoragePool. For example, an instance of StorageCapabilities could be associated with either a StorageConfigurationService or StoragePool by using ElementCapabilities.
UMLPackagePath | string | CIM::Device::StorageServices
Version | string | 2.32.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
DataRedundancyDefault | uint16 |
Description | string | DataRedundancyDefault describes the default number of complete copies of data that can be maintained. Examples would be RAID 5 where 1 copy is maintained and RAID 1 where 2 or more copies are maintained. Possible values are 1 to n. The bounds for the redundancy (max and min) are defined by DataRedundancyMax and DataRedundancyMin.
MinValue | sint64 | 1
ModelCorrespondence | string | CIM_StorageCapabilities.DataRedundancyMax, CIM_StorageCapabilities.DataRedundancyMin
DataRedundancyMax | uint16 |
Description | string | DataRedundancyMax describes the maximum number of complete copies of data that can be maintained. Examples would be RAID 5 (where 1 copy is maintained) and RAID 1 (where 2 or more copies are maintained). Possible values are 1 to n. The default redundancy is specified using DataRedundancyDefault, while the minimum is defined by DataRedundancyMin.
MinValue | sint64 | 1
ModelCorrespondence | string | CIM_StorageCapabilities.DataRedundancyMin, CIM_StorageCapabilities.DataRedundancyDefault
DataRedundancyMin | uint16 |
Description | string | DataRedundancyMin describes the minimum number of complete copies of data that can be maintained. Examples would be RAID 5 where 1 copy is maintained and RAID 1 where 2 or more copies are maintained). Possible values are 1 to n. The default redundancy is specified using DataRedundancyDefault, while the maximum is defined by DataRedundancyMax.
MinValue | sint64 | 1
ModelCorrespondence | string | CIM_StorageCapabilities.DataRedundancyMax, CIM_StorageCapabilities.DataRedundancyDefault
DeltaReservationDefault | uint16 |
Description | string | Delta reservation is a number between 1 (1%) and a 100 (100%) that specifies how much space should be reserved by default in a replica for caching changes. For a complete copy this would be 100%, but it can be lower in some implementations. This parameter sets the default value, while DeletaReservationMax and DeltReservationMin set the upper and lower bounds.
MaxValue | sint64 | 100
MinValue | sint64 | 0
ModelCorrespondence | string | CIM_StorageCapabilities.DeltaReservationMax, CIM_StorageCapabilities.DeltaReservationMin
PUnit | string | percent
Units | string | Percentage
DeltaReservationMax | uint16 |
Description | string | DeltaReservatioMax is a number between 1 (1%) and a 100 (100%) that specifies the maximum amount of space reserved in a replica for caching changes. For a complete copy this would be 100%, but it can be lower in some implementations. This parameter sets the upper limit, while DeltaReservationMin sets the lower limit.
MaxValue | sint64 | 100
MinValue | sint64 | 0
ModelCorrespondence | string | CIM_StorageCapabilities.DeltaReservationMin, CIM_StorageCapabilities.DeltaReservationDefault
PUnit | string | percent
Units | string | Percentage
DeltaReservationMin | uint16 |
Description | string | DeltaReservationMin is a number between 1 (1%) and a 100 (100%) that specifies the minimum amount of space that should be reserved in a replica for caching changes. For a complete copy this would be 100%, but it can be lower in some implementations. This parameter sets the lower limit, while DeltaReservationMax sets the upper limit.
MaxValue | sint64 | 100
MinValue | sint64 | 0
ModelCorrespondence | string | CIM_StorageCapabilities.DeltaReservationMax, CIM_StorageCapabilities.DeltaReservationDefault
PUnit | string | percent
Units | string | Percentage
ElementType | uint16 |
Description | string | Enumeration indicating the type of element to which this StorageCapabilities applies.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8
Values | string | Unknown, Reserved, Any Type, StorageVolume, StorageExtent, StoragePool, StorageConfigurationService, LogicalDisk, StorageTier
Encryption | uint16 |
Description | string | This property reflects support of the encryption feature implemented by some disk drives.
Experimental | boolean | true
ValueMap | string | 0, 1, 2
Values | string | Unknown, Not Supported, Supported
ExtentStripeLengthDefault | uint16 |
Description | string | Extent Stripe Length describes the number of underlying StorageExtents across which data is striped in the common striping-based storage organizations. This is also known as the number of 'members' or 'columns'. A NULL value for ExtentStripeLengthDefault indicates that the system does not support configuration of storage by specifying Stripe Length. If Extent Stripe Length is supported, and this Capabilities instance is associated with a pool that was created with a range of QOS then ExtentStripeLengthDefault represents the default value. Other available values(such as min, max, and discrete values) can be determined by using the 'GetSupportedStripeLengths' and 'GetSupportedStripeLengthRange' methods. If Extent Stripe Length is supported and the pool was created with a single specific QOS, representing a Raid group, set, or rank, then this property represents the current/fixed value for the pool, and Extent Stripe Length is not supported in subsequent creation of elements from this pool. Consequently, the 'GetSupportedStripeLength' methods cannot be used, and in a StorageSetting instance used as a goal when creating or modifying a child element of the pool, ExtentStripeLengthGoal, ExtentStripeLengthMin, and ExtentStripeLengthMax MUST be set to NULL.
MinValue | sint64 | 1
NoSinglePointOfFailure | boolean |
Description | string | Indicates whether or not the associated element supports no single point of failure. Values are: FALSE = does not support no single point of failure, and TRUE = supports no single point of failure.
ModelCorrespondence | string | CIM_StorageCapabilities.NoSinglePointOfFailureDefault
NoSinglePointOfFailureDefault | boolean |
Description | string | Indicates the default value for the NoSinglePointOfFailure property.
ModelCorrespondence | string | CIM_StorageCapabilities.NoSinglePointOfFailure
PackageRedundancyDefault | uint16 |
Description | string | PackageRedundancyDefault describes the default number of redundant packages that will be used. For example, in the storage domain, package redundancy describes how many disk spindles can fail without data loss including, at most, one spare. An example would be RAID5 with a spare disk which would have a PackageRedundancy of 2. Possible values are 0 to n. The bounds for redundancy are specified using the properties, PackageRedundancyMax and PackageRedundancyMin.
ModelCorrespondence | string | CIM_StorageCapabilities.PackageRedundancyMin, CIM_StorageCapabilities.PackageRedundancyMax
PackageRedundancyMax | uint16 |
Description | string | PackageRedundancyMax describes the maximum number of redundant packages that can be used. For example, in the storage domain, package redundancy describes how many disk spindles can fail without data loss including, at most, one spare. An example would be RAID5 with a spare disk which would have a PackageRedundancy of 2. Possible values are 0 to n. The default redundancy is specified using PackageRedundancyDefault, while the maximum is defined by PackageRedundancyMax.
ModelCorrespondence | string | CIM_StorageCapabilities.PackageRedundancyMin, CIM_StorageCapabilities.PackageRedundancyDefault
PackageRedundancyMin | uint16 |
Description | string | PackageRedundancyMin describes the minimum number of redundant packages that can be used. For example, in the storage domain, package redundancy describes how many disk spindles can fail without data loss including, at most, one spare. An example would be RAID5 with a spare disk which would have a PackageRedundancy of 2. Possible values are 0 to n. The default redundancy is specified using PackageRedundancyDefault, while the minimum is defined by PackageRedundancyMin.
ModelCorrespondence | string | CIM_StorageCapabilities.PackageRedundancyMax, CIM_StorageCapabilities.PackageRedundancyDefault
ParityLayoutDefault | uint16 |
Description | string | ParityLayout specifies whether a parity-based storage organization is using rotated or non-rotated parity. If this capabilities instance is associated with a pool that was created with a range of QOS then ParityLayoutDefault represents the default value. Other available values can be determined by using the 'GetSupportedParityLayouts' method. If the pool was created with a single specific QOS, representing a Raid group, set, or rank, then this property represents the current/fixed value for the pool, and ParityLayout is not supported in subsequent creation of elements from this pool. Consequently, the 'GetSupportedParityLayouts' method cannot be used, and the ParityLayoutGoal property in StorageSetting instances used in child element operations on this pool MUST be set to NULL. A NULL value for ParityLayoutDefault indicates that the system does not support configuration of storage by specifying ParityLayout.
ValueMap | string | 2, 3
Values | string | Non-Rotated Parity, Rotated Parity
UserDataStripeDepthDefault | uint64 |
Description | string | User Data Stripe Depth describes the number of bytes forming a strip in common striping-based storage organizations. The strip is defined as the size of the portion of a stripe that lies on one extent. Thus, ExtentStripeLength * UserDataStripeDepth will yield the size of one stripe of user data. A NULL value for UserDataStripeDepthDefault indicates that the system does not support configuration of storage by specifying Stripe Depth. If User Data Stripe Depth is supported, and this Capabilities instance is associated with a pool that was created with a range of QOS then UserDataStripeDepthDefault represents the default value. Other available values(such as min, max, and discrete values) can be determined by using the 'GetSupportedStripeDepths' and 'GetSupportedStripeDepthRange' methods. If User Data Stripe Depth is supported and the pool was created with a single specific QOS, representing a Raid group, set, or rank, then this property represents the current/fixed value for the pool, and User Data Stripe Depth is not supported in subsequent creation of elements from this pool. Consequently, the 'GetSupportedStripeDepth' methods cannot be used, and in a StorageSetting instance used as a goal when creating or modifying a child element of the pool, UserDataStripeDepthGoal, UserDataStripeDepthMin, and UserDataStripeDepthMax MUST be set to NULL.
MinValue | sint64 | 1
PUnit | string | byte
Units | string | Bytes
AvailableDiskType | uint16[] |
Description | string | Enumeration indicating the type of DiskDrives which may be available.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3, 4
Values | string | Unknown, Other, Hard Disk Drive, Solid State Drive, Hybrid
AvailableFormFactorType | uint16[] |
Description | string | Enumeration indicating the types of disk form factors which may be available.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, 5, 6
Values | string | Unknown, Other, Not Reported, 5.25 inch, 3.5 inch, 2.5 inch, 1.8 inch
AvailableInterconnectSpeed | uint64[] |
Description | string | The speed of disk interfaces which are be available. Values are in bits/second.
Experimental | boolean | true
PUnit | string | bit / second
AvailableInterconnectType | uint16[] |
Description | string | Enumeration indicating the type of disk interfaces which may be available.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, 5, 6
Values | string | Unknown, other, SAS, SATA, SAS/SATA, FC, SOP
AvailableRPM | uint32[] |
Description | string | The rotational speed of disk media which are be available. Values are in revolutions per minute. SSD devices shall report 0.
Experimental | boolean | true
PUnit | string | revolution / minute
SupportedCompressionRates | uint16[] |
Description | string | The SupportedCompressionRates identifies the compression rates that are supported by the implementation, including "None". If "None" is specified, then no other rate may be identified.
Experimental | boolean | true
ValueMap | string | 1, 2, 3, 4, 5, .., 32768..65535
Values | string | None, High, Medium, Low, DMTF Reserved, Implementation Decides, Vendor Specific
SupportedDataOrganizations | uint16[] |
Description | string | Types of volume data organizations supported.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3, 4
Values | string | Other, Unknown, Fixed Block, Variable Block, Count Key Data

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
Description | string | CIM_ManagedElement
ElementName | string | CIM_Capabilities
Generation | uint64 | CIM_ManagedElement
InstanceID | string | CIM_Capabilities

## Class Methods

### Local Class Methods

#### CreateSetting (uint32)

#### Method Qualifiers (CreateSetting)

Name | Data Type | Value
--- | --- | ---
Description | string | Method to create and populate a StorageSetting instance from a StorageCapability instance. This removes the need to populate default settings and other settings in the context of each StorageCapabilities (which could be numerous). If the underlying instrumentation supports the StorageSettingWithHints subclass, then an instance of that class will be created instead.
ValueMap | string | 0, 1, 2, 3, 4, 5, .., 32768..65535
Values | string | Success, Not Supported, Unspecified Error, Timeout, Failed, Invalid Parameter, DMTF Reserved, Vendor Specific

#### Method Parameters (CreateSetting)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
SettingType | uint16
Description | string | If 'Default' is passed for the CreateDefault parameter, the Max, Goal, and Min setting attributes are set to the Default values of the parent StorageCapabilities when the instance is created. If set to 'Goal' the new StorageSetting attributes are set to the related attributes of the parent StorageCapabilities, e.g. Min to Min, Goal to Default, and Max to Max. This method maybe deprecated in lieu of intrinsics once limitations in the CIM Operations are addressed.
IN | boolean | true
ValueMap | string | 2, 3
Values | string | Default, Goal
NewSetting | REF CIM_StorageSetting
Description | string | Reference to the created StorageSetting instance.
IN | boolean | false
OUT | boolean | true

#### GetSupportedStripeLengths (uint32)

#### Method Qualifiers (GetSupportedStripeLengths)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support discrete ExtentStripeLengths for volume or pool creation, this method can be used to retrieve a list of supported values. Note that different implementations may support either the GetSupportedStripeLengths or the GetSupportedStripeLengthRange method. Also note that the advertised sizes may change after the call due to requests from other clients. If the system only supports a range of sizes, then the return value will be set to 3.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3
Values | string | Method completed OK, Method not supported, Choices not available for this Capability, Use GetSupportedStripeLengthRange instead

#### Method Parameters (GetSupportedStripeLengths)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
StripeLengths | uint16[]
ArrayType | string | Indexed
Description | string | List of supported ExtentStripeLengths for a Volume/Pool creation or modification.
IN | boolean | false
OUT | boolean | true

#### GetSupportedStripeLengthRange (uint32)

#### Method Qualifiers (GetSupportedStripeLengthRange)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support a range of ExtentStripeLengths for volume or pool creation, this method can be used to retrieve the supported range. Note that different implementations may support either the GetSupportedExtentLengths or the GetSupportedExtentLengthRange method. Also note that the advertised sizes may change after the call due to requests from other clients. If the system only supports discrete values, then the return value will be set to 3.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3
Values | string | Method completed OK, Method not supported, Choices not available for this Capability, Use GetSupportedStripeLengths instead

#### Method Parameters (GetSupportedStripeLengthRange)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
MaximumStripeLength | uint16
Description | string | The maximum ExtentStripeLength for a volume/pool in bytes.
IN | boolean | false
OUT | boolean | true
MinimumStripeLength | uint16
Description | string | The minimum ExtentStripeDepth for a volume/pool in bytes.
IN | boolean | false
OUT | boolean | true
StripeLengthDivisor | uint32
Description | string | A volume/pool ExtentStripeLength must be a multiple of this value which is specified in bytes.
IN | boolean | false
OUT | boolean | true

#### GetSupportedParityLayouts (uint32)

#### Method Qualifiers (GetSupportedParityLayouts)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support Parity-based storage organizations for volume or pool creation, this method can be used to the supported parity layouts.
ValueMap | string | 0, 1, 2
Values | string | Method completed OK, Method not supported, Choice not aavailable for this capability

#### Method Parameters (GetSupportedParityLayouts)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ParityLayout | uint16[]
ArrayType | string | Indexed
Description | string | List of supported Parity for a Volume/Pool creation or modification.
IN | boolean | false
OUT | boolean | true
ValueMap | string | 2, 3
Values | string | Non-Rotated Parity, Rotated Parity

#### GetSupportedStripeDepths (uint32)

#### Method Qualifiers (GetSupportedStripeDepths)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support discrete UserDataStripeDepths for volume or pool creation, this method can be used to retrieve a list of supported values. Note that different implementations may support either the GetSupportedStripeDepths or the GetSupportedStripeDepthRange method. If the system only supports a range of sizes, then the return value will be set to 2.
Experimental | boolean | true
ValueMap | string | 0, 1, 2
Values | string | Method completed OK, Method not supported, Use GetSupportedStripeDepthRange instead

#### Method Parameters (GetSupportedStripeDepths)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
StripeDepths | uint64[]
ArrayType | string | Indexed
Description | string | List of supported UserDataStripeDepths for a Volume/Pool creation or modification.
IN | boolean | false
OUT | boolean | true
PUnit | string | byte
Units | string | Bytes

#### GetSupportedStripeDepthRange (uint32)

#### Method Qualifiers (GetSupportedStripeDepthRange)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support a range of UserDataStripeDepths for volume or pool creation, this method can be used to retrieve the supported range. Note that different implementations may support either the GetSupportedStripeDepths or the GetSupportedStripeDepthRange method. If the system only supports discrete values, then the return value will be set to 2.
Experimental | boolean | true
ValueMap | string | 0, 1, 2
Values | string | Method completed OK, Method not supported, Use GetSupportedStripeDepths instead

#### Method Parameters (GetSupportedStripeDepthRange)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
MaximumStripeDepth | uint64
Description | string | The maximum UserDataStripeDepth for a volume/pool in bytes.
IN | boolean | false
OUT | boolean | true
PUnit | string | byte
Units | string | Bytes
MinimumStripeDepth | uint64
Description | string | The minimum UserDataStripeDepth for a volume/pool in bytes.
IN | boolean | false
OUT | boolean | true
PUnit | string | byte
Units | string | Bytes
StripeDepthDivisor | uint64
Description | string | A volume/pool UserDataStripeDepth must be a multiple of this value which is specified in bytes.
IN | boolean | false
OUT | boolean | true
PUnit | string | byte
Units | string | Bytes

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
CreateGoalSettings | uint16 | CIM_Capabilities