HP 3PAR CIM API Programming Reference Abstract To use this document, you must be familiar with basic object oriented development techniques and with the following: Storage Management Initiative Specification (SMI-S), Common Information Model (CIM), Hypertext Transfer Protocol (HTTP), Secure Socket Layer (SSL), CIM Operations over HTTP, and the Unified Modeling Language (UML).
© Copyright 2008, 2014 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice.
Contents 1 Concepts.................................................................................................10 About SMI-S..........................................................................................................................10 About the WBEM Initiative.......................................................................................................10 2 Security...................................................................................................11 TCP Ports....
Creating a Volume Through SMI-S........................................................................................32 Supported Method For Creating a Storage Volume............................................................33 Method Signature.....................................................................................................33 Creating Data and Snapshot Space from Two Storage Pools...............................................
CPVV......................................................................................................................60 UpdateDeltaSnapshotSpace() Method.........................................................................61 Indications...................................................................................................................62 Physical Copy...................................................................................................................
SCSIPrococolController.......................................................................................................91 iSCSIPrococolController......................................................................................................91 SCSIPrococolEndpoint........................................................................................................91 iSCSIPrococolEndpoint.......................................................................................................
TPD_RemoteGroupSynchronized....................................................................................143 TPD_OrderedMemberOfRemoteReplicationGroup............................................................145 TPD_ReplicationServiceAffectsRemoteReplicationGroup....................................................145 TPD_HostedRemoteReplicationGroup.............................................................................145 TPD_SAPAvailableForRemoteReplicaVolume..................................
Properties for TPD_DriveCage.......................................................................................161 Properties for TPD_PowerSupply....................................................................................162 Properties for TPD_Battery............................................................................................162 Properties for TPD_Fan.................................................................................................162 Supported Methods.............
8 Documentation feedback.........................................................................177 A Managed Object Format Files..................................................................178 3PAR_InterOp.mof................................................................................................................178 3PAR_TPD.mof.....................................................................................................................182 3PAR_TPDCage.mof...............................
1 Concepts About SMI-S SMI-S enables management of Storage Area Networks (SANs) in a heterogeneous, multi-vendor environment. SMI-S uses an object-oriented model based on the Common Information Model (CIM) to define objects and services which comprise a SAN. By leveraging vendor and technology independent standards, SMI-S allows management application vendors to create applications that work across products from multiple vendors.
2 Security TCP Ports The CIM-API uses dedicated TCP ports for CIM-XML communications and server location information. Two ports are specified by the DMTF and registered with IANA for CIM-XML communications between management clients and any CIM Server.
3 Configuring and Using the CIM Server CLI Command Overview Table 3 CLI Commands Used to Manage the CIM Server Command Purpose setcim Sets properties of the CIM Server. This Super command can be used to enable or disable certain services. showcim Displays status information for the CIM Any Server. startcim Enables the CIM Server. Super stopcim Disables the CIM Server. Super NOTE: Required Permission Level Refer to the HP 3PAR OS Command Line Interface Reference for additional information.
Displaying the CIM Server Version The CIM Server version can be displayed using the showcim command as shown previously, or by using the showversion -a command. # showversion -a Release version 3.1.3 Patches: None Component Name CLI Server CLI Client System Manager Kernel TPD Kernel Code CIM Server Version 3.1.3 3.1.3 3.1.3 3.1.3 3.1.3 3.1.
• The desired operation and its required parameters. For information about CIM operations, please refer to CIM Operations over HTTP. • The object or objects on which the operation is to be performed. NOTE: HTTP 1.0 is not supported. HTTP chunked transfer encoding is utilized for CIM server responses. The payload of the client request is XML. For information about XML coding for CIM, refer to Representation of CIM in XML.
4 CIM API SMI-S Support The CIM API supports the Storage Management Initiative Specification. The CIM API also supports extensions to these profiles to provide features that are not available from the standard profiles. Standard Compliance The 3PAR CIM Server supports SMI-S version 1.5. The CIM Server has successfully completed testing and conforms to elements of the Storage Networking Industry Association’s Conformance Testing Program (SNIA-CTP) for the SMI specification.
Supported Array Subprofiles Table 9 Supported Array Subprofiles Subprofile Version Purpose Location 1.4 Provides information about the physical location of a disk storage system. Multiple Computer System 1.2 Provides information about the multiple computer systems (controller nodes) that cooperate to present a virtual computer system (cluster). Software 1.4 Provides information on installed controller software. Masking and Mapping 1.4 Provides management of LUNs. FC Target Ports 1.
Supported SMI-S Levels by Release Table 11 Supported SMI-S Levels by Release HP 3PAR OS Release/ SMI-S Version Profile 2.2.0/1.0.2 2.2.1/ 1.1.0 2.2.2/ 1.1.0 2.2.3/ 1.1.0 2.3.1/1.1.0 3.1.1/ 1.4.0 3.1.2/ 1.4.0 3.1.3/ 1.5.
CIM clients use SLP to query for available CIM servers. CIM servers answer with generic information about what services they provide and the URL at which these services reside. Server Profile A CIM Server is anything that supports the CIM-XML protocol and supports the basic read functional profile as defined by the CIM Operations over HTTP specification. After a CIM client has discovered a CIM server within a SAN, it then needs to determine the services provided by that server.
CIM Classes Table 14 Key Classes Class Description TPD_RegisteredProfile One instance of this class will exist for each SMI-S Profile that is registered with the CIM Server. One instance exists for the SMI-S Profile. TPD_RegisteredSubprofile One instance of this class will exist for each SMI-S Subprofile that is registered with the CIM Server. UML Diagram For the Server Profile Instance Diagram, refer to the SMI-S, v1.5 at http://www.snia.org.
association. Also, this SMI-S profile is not associated to TPD_ObjMgrSoftwareIdentity, unlike the other RegisteredProfiles and RegisteredSubprofiles. It is also not advertised in SLP. Note that the overall version of SMI-S supported by the provider are expressed using the SMI-S RegisteredProfile. Table 15 Property Values for the SMI-S Profile Properties Description InstanceID SNIA:SMI-S RegisteredOrganization 11 (SNIA) RegisteredName SMI-S RegisteredVersion 1.5.
Table 18 Block Services Package CIM Classes (continued) Class Description TPD_StoragePool Allocatable space on the array. TPD_StorageSetting Used by clients as input to the StorageConfigurationService, StorageSetting describes the desired configuration of Storage Volumes. TPD_StorageCapabilities Provides information about the possible configuration parameters for elements created from a given StoragePool.
Table 22 Method for TPD_StoragePool Method Description GetSupportedSizeRanges() Returns the supported size ranges for elements allocated from this Pool. StorageCapabilities There is one StorageCapabilities for each StoragePool. There are four kinds of StorageCapabilities: 1. StorageCapabilities of primordial pool This has an InstanceID of “HP_3PAR:StorageCapabilities:primordial”. 2.
2. • HP_3PAR:StorageSetting:RAID50:all-SSD • HP_3PAR:StorageSetting:RAID60:all-SSD Fixed StorageSetting for creating DynamicStoragePool There is one such StorageSetting for each supported RAID and concrete StoragePool as well as DiskStorageExtent. For the primordial pool extent and each existing concrete StoragePool in an array, there will be 4 instances of this kind of StorageSetting, one for each of RAID-0, RAID-10, RAID-50 and RAID-60. Their InstanceID’s are: 3.
6. StorageSetting generated from CreateSetting of “HP_3PAR:CapabilitiesForDynamicStoragePool: ”. StorageSetting created this way can be used by a client for user space or snapshot space of a virtual volume. By default the ThinlyProvisioned property is set to FALSE. A client has to modify this to TRUE if a TPVV is desired. This setting has a StorageSettingGeneratedFromCapabilities association to the “HP_3PAR:CapabilitiesForDynamicStoragePool: ” Capabilities. 7.
Table 23 Relevant Properties of StorageSetting (continued) Properties Description Uint32 TP volume user space allocation warning in percentage of volume size. If this is set, UserSpaceLimitWarningThreshold is ignored. UserSpaceLimitWarningThreshold calculation requires UserSpaceLimit , which may not be specified. UserSpaceAllocationWarning thus allows a percentage to be specified without requiring UserSpaceLimit to be specified (in CLI, one can specify –usr_aw option without specifying –usr_al option).
Table 24 Matrix of Populated Properties for Different Types of StorageSetting (continued) Properties Default Values for Each StorageSetting Type AllocationUnit NULL Default NULL NULL Default NULL AllocationUnitMax NULL Max NULL NULL Max if goal setting. Default if default setting. NULL AllocationUnitMin NULL Min NULL NULL Min if goal NULL setting. Default if default setting.
Creating a DynamicStoragePool (CPG) via SMI-S Creating a DynamicStoragePool is a two-step process: 1. Choose or create a StorageSetting instance using CreateSetting(). • If choosing a pre-created one, a client should use a StorageSetting with InstanceID=”HP_3PAR:DynamicStoragePoolSetting:RAIDx:”. • If generating a StorageSetting, a client should invoke the CreateSetting method on one of the StorageCapabilties with InstanceID=”HP_3PAR:Capabilities:RAIDx:”.
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”.
Table 25 DynamicStoragePool Possible Return Values ValueMap Values Explanation/Notes 0 Job Completed with No Error 1 Not supported 2 Unknown 3 Timeout 4 Failed 5 Invalid parameter 6 In Use 4097 Size Not Supported Relevant Properties of DynamicStoragePool Table 26 Relevant Properties of DynamicStoragePool Properties Description string A unique ID within the storage array. The user’s defined name is used as an identifier.
Table 26 Relevant Properties of DynamicStoragePool (continued) Properties Description (bytes) account) allocated from this pool. For example, a RAID-1 CPG with 50 GB being allocated to TPVVs. The CurrentSpaceConsumed is 50 GB. Uint64 This is the nominal number of bytes allocated on disk for Snapshot data (SD) of this pool, not including RAID overhead.
Table 27 Summary of Modifiable StorageSetting Properties for DSP (continued) StorageSetting Property CLI Equivalence Comment bytes), and for the HP 3PAR Storage System, we set the absolute limit, not in percentage, hence the need for proprietary property DSPSnapSpaceGrowWarning. If DSPSnapSpaceGrowWarning is NULL and BOTH SpaceLimitWarningThreshold and SpaceLimit are specified, the numbers are converted to bytes for internal usage.
Table 28 Instances for StoragePoolConfigurationCapabilities Storage PoolConfigurationCapabilities PrimordialPool ConcretePool DynamicStoragePool DeltaReplica -StoragePool SupportedSynchronous Storage Pool Creation (2) -Actions Storage Pool Creation (2) Storage Pool Modification (4), Storage Pool Deletion (3) Storage Pool Deletion (3), Storage Element Creation (5), Storage Element Modification (7) SupportedStoragel InExtents (2), InExtents (2), -PoolFeatures Single InPool (3) Single InPool (3) S
an InPools parameter which accepts an array of references to StoragePool, with the first element containing reference to the parent pool from which the volume allocate its user space, and the second element containing reference to the parent pool from which the volume allocate its snapshot space. Supported Method For Creating a Storage Volume Table 29 Method for TPD_StorageConfigurationService Method Description CreateOrModifyElementFromStoragePool() Allows clients to create a StorageVolume.
• InPool: This option contains the reference to the source StoragePool. ◦ • This can either be a reference to Concrete pool or DynamicStoragePool. If this contains a reference to Concrete pool, then only a fully provisioned volume can be created and the ElementType has to be set to StorageVolume(2).
[Out] [In] [In] [In, [In, CIM_ConcreteJob ref Job, CIM_StorageSetting ref Goal, CIM_StoragePool ref InPools[], Out] Uint64 Size, Out] CIM_LogicalElement ref TheElement); • ElementName: The name of the TP StorageVolume (TPVV) or StorageVolume (FPVV) to be created. • ElementType: This enumeration specifies what type of object to create. StorageVolume(2) and ThinlyProvisionedStorageVolume(5) are supported. If other values are passed in, the provider should throw an “operation not supported” exception.
CreateSetting Table 33 Method for TPD_StorageCapabilities.CreateSetting Method Description CreateSetting() Allows clients to create a new StorageSetting instance based on existing instances. This method returns a new instance to the client with default property values. There are four instances of StorageCapabilities (one for each RAID type). The type of StorageSetting the client wants to create is determined by the referenced StorageCapabilities.
Creating a Volume with a Non-Default Setting The following are the steps necessary for an SMI-S client to create a volume with non-default settings: 1. Invoke the CreateSetting method to get at a reference to the TPD_StorageSetting. The SMI-S provider creates, if one does not exist, an instance of the default or goal TPD_StorageSetting, depending on the value in the SettingType option. If one already exists, the provider simply returns a reference to that instance.
4. You can optionally call DeleteInstance on the TPD_StorageSetting instance from step 1 or 2 to delete it. Table 35 Parameters for the CreateOrModifyElementFromStoragePool Method Operations/Parameters Create Volume Grow/Set Volume ElementName Name of Volume New name of volume; NULL means no change in volume name. ElementType 2 (Storage Volume) 2 5 (Thinly Provisioned Storage Volume) 5 (Thinly Provisioned Storage Volume).
Table 36 Disk Pattern CIM Properties (continued) Disk Pattern CIM Property Name (from TPD_StorageSetting class) CIM Property Type CLI Equivalent Format DiskFreeChunkletLT Signed Integer array -fc_lt an integer DiskPackageModels String array -devid ,,.. DiskRPM Signed Integer array -rpm an integer Where an item is: – nb is an integer. - ,
- – an item is a list of items.
Table 37 Volumes Created Based on Parameters to CreateOrModifyElementFromStoragePool() (continued) Type of Volume Created CreateOrModifyElementFromStoragePool TPD_CreateOrModifyElementFromStoragePools correspond to allocation limit and warning respectively of the snap space. Legacy TPVV, where user and snap space both draw from the same DSP. Not supported. Not supported. Fully provisioned volume, where user space draws from DSP. 1. ElementType = NULL or 1. ElementType = NULL or StorageVolume (2).
Table 38 Summary of Modifiable StorageSetting Properties for StorageVolume StorageSetting Property CLI Equivalence Comment Policy -pol GeometrySectorsPerTrack -spt GeometryHeadsPerCylinder -hpc ThinlyProvisioned -tpvv SpaceLimit -snp_al “-snp_al” uses percentage, but SpaceLimit is in number of bytes. SpaceLimitWarningThreshold -snp_aw snap space limit warning in percentage of SpaceLimit.
size is also represented in TPD_AllocatedFromStoragePool.SpaceConsumed between the parent concrete pool and the storage volume, dynamic storage pool, or delta replica storage pool. TotalManagedSpace for a concrete storage pool is equal to RemainingManagedSpace for the concrete storage pool value plus TPD_AllocatedFromStoragePool.SpaceConsumed option from all the storage volumes, dynamic storage pool, or delta replica storage pool allocated from the pool. StoragePool.
Initial State Example Suppose an array consisting of all Fibre Channel disks has a total disk capacity of 1090060445184 bytes (~1039563 MB) of which 923699114496 bytes (~880908 MB) worth of disks have been admitted. The rest of the disks, totaling 166361330688 bytes, have not been admitted and are therefore in a new state. The admitted disks are used to create a concrete pool (all-FC) consisting of all FC disks. Pimordial TPD_StoragePool.
• TPD_AllocatedFromStoragePool.SpaceConsumed between concrete “all-FC” pool and volume = TPD_StorageVolume.NumberOfRawBlocks * BlockSize = 21474836480 (raw space consumed from concrete pool in the creation of the volume). • Concrete TPD_StoragePool.RemainingManagedSpace = previous RemaningManagedSpace value – volume raw size = 813896302592 – 21474836480 = 792421466112. The TotalManagedSpace for the concrete pool remains unchanged.
DynamicStoragePool is the same as the logical size of the volume; RAID overhead is accounted for in the DynamicStoragePool itself and does not carry over to the child volume. • BlockSize = 512 • TPD_StorageVolume.NumberOfBlocks = TPD_StorageVolume.ConsumableBlocks = (10240 * 1024 * 1024) / BlockSize = 20971520 (logical block size of the volume) • TPD_StorageVolume.NumberOfRawBlocks = (20480 * 1024 * 1024) / BlockSize = 41943040 (raw block size of the volume) • TPD_AllocatedFromStoragePool.
to the volume, i.e., AllocatedFromStoragePool.SpaceConsumed is equal to StorageVolume.ProvisionedConsumableBlocks. • BlockSize = 512 • TPD_StorageVolume.NumberOfBlocks = TPD_StorageVolume.ConsumableBlocks = (10240 * 1024 * 1024) / BlockSize = 20971520 (logical block size of the volume) • TPD_StorageVolume.ProvisionedConsumableBlocks = actual allocated usable capacity to the volume in blocks = 4G / BlockSize = 8388608 • TPD_StorageVolume.
Table 39 Properties Relevant to TPVV (continued) Properties Description String The DynamicStoragePool (DSP) the snapshot data (SD) are provisioned from. SnapDSPName String The DynamicStoragePool (DSP) the user space is provisioned from. UserDSPName Indications Thin Provisioning Indications Following alert indications relating to thin provisioning are supported: 1. Capacity Warning - This is an alert message indicating that the actual capacity of a volume or pool is nearing a limit (e.g.
a. b. TPD_StoragePoolGrowLimitAlert - Indication specifying that a storage pool has reached its allocation limit. • OwningEntity: "SNIA" • MessageID: "DRM29" • MessageArguments: "Pool", • AlertType: DeviceAlert(5) • PerceivedSeverity: Major(5) • ProbableCause: Out of Memory(33) • ProbableCauseDescription: "No remaining space in storage pool" TPD_StoragePoolGrowFailureAlert - Indication specifying that a storage pool has failed to grow. • c.
Lifecycle Indications Following lifecycle indications relating to Block Services are supported: 1. TPD_StorageVolumeInstCreation – when a StorageVolume is created 2. TPD_StorageVolumeInstDeletion – when a StorageVolume is deleted 3. TPD_StorageVolumeInstModification – when the value of one of the following properties changes: a. NumberOfBlocks b. OperationalStatus c. ElementName 4. 5. 6.
Figure 2 Virtual Copy Class Diagram for a Legacy Volume Figure 3 Physical Copy Class Diagram for a Legacy Volume 50 CIM API SMI-S Support
Figure 4 Job Control Class Diagram TPD_AffectedJobElement Association between TPD_ConcreteJob and the replica TPD_StorageVolume. Refer to Section (page 51) for more details. TPD_AllocatedFromStoragePool Virtual copy snapshot volume is associated to the TPD_DeltaReplicaStoragePool via TPD_AllocatedFromStoragePool. SpaceConsumed property in this case is the space consumed by the snapshots.
TPD_DeltaReplicaStoragePool This StoragePool class is instantiated upon allocation of SA and SD space of a volume. The SA and SD spaces are modeled as TPD_DeltaReplicaStoragePool from which virtual copy snapshots (delta replica) can be allocated and created. This class is a subclass of CIM_StoragePool. CIM_StoragePool.GetSupportedSizeRange() method, which is supported in TPD_StoragePool, is not supported for TPD_DeltaReplicaStoragePool.
a. b. c. d. UnSyncAssoc, which corresponds to virtual copy UnSyncUnAssoc, which corresponds to creating an physical copy Async, which corresponds to async remote mirror Sync, which corresponds to sync remote mirror 4. SupportedStorageElementUsage[] - indicates the intended usage or any restrictions that may have been imposed on the usage of StorageVolumes. This array contains the following values: a. Unrestricted, which applies to base volume b.
2. SupportedAsynchronousActions[] - Enumeration indicating what operations are executed as asynchronous jobs, supported values are: a. Local Replica Attachment – physical copy creation is asynchronous (Attachment means attaching a replica to an existing volume). b. Local Replica Modification – resync physical copy is also asynchronous. 3. SupportedSynchronousActions[] - Enumeration indicating what operations are executed the without creation of a job, supported values are: • 4.
10. MaximumReplicasPerSource – Maximum number of replicas that can be associated with one source element. If the replica is physical copy, then the max number of replica per source volume is the max number of volume allowed for a storage system minus 1. If the replica is a virtual copy, then the max number of replica per source volume is the maximum read-write snapshot per source volume. RO snapshots are not counted. 11.
14. DeltaReplicaPoolAccess - Indicates that a specialized pool is required as a container for delta replica elements. In our case, delta replica (virtual copy snapshots) always requires a specialized pool, the TPD_DeltaReplicaStoragePool, which corresponds to the SA/SD space of the base volume. Possible values are: a. Any – specialized pool not required for delta replicas. This is not the case for our snapshots. b. Shared – a single shared pool is required for all delta replicas.
in by the client results in an Invalid Parameter exception. These properties are initialized with the allowed value upon creation. 1. PersistentReplica – True indicates the associated replicas persist during power off or system reset. Only TRUE is accepted since we do not support transient replicas. Applicable only for those settings that are associated to replica volumes. 2. IntendedUsage – Describes the use of the storage elements associated with this StorageSetting.
7. ProgressStatus - Status of association between source and target groups.
non-legacy volume, within the input parameter Goal (a TPD_StorageSetting object) during create or modify volume operation, a TPD_DeltaReplicaStoragePool will be instantiated automatically. CreateOrModifyStoragePool DeltaReplicaStoragePool can also be created by CreateOrModifyStoragePool method (see Section (page 32) for the method signature).
For CPVV, the TPD_AllocatedFromStoragePool association links the TPD_DeltaReplicaStoragePool with the source DSP. For ThinStorageVolume (TPVV), the TPD_AllocatedFromStoragePool association links the TPD_DeltaReplicaStoragePool with the source SD DynamicStoragePool (as opposed to the user DynamicStoragePool). Capacity Calculations Non-CPVV TotalManagedSpace of the TPD_DeltaReplicaStoragePool equals to the raw SD space.
SpaceLimit and SpaceLimitThresholdWarning for the TPD_AllocatedFromStoragePool association between the snapshot volume and the parent TPD_DeltaReplicaStoragePool are not used, and hence is not populated, since the HP 3PAR OS does not support specification of allocation limit on a per snapshot volume basis. Calculation for TotalManagedSpace of the TPD_DeltaReplicaStoragePool of a CPVV is the similar to that for a non-CPVV, except that the parent pool is now a DSP and not a concrete pool.
Table 44 Return Values for UpdateDeltaSnapshotSpace() ValueMap Values Explanation/Notes 4 Failed 0x1000 Method parameters checked – job started 32768 Volume does not exist No such snapshot volume, or the specified volume is not a virtual copy snapshot. Indications Job control indications are supported for the job started with the UpdateDeltaSnapshotSpace() method. These indications are converted from events generated by the task framework. 1.
StorageReplicationCapabilities The ability to create a physical copy is described by the following instance of TPD_StorageReplicationCapabilities (see Section (page 53)): • UnSyncUnAssoc - describes the capability of our provider to create an independent clone of a volume CREATION CLI EQUIVALENCE createvvcopy –p SMI-S METHOD A physical copy can be created by a CIM client using the TPD_StorageConfigurationService.AttachOrModifyReplica() method.
ValueMap {"2", "3", "4", "5"}] Uint16 CopyType); Table 46 Return values for AttachOrModifyReplica()/AttachReplica() ValueMap Values Explanation/Notes 0 Success 4 Failed For example: the source volume does not have snapspace, target volume is incompatible. 5 Invalid Parameter For example: the wrong CopyType is specified. 6 In Use Target volume is already a physical copy of another volume.
A physical copy can be resynchronized with the source volume by a CIM client using the TPD_StorageConfigurationService.ModifySynchronization() method with the Operation parameter set to Resync(4). A target volume that is in a Broken state (copy failed) cannot be resync-ed.
Table 48 Return Values for the Various ModifySynchronization() Operations ValueMap Values Explanation/Notes 0 Job Completed with No Error Applicable only for Detach (promote). 4 Failed For example: the TPD_StorageSynchronized object does not exist. 5 Invalid Parameter For example: the wrong CopyType is specified. 0x1000 Method parameters checked – job started Does not apply to Detach. The method execution, if successful, always returns 0x1000, which means that job has started.
CLI EQUIVALENCE createvvcopy –p -s SMI-S METHOD Copy can be done on an existing physical copy using the TPD_StorageConfigurationService.ModifySynchronization() method with the Operation parameter set to Start Copy (12). The method execution, if successful, always returns 0x1000, which means that job has started. See “StorageReplicationCapabilities” (page 63) for possible return values.
Figure 5 State Transition Diagram of Physical Copy Job Control Subprofile Indications The following job control subprofile indications are supported for the job that is started as a result of the copy operation: • Modification of Job Status for a Concrete Job - copy/resync started. • Modification of Operational Status for a Concrete Job to Complete and OK – copy/resync successful. • Modification of Operational Status for a Concrete Job to Complete and Error – copy/resync failed.
Table 53 StorageSynchronized Property Values for a Virtual Copy (continued) Property Value Synchronization is not maintained between replica and source volume. WhenSynced NULL to start with; non-NULL upon successful completion of a copy. The point in time that the Elements were synchronized.
Table 54 Return values for CreateReplica() Operation ValueMap Values 0 Job Completed with No Error 4 Failed 5 Invalid Parameter Explanation/Notes For example: the wrong CopyType is specified STATE TRANSITIONS Table 55 (page 70) shows the values for SyncState and WhenSynced during various stages of the virtual copy creation.
Here are the values for SyncState and WhenSynced during various stages of halting virtual copy promote. Table 57 State Transitions for Halting Virtual Copy Promote Operation SyncState WhenSynced Promote in progress RestoreInProgress (10) Previous sync time Halt complete Broken (12) Previous sync time Promote Failed Idle (11) New sync time Promote Failed (This indicates that the halt has failed and the promote was allowed to finish).
• Promote virtual copy • Update snapshot space TPD_ConcreteJob This is a new class, and each instance of this class represents a task. RequestStateChange() Method This method can be used to cancel a task. The input parameter RequestedState can only be set to Terminate(4), since the HP 3PAR OS task framework only supports task canceling.
EmbeddedInstance ("CIM_Error"}] String Error); • Error: If the OperationalStatus on the Job is not “OK”, then this method returns a CIM Error instance. Otherwise, when the Job is "OK", null is returned. Table 59 Return Values for GetError()Operation ValueMap Values 0 Success 5 Invalid Parameter Explanation/Notes Mapping Error Code to CIM_Error A CIM_Error object consists of the following properties: • OwningEntity – the string “SNIA” • MessageID –DRM26, Resource not available.
job, then this contains a CIM_InstMethodCall instance representing AttachOrModifyReplica. CIM_InstMethodCall contains the following values: • ◦ MethodName – string of the methodName, e.g., AttachOrModifyReplica. ◦ MethodParameters - parameters of the method, formatted as an EmbeddedObject (with a predefined class name of “__MethodParameters"). This only contains the input parameters; output parameter (Job) is not included.
Location Subprofile CIM Classes Table 60 Location Subprofile CIM Classes Class Description TPD_SystemPackage The Physical Element whose Location is specified. This represents the physical aspects of the HP 3PAR Storage System storage array. TPD_SystemLocation The Location of the specified Physical Element. Supported Methods Table 61 Methods for TPD_SystemLocation Method Description createInstance() Creates an instance of TPD_SystemLocation.
Software Subprofile CIM Classes Table 63 Software Subprofile CIM Classes Class Description TPD_StorageSystem The storage array on which the software is installed. TPD_SoftwareIdentity Information on installed software on the specified TPD_ComputerSystem. Supported Methods Table 64 Methods for TPD_StorageSystem Method Description modifyInstance() Provides the ability to set owner and contact information for the StorageSystem.
Supported Methods Table 66 (page 77) - Table 69 (page 77) shows the supported methods of the masking and mapping subprofile: Table 66 Methods for TPD_StorageSystem Method Description modifyInstance() Provides the ability to set owner and contact information for the StorageSystem. Table 67 Methods for TPD_StorageHardwareIDManagementService Method Description CreateStorageHardwareID() Expose SCSI Logical units. DeleteStorageHardwareID() Hide a list of SCSI logical units.
(host WWN/iSCSIName), and SCSIProtocolEndPoints (port WWNs/iscsiNames). A path is a combination of one each: logical unit (volume), initiator port (host port), and target port. An SPC serves as a collection of paths. Three kinds of SPCs are supported in the HP 3PAR Storage System environment: • Matched-Set SPC, its deviceID format is MS::, where is the notation of the target port and is the system assigned ID of the host where initiator port(s) reside.
StorageHardwareIDs. This view can also have associations to multiple StorageVolumes, but only one association to the target port.
Figure 8 Masking and Mapping Example 2 (one storage system port connecting to fabric) Figure 9 Masking and Mapping Example 3 (two storage system ports connecting to fabric). ProtocolControllerMaskingCapabilities This class describes the capabilities of the SPC in a storage system, which describes the kind of controller configuration and StorageHardwareID management services that are available to clients.
• PrivilegeDeniedSupported: false. • ProtocolControllerRequiresAuthorizedIdentity: false; CreateProtocolControllerWithPorts method is not supported. • ProtocolControllerSupportsCollections: true; a collection of StorageHardwareIDs (host HBA WWNs/iSCSNames) is supported. • ExposePathsSupported: true; the storage system supports the ExposePaths method. • CreateProtocolControllerSupported: false; explicit creation of SPC is not supported.
ExposePaths (Creating VLUNs) ControllerConfigurationService.ExposePaths() performs VLUN export in one method call. It exposes a list of volumes to a list of host port (HBAs - initiators) via a list of system ports (targets). This method can be used either to create an SCSIProtocolController (SPC) and modify an existing SPC. If the ProtocolController parameter is null, the provider is supposed to create a new SPC. This operation can be used to create matches-set, host-see or port-present VLUNs.
• Override: Override existing lower priority VLUNs, if necessary. Can be used only when exporting to a specific host. This parameter is a vendor-specific extension. The default value is false. • NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after export. For direct connect or loop configuration, a VCN consists of a fibre channel Loop Initialization Primitive (LIP).
The method signature is described below: uint32 HidePaths ( [Out] CIM_ConcreteJob ref Job, [In] String LUNames[], [In] String InitiatorPortIDs[], [In] String TargetPortIDs[], [In] String DeviceNumbers[], [In/Out] CIM_SCSIProtocolController ref ProtocolController[], [In] boolean NoVCN, [Out] String ResultDescriptions[]); • Job: This is ignored since the storage system does not support job control. • LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist.
ExposeDefaultLUs Use of ExposeDefaultLUs has been deprecated. Please use ExposePaths instead to create a port-present SPC. HideDefaultLUs Use of HideDefaultLUs has been deprecated. Please use HidePaths instead. ExposeLUsToStorageHardwareIDCollection (Creating Host-Sees VLUNs) (3PAR proprietary method) ControllerConfigurationService.
on input, this can either be reference to TPD_SCSIController for FC host or TPD_iSCSIController for iSCSI host • Override: Override existing lower priority VLUNs, if necessary. Can be used only when exporting to a specific host. This parameter is a vendor-specific extension for 3PAR. The default value is false. • NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after export.
• ProtocolControllers[]:An array of references to SCSIProtocolControllers (SPCs). On input, this must contain exactly one SPC. On output, this is the set of SPCs affected. If SPC is included on input, this can either be reference to TPD_SCSIController for a FC host or TPD_iSCSIController for an iSCSI host. • NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after removal.
CreateStorageHardwareID (Creating Host and Path) This method creates a StorageHardwareID (host HBA WWN/iscsiBane) on a host, it creates the association TPD_MgmtServicesForStorageHWIDCollection between TPD_StorageHardwareIDManagementService and the new TPD_StorageHardwareID. This operation is similar to “createhost ” or “createhost –iscsi ”.
• HardwareID: Reference to the new StorageHardwareID instance to delete. This is mandatory. CreateStorageHardwareIDCollection (Creating a Host) This method creates a StorageHardwareIDCollection (host) and optionally a list of WWNs/iscsiNames to assign to it. This is useful to define a set of authorized subjects that can access volumes. This method causes the creation of the HostedCollection association and MemberOfCollection association to the members of the IDs parameter.
SetISCSICHAP This method sets the initiator or the target host CHAP secrets or both. This operation is similar to “sethost initchap ” or “sethost targetchap ”. The host as specified in must have existed.
ConcreteDependency There are three ConcreteDependency classes in MM subprofile: • TPD_ConfigServicesForSCSIController: association between CCS with TPD_SCSIProtocolController. • TPD_ConfigServicesForiSCSIController: association between CCS with TPD_iSCSIProtocolController. • TPD_MgmtServicesForStorageHWIDCollection: association between StorageHardwareID and StorageHardwareIDManagementService. SAPAvailableForElement This class replaces PrococolControllerForPort in SMI-S 1.0.2.
Table 76 Properties for (continued) Properties Values Uint16 ConnectionType 2 (Fibre Channel) Uint16 Role 2 (target port) iSCSIPrococolEndpoint iSCSIPrococolEndpoint (subclass of LogicalPort) models SCSI aspects of an iSCSI port. Unlike TPD_SCSIPrococolEndpoint, however, this class is not associated to any CIM_LogicalPort class since one does not exist for iSCSI port. One instance of this class must be created for each target port (connecting to host or fabric).
iSCSIControllerForUnit Similar to TPD_SCSIControllerForUnit, except that TPD_iSCSIControllerForUnit associates TPD_iSCSIController for an iSCSI host with StorageVolumes. StorageClientSettingData An array has several fixed instances of this class, each corresponding to a host persona. Each instance of StorageHardwareID and StorageHardwareIDCollection has an ElementSettingData association with an instance of StorageClientSettingData that corresponds to the persona of the host.
Table 80 Property Values for AuthorizedPrivilege Properties Values string ElementName User friendly name. string InstanceID Opaque unique identifier. boolean PrivilegeGranted True – privilege is granted, False – not granted. Uint16[] Activities SMI-S: this array must contain 5 (read) and 6 (write).
ProtocolControllerMaskingCapabilities See Section (page 80). FC Target Ports Subprofile The FC Target Ports subprofile models Fibre Channel specific aspects of a target storage system. This subprofile provides information about FC ports on an HP 3PAR Storage System that are connected to hosts or FC switches. For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http:// www.snia.org.
1. 2. TPD_FCPort of an FCoE port has an extra TPD_FCPortEthernetPortDependency association with a TPD_EthernetPort. TPD_FCPort.PortDiscriminator property has a value of 10 (FCoE) for FCoE port and 2 (Not Applicable) for FC port. FC Initiator Ports Subprofile The FC Initiator Ports subprofile models Fibre Channel specific aspects of a storage system.
Table 86 iSCSI Target Ports Subprofile Key CIM Classes (continued) Class Description TPD_EthernetPort An Ethernet Port residing on the TPD_StorageSystem. TPD_SCSIController Represents the SCSI view of ports as seen by SCSI initiators. TPD_iSCSICapabilities Provides information about the iSCSI capabilities of an HP 3PAR Storage System. TPD_iSCSISession Provides information about iSCSI Sessions, which are established between an initiator port and a target port.
Table 88 Disk Drive Lite Subprofile Key CIM Classes (continued) Class Description TPD_StoragePool Identifies which Storage Pool contains the storage provided by specific disk drives. TPD_VolumeBasedOnDiskExtent Associations between a StorageVolume and the DiskStorageExtent that makes up the volume. Includes support for TPVV. TPD_StoragePoolComponent Associations between a storage pool and the DiskStorageExtent that make up the pool.
TPD_ArrayStatisticalData Statistical data for the top level ComputerSystem. Data are aggregate of all the port statistics in the array. Property Type Description StatisticTime DateTime Time the statistics is collected. ElementType Unit16 Computer System (2) Defines the role that the element played for which this statistics record was collected. TotalIOs Unit64 The cumulative count of I/Os. ReadIOs Unit64 The cumulative count of all reads. WriteIOs Unit64 The cumulative count of all writes.
Property Type Description ReadIOTimeCounter Unit64 The cumulative elapsed time for all Read I/Os for all cumulative Reads. WriteIOTimeCounter Unit64 The cumulative elapsed time for all Write I/Os for all cumulative Writes. ReadHitIOs Unit64 The cumulative count of all read cache hits (Reads from Cache). WriteHitIOs Unit64 The cumulative count of Write Cache Hits (Writes that went directly to Cache). ReadMissIOs Unit64 The cumulative count of all Read Cache misses.
Property Type Description NLDelayedAck Unit32 Number of delayed acknowledgements to the host in order to throttle the host's IO writes due to cache resource constraints for the NL disk type. SSDDelayedAck Unit64 Number of delayed acknowledgements to the host in order to throttle the host's IO writes due to cache resource constraints for the SSD disk type. TotalCPUUserTimeCounter Unit64 The user time since system start time, using ClockTickInterval units, for all the CPUs on the node.
Property Type Description TotalServiceTimeCounter Unit64 The service time since system start time, using ClockTickInterval units, for the total I/Os. QueueLength Unit32 The queue length PercentBusy Unit32 Percent of current busy use. TPD_PortStatisticalData Property Type Description StatisticTime DateTime Time the statistics is collected ElementType Unit16 Front-End Ports (6) or Back-End Ports (7) Defines the role that the element played for which this statistics record was collected.
Property Type Description ReadIOTimeCounter Unit64 The cumulative elapsed time for all Read I/Os for all cumulative Reads. WriteIOTimeCounter Unit64 The cumulative elapsed time for all Write I/Os for all cumulative Writes. ReadServiceTimeCounter Unit64 The service time since system start time, using ClockTickInterval units, for the Read I/Os. WriteServiceTimeCounter Unit64 The service time since system start time, using ClockTickInterval units, for the Write I/Os.
Replication Services Profile This new profile extends the functionality of the Copy Services Subprofile by including enhanced local replication for thinly provisioned storage objects, remote replication (not supported in this release), and support for replication groups and consistency group.
4. Locality - specifies the relationship between the source and target element. There are two defined localities: a. Local - indicates the source and target elements are contained in a single managed system. b. Remote - indicates the source and target elements are contained in separate managed systems. In this case, the service must rely on a networking protocol for the copy operations. HP 3PAR SMI-S supports read-only implementation of remote replication.
Table 93 Relevant Properties of ReplicationGroup Class Properties Value Description ElementName vvset name ElementName contains the name of the VV set. ID vvset ID ID contains the system-assigned ID of the VV set. InstanceID HP_3PAR: Within the scope of an array, the InstanceID opaquely and uniquely identifies an instance of this class Persistent True If false, the group, not the elements associated with the group, may be deleted at the completion of a copy operation.
All extrinsic methods in this class return one of the following status codes: • 0: (Job) Completed with no error • 1: Method not supported • 4: Failed • 5: Invalid Parameter • 4096: Method Parameters Checked - Job Started Replication Services includes methods to create and delete a group, and methods to add elements or pair of elements to an existing group(s) or to remove elements from a group.
DeletionGroup uint32 ReplicationService.DeleteGroup( [IN, Required] SNIA_ReplicationGroup REF ReplicationGroup. [IN] CIM_ServiceAccessPoint REF ServiceAccessPoint, [IN] boolean RemoveElements ); [IN] CIM_ReplicationSettingData REF ReplicationSettingData, • ReplicationSettingData: Additional replication settings for the method. This parameter is ignored and thus should be set to NULL. Use to delete a replication group. All associations to the deleted group are also removed as part of the action.
• ReplicationGroup: A reference to an existing replication group. • ServiceAccessPoint: NULL, which means the group is on the local system. CreateElementReplica uint32 ReplicationService.
• • • TargetSettingGoal: The definition for the StorageSetting to be maintained by the target storage object (the replica). This is valid only for snapshot volumes (base ID, expiration timer, retention timer). ◦ For snapshots only the following properties are applicable: BaseID, ExpirationTimer and RetentionTimer.
string ReplicationSettingData, CIM_ConcreteJob REF Job, CIM_ConcreteJob REF Jobs[], CIM_Synchronized REF Synchronizations[], CIM_SettingData REF TargetSettingGoal, CIM_ResourcePool REF TargetPool, uint16 WaitForCopyState); [OUT] [OUT] [OUT] [IN] [IN] [IN] This method allows a client to create (or start a job to create) new storage objects which are replicas of the specified source storage objects (SourceElements).
• • 112 TargetPool: The underlying storage for the target element (the replica) will be drawn from TargetPool if specified, otherwise the allocation is implementation specific. ◦ For snapshots, this parameter if specified must be the DeltaReplicaStoragePool that is associated with the source StorageVolume. ◦ For clones, this parameter if specified can be any DynamicStoragePool; if not specified, the clone will be allocated from the same parent DynamicStoragePool as the source volume.
Replication Services Profile 113 SyncType Clone Snapshot What to create Physicalcopy Virtual copy (snapshot volume) Optional (default Optional (if is Synchronous) NULL, a name will be auto-generated) Mandatory Optional Mandatory (applicable only if TargetElement is not supplied; if NULL, a name will be auto-generated) Asynchronous SourceElements Optional Mandatory (applicable only if TargetElement is not supplied; if NULL, a name will be auto-generated) ElementNames Synchronous (default) Mod
CreateGroupReplica uint32 ReplicationService.
• Jobs[ ]: HP defined parameter. If one or more Jobs is created as a side-effect of the execution of the method, then a reference to those Jobs is returned through this parameter (may be NULL if job is completed). For physical copy if vv sets, HP 3PAR OS actually spawns one job for each of the vv pairs and not one job for the whole set. The jobs parameter contains an array of references to each job.
Table 97 Parameter Matrix for CreateGroupReplica (continued) will be created that detach automatically CreateGroupReplicaFromElements uint32 ReplicationService.
• SourceAccessPoint: NULL • TargetGroup: ◦ As an input, refers to a target group to use. If a TargetGroup is not provided one will be created. If a group is provided it must either be empty, or have exactly the number of elements as SourceElements or SourceGroup. ◦ As an output, refers to the created target group (i.e., the replica group). If a job is created, the target group may not be available immediately.
CIM API SMI-S Support Synchronous Snapshot snapshots of remote copy volumes, on both primary and secondary arrays Snapshot (can only be Synchronous) Optional (can only be Synchronous) Optional Asynchronous Clone Virtual copy (snapshot volume) Synchronous (default) Clone Physicalcopy Mode SyncType What to create Mandatory Mandatory Optional Optional Relationship Name Table 98 Parameter Matrix for CreateGroupReplicaFromElements -ReplicationGroup TPD_Remote Mandatory TPD_Replicati
TPD_CreateGroupReplica NOTE: TPD_CreateGroupReplica is now deprecated. Use CreateGroupReplica, CreateGroupReplicaFromElements, or CreateListReplica instead. Due to the inadequacies of the SMI-S defined CreateGroupReplica in supporting vv set replication and consistent volume list replication, a couple of proprietary methods are defined. uint32 ReplicationService.
This is a 3PAR-specific method which is equivalent to creategroupvvcopy and creategroupsv commands, and allows for client to specify a list of volumes to copy instead of a single one (as is the case with CreateElementReplica) or a replica group (as is the case with CreateGroupReplica).
• Force: Some operations may cause an inconsistency among the target elements. If true, the client is not warned and the operation is performed if possible. This should always be NULL since we do not support this.
[IN, Required] TPD_ReplicaGroup REF TargetGroup, [OUT] CIM_ConcreteJob REF Jobs[]); • Operation: This parameter describes the type of modification to be made to the replica and/or to the related associations. • TargetGroup: Reference to the replication group (vvset) • Jobs: Array of references to ConcreteJob associated with each of the volume in ReplicaGroup. This is a 3PAR-specific method used for resync and promotes of physical copy vvset or promote of snapshot vvset.
The parameters are as follows: • Options: This parameter specifies whether to return all known peer systems or only the systems that are currently reachable. If Null, all known systems are returned, whether they are currently reachable or not. • Job: This will always be NULL • Systems[ ]: the list of peer systems found. GetReplicationRelationships uint32 ReplicationService.
can only be StorageSynchronized since we do not support GroupSynchronized local replication. • SyncType: If this parameter is not supplied, all SyncTypes are retrieved. • Mode: If this parameter is not supplied, all Modes are retrieved. • Locality: Describes the desired locality. If this parameter is not supplied, all replication relationships are retrieved, regardless of the locality of elements.
Operation CLI Command Which Method to Use (in ReplicationService class, unless specified otherwise) Create async physical createvvcopy -p CreateElementReplica copy vv -s CreateListReplica (if SourceElements array has only one member) Output Job(s)? Y • SyncType = Clone (8) • Mode = Asynchronous (3) • WaitForCopyState=Inactive (8) Create async physical createvvcopy -p copy vvset set: -s set: CreateGroupReplica/ TPD_CreateGroupReplica Y (preferred) CreateGroupReplicaFromElements
Operation CLI Command Which Method to Use (in ReplicationService class, unless specified otherwise) Resync group physical creategroupvvcopy -r copies … ModifyListSynchronization Halt group physical copies creategroupvvcopy -halt … ModifyListSynchronization Create snapshot volume createsv CreateElementReplica Output Job(s)? Y • Operation = Resync Replica (14) N • Operation = Abort (2) N CreateListReplica (if SourceElements array has only one member) • Sync
Table 101 Relevant Properties of ReplicationServiceCapabilities (continued) Properties Value Description SupportedAsynchronousActions CreateElementReplica (2), Identify replication methods using job control. ModifyReplicaSynchronization (5), ModifyListSynchronization (6) SupportedSynchronousActions CreateElementReplica (2), CreateGroupReplica (3), Identify replication methods not using job control.
Table 103 SyncType/Mode/LocalOrRemote and ReplicationTypes Mapping SyncType Mode LocalORRemote ReplicationType Notes Snapshot (7) Synchronous (2) Local Synchronous Snapshot Snapshot Volume Local (6) Clone (8) Synchronous (2) Local (2) Synchronous Clone Local (10) Physical Copy Clone (8) Asynchronous (2) Local (2) Asynchronous Clone Local (11) Physical copy that retains association with parent Mirror (6) Synchronous (2) Remote (3) Synchronous Mirror Remote (4) Mirror (6) Asynchronous
Table 104 SupportedFeatures for ReplicationType (continued) ReplicationType Description Description "Multi-hop element replication” (3) "Targets allocated from Any storage pool" (8) "Target must remain associated to source" (16) Synchronous Mirror Remote (4) “Replication Groups” (2) Asynchronous Mirror Remote (5) “Requires full discovery of target ComputerSystem” (6) “Service suspends source I/O when necessary" (7) Remote ComputerSystem needs to be discovered first before a remote replication can hap
Table 105 SupportedGroupFeatures for ReplicationType (continued) ReplicationType Features Description Target element can be removed from group (12) Group is nameable" (14) Synchronized clone target detaches automatically (16) Asynchronous Clone Local (11) The clone target group detaches automatically when the target group becomes synchronized; otherwise, the client needs to explicitly request a detach operation.
Table 106 SupportedCopyStates for ReplicationType (continued) ReplicationType CopyStates HostAccessible Description Broken False Replica is not a valid view of the source element. OperationalStatus of replica may indicate an Error condition.
GetSupportedWaitForCopyStates uint32 ReplicationServiceCapabilities.GetSupportedWaitForCopyStates( [IN] uint16 ReplicationType, [IN] uint16 MethodName, [OUT] uint16 SupportedCopyStates[] ); This method, for a given ReplicationType and method, returns the supported CopyStates that can be specified in the method's WaitForCopyState parameter.
Table 109 Possible SupportedOperations for Various ReplicationType (continued) ReplicationType Supported Operations Restore Replica (15) Return to Resource Pool (19) This method will return Not Supported (2) error code for any other ReplicationType. GetSupportedGroupOperations uint32 ReplicationServiceCapabilities.
1. 2. 3. Thin provisioning is not supported: Feature is unavailable. Zeros written in unused allocated blocks of target: In copying thin to full, the unused blocks of target will be written with zeros. Unused allocated blocks of target are not initialized: In copying thin to full, the unused blocks of target will remain uninitialized.
GetDefaultConsistency uint32 ReplicationServiceCapabilities.GetDefaultConsistency( [IN] uint16 ReplicationType, [OUT] uint16 DefaultConsistency ); This method for a given ReplicationType, returns the default consistency value for the replication groups. We will always return Sequentially Consistent (2) in DefaultConsistency parameter for all supported ReplicationTypes. GetDefaultGroupPersistency uint32 ReplicationServiceCapabilities.
"CIM_ReplicationSettingData.TargetElementSupplier", "CIM_ReplicationSettingData.ThinProvisioningPolicy" }] uint16 SupportedValues[]); This method, for a given ReplicationType, returns an array of supported settings that can be used in an instance of the ReplicationSettingData class. See the MOF for the ReplicationSettingData class for the value map of the properties.
Table 111 Possible SupportedValues for Various ReplicationType/PropertyName (continued) ReplicationType PropertyName Asynchronous Mirror Remote (5) Synchronous Mirror Remote (4) Synchronous Clone Local (10) Asynchronous Clone Local (11) Synchronous Snapshot Local (6) This property applies to group or list operations. It specifies what the implementation should do if an error is encountered before all entries in the group or list is processed.
This method will return Not Supported (2) error code for any other ReplicationType not listed in the table above. GetDefaultReplicationSettingData uint32 ReplicationServiceCapabilities.GetDefaultReplicationSettingData( [IN] uint16 ReplicationType, [OUT, EmbeddedObject] string DefaultInstance ); This method, for a given ReplicationType, returns the default ReplicationSettingData as an instance.
Table 112 Relevant Properties of RemoteStorageSynchronized (continued) Properties Description • Failing Back (12) • Requires Activate (19) RequestedCopyState RequestedCopyState is an integer enumeration that indicates the last requested or desired state for the association. The actual state of the association is represented by CopyState. Note that when CopyState reaches the requested state, this property will be set to 'Not Applicable.
Table 112 Relevant Properties of RemoteStorageSynchronized (continued) Properties Description • over_per_alert - If a synchronization of a periodic Remote Copy group takes longer to complete than its synchronization period then an alert will be generated. This is the default behavior. • no_over_per_alert - If a synchronization of a periodic Remote Copy group takes longer to complete than its synchronization period then an alert will not be generated.
Table 114 CopyState/SyncState/ProgressStatus Transitions During Disaster Recovery (continued) Sequence of Events Showrcopy Group Info Role/SyncStatus CopyState SyncState ProgressStatus State of Primary 3PAR Secondary-Rev/Stopped Broken array after it is brought back up Broken Completed State of Secondary Primary-Rev/Syncing 3PAR array after setrcopygroup recover is issued on it Unsynchronized RestoreInProgress Restoring State of Primary 3PAR Secondary-Rev/Syncing Unsynchronized array after setrco
Table 114 CopyState/SyncState/ProgressStatus Transitions During Disaster Recovery (continued) Sequence of Events Showrcopy Group Info Role/SyncStatus CopyState SyncState ProgressStatus Synchronized Synchronized Completed State of Primary 3PAR Secondary-Rev/Synced Synchronized array if setrcopygroup restore failed Synchronized Completed State of Primary 3PAR Primary/Synced array if setrcopygroup restore is done Synchronous Long Distance (SLD) Backup Link For SLD configuration in which a primary 3P
Table 115 Relevant Properties of TPD_ReplicationEntity (continued) Property Description EntityID Remote volume name OtherTypeDescription NULL Since there is no full-blown support for ReplicationEntity, in the replication service capabilities the SupportedFeatures property will still include “Requires full discovery of target ComputerSystem“ which indicates that the service does not support undiscovered resources.
Table 117 Relevant Properties of RemoteGroupSynchronized (continued) Property Description • Suspended (9) • FailedOver (10) • Skewed (13) • Mixed (14) If any of the member volumes have different CopyState, this property will be set to Mixed. Mode Mode describes whether the target elements will be updated synchronously or asynchronously. Possible values are: • Synchronous (2) • Asynchronous (3) PercentSynced Percent of the individual volumes in the group synced.
TPD_OrderedMemberOfRemoteReplicationGroup This is the association between RemoteReplicationGroup and a member StorageVolume, sub-classed from CIM_OrderedMemberOfCollection. Property Description Collection Reference to a RemoteReplicationGroup Member Reference to a member StorageVolume AssignedSequence (uint64) Position of the volume in the group Please note that this association exists only for the RemoteReplicationGroup residing on the local array.
TPD_SAPAvailableForRemoteReplicationGroup This is the association between RemoteReplicationGroup and the SCSIProtocolEndpoint, sub-classed from CIM_SAPAvailableForElement. The endpoints denotes the port used for remote replication. Property Description ManagedElement Reference to RemoteReplicationGroup AvailableSAP Reference to: • TPD_SCSIProtocolFCEndpoint if RCFC • TPD_IPProtocolEndpoint if RCIP Please note that this association exists only for the RemoteReplicationGroup residing on the local array.
Figure 11 Remote Replication TPD_MemberOfRemoteReplicationCollection TPD_MemberOfRemoteReplicationCollection represents the association between RemoteReplicationCollection instances and ProtocolEndpoint instances. Subclass from CIM_MemberOfCollection. Property Description Collection Reference to a TPD_RemoteReplicationCollection instance.
TPD_HostedRemoteReplicationCollection Represents as association between the TPD_StorageSystem and TPD_RemoteReplicationCollection instances. Subclassed from HostedCollection. Property Description Antecedent Reference to the TPD_StorageSystem instance. Dependent Reference to a TPD_RemoteReplicationCollection instance Thin Provisioning Profile Support for Thin Provisioning objects such as TPD_DynamicStoragePool and thinly provisioned TPD_StorageVolume are described in the Block Services Package chapter.
Table 119 Methods for TPD_SASPort Method Description RequestStateChange() Can be used to reset SAS port or set it offline. Supported RequestState includes: • Offline (6) • Reset (11) ReloadFirmware() Can be used to reload firmware on all the SAS ports on an HBA.
5 CIM Indications SMI-S provides for asynchronous notification of events that indicate changes in the CIM server or the managed elements controlled by the CIM server. CIM indications are the mechanism for delivery of such events. A CIM client must subscribe to indications it wants to receive event notifications from the CIM server. For detailed information regarding Indications, refer to SMI S at www.snia.org. When creating the IndicationFilter, the QueryLanguage property should be set to “DMTF:CQL”.
TPD_DynamicStoragePoolInstDeletion The 3PAR CIM Server currently supports indication subscriptions for deletion of DynamicStoragePool. Clients must send the following query string to the HP 3PAR CIM Server: SELECT * FROM CIM_InstDeletion WHERE SourceInstance ISA CIM_StoragePool TPD_DynamicStoragePoolInstModification The 3PAR CIM Server currently supports indication subscriptions for changes in the RemainingManagedSpace of DynamicStoragePool.
Or they can send any of the following to choose the specific indication(s) they want to receive: SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT * * * * * * * * * * * * FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM TPD_StoragePoolGrowWarningAlert TPD_StoragePoolGrowLimitAlert TPD_StoragePoolGrowFailureAlert TPD_StoragePoolOverUsedWarningAlert TPD_StorageVolumeAllocationFailureAlert TPD_StorageVolumeAllocationWarningAlert TPD_StorageVolumeAllocationLimitA
Property Type Description Value convey information from one point to another. 3 - Quality of Service Alert. An Indication of this type is principally associated with a degradation or errors in the performance or function of an entity. 4 - Processing Error. An Indication of this type is principally associated with a software or processing fault. 5 - Device Alert. An Indication of this type is principally associated with an equipment or hardware fault. 6 - Environmental Alert.
Property Type Description Message string The formatted message. This message is Alert description string, e.g., “Cage 0 constructed by applying the dynamic content Degraded (Firmware CPU Old)” of the message, described in MessageArguments, to the format string uniquely identified, within the scope of the OwningEntity, by MessageID. SystemCreation string The scoping System's CreationClassName for the Provider generating this indication.
Property Value SystemCreationClassName “TPD_StorageSystem” ProviderName “TPD_IndicationProvider” EventID Message code will be in hex format, e.g., “0x01e00de”.
6 CIM-API Extensions Health Management The CIM Server provides the ability to retrieve health information about the physical devices that comprise the HP 3PAR Storage System.
Properties for TPD_NodeSystem Table 123 TPD_NodeSystem Properties Property Description Position The position of the controller node in the storage system (i.e., node number). ElementName User friendly-name of the controller node. OperationalStatus Overall status of the controller node. Refer to SMI-S for possible values of this property. OtherOperationalStatus 3PAR-specific operational status for the NodeSystem.
Supported Methods Table 128 Supported Methods for TPD_StorageSystem Method Description modifyInstance() Provides the ability to set owner and contact information for the StorageSystem. UML Diagram Figure 12 controller node Subsystem Disk Enclosure Subsystem The CIM Server provides the ability to manage the health of physical devices that comprise the backend Disk Enclosure portion of the storage system.
Properties for TPD_StorageSystem Table 130 TPD_StorageSystem Properties Property Description Name The node WWN for the storage system. ElementName User-friendly name of the storage system. OperationalStatus Overall status of the storage system. Refer to the SMI-S for possible values of this property. OtherOperationalStatus 3PAR-specific operational status for the StorageSystem.
Table 134 TPD_DiskDrive Properties (continued) Property Description Position The position of this disk drive in the drive magazine. ID ID assigned to this Disk Drive by the system. OperationalStatus Overall status of the disk drive. Refer to SMI-S for possible values of this property. OtherOperationalStatus 3PAR-specific operational status for the DiskDrive.
Table 136 Power and Cooling Key CIM Classes (continued) Class Description TPD_DriveCage Provides information about storage system drive cages. TPD_PowerSupply Provides information about power supplies for both controller nodes and disk cages. TPD_Battery Provides information about batteries attached to controller node power supplies. TPD_Fan Provides information about fans, including fans within each power supply and external fans connected to controller nodes.
Properties for TPD_PowerSupply Table 140 TPD_PowerSupply Properties Property Description Position The position of the PowerSupply in the storage system (such as the PS number). OperationalStatus Overall status of the PowerSupply. Please refer to SMI-S for possible values of this property. OtherOperationalStatus 3PAR-specific operational status for the PowerSupply. ACStatus Provides information about the AC status of a power supply.
UML Diagram Figure 14 Power and Cooling Inventory Management The CIM Server provides the ability to retrieve inventory information for controller nodes and all of the components that comprise the controller node Subsystem portion of the storage system. Controller Node Subsystem The CIM Server provides the ability to retrieve inventory information about the physical devices that comprise the storage system.
Table 144 Controller Node Subsystem CIM Key Classes (continued) Class Description TPD_PhysicalMemory Provides information about the physical memory contained within each controller node. TPD_IDEDrive Provides information about the onboard IDE drive contained within each controller node. Properties for TPD_StorageSystem Table 145 TPD_StorageSystem Properties Property Description Name The Node WWN for the storage system. ElementName User friendly-name of the storage system.
Table 149 TPD_PCICard Properties (continued) Property Description SerialNumber Serial number of the PCI Card. Revision The revision of the PCI Card. FirmwareVersion Revision of the firmware running on the card. Properties for TPD_NodeCPU Table 150 TPD_NodeCPU Properties Property Description Position The position/CPU number of this component. Manufacturer Manufacturer of the CPU. Model Model number for the CPU. SerialNumber Serial number for the CPU.
UML Diagram Figure 15 UML Diagram Disk Enclosure Subsystem The CIM Server provides the ability to retrieve inventory information for all of the components that comprise the backend Disk Enclosure portion of the storage system. Disk Enclosure Subsystem CIM Classes Table 154 Disk Enclosure Subsystem Key Classes Class Description TPD_StorageSystem The storage array. TPD_DriveCage Provides information about storage system drive cages.
Properties for TPD_DriveCage Table 156 TPD_DriveCage Properties Property Description Position The position of the drive cage in the storage system (such as the cage number). ElementName User-friendly name of the Drive Cage. Manufacturer Manufacturer of the Drive Cage. Model Model of the Drive Cage. SerialNumber Serial number of the Drive Cage.
Properties for TPD_DiskDrivePackage Table 160 TPD_DiskDrivePackage Properties Property Description Manufacturer Manufacturer of the DiskDrive. Model Model of the DiskDrive. SerialNumber Serial number of the DiskDrive. Properties for TPD_DiskSoftwareIdentity Table 161 TPD_DiskSoftwareIdentity Properties Property Description Manufacturer Manufacturer of the DiskDrive firmware. VersionString Version of the firmware running on the DiskDrive.
Power and Cooling CIM Classes Table 163 Power and Cooling CIM Key Classes Class Description TPD_StorageSystem The storage array. TPD_NodeSystem Provides information about the controller nodes that make up the storage system. TPD_DriveCage Provides information about storage system drive cages. TPD_PowerSupply Provides information about power supplies for both controller nodes and disk cages. TPD_Battery Provides information about batteries attached to controller node power supplies.
Properties for TPD_PowerSupply Table 167 TPD_PowerSupply Properties Property Description Position The position of the PowerSupply in the storage system (such as the PS number). Manufacturer Manufacturer of the PowerSupply. Model Model of the PowerSupply. SerialNumber Serial number of the PowerSupply. Properties for TPD_Battery Table 168 TPD_Battery Properties Property Description Position The position of the Battery in the storage system (such as the battery number).
UML Diagram Figure 17 UML Diagram Domain, User and Licenses Description The 3PAR CIM Server provides the ability to retrieve domain and privilege information about the user. This information can be broken down into the following areas: • Licenses • User Domains • User Privileges • Domains • Domain Sets These informations are available in TPD_StorageSystem class and TPD_StorageDomainGroup. CIM Classes The key classes are as follows: Class Description TPD_StorageSystem The Storage array.
Properties for TPD_StorageSystem Property Description Licenses Array of all the licenses enabled on the system. LicenseIssueDate Date on which the licenses were issued LicenseExpirationDate Date on which the licenses will expire. CurrentUserDomains Domains that the current user belongs to. If the user is not a domain user, value will show 'all'. CurrentUserPrivileges Privileges of the current user.
7 Support and Other Resources Contacting HP For worldwide technical support information, see the HP support website: http://www.hp.
For information about: See: Migrating data from one HP 3PAR storage system to another HP 3PAR-to-3PAR Storage Peer Motion Guide 174 Configuring the Secure Service Custodian server in order to monitor and control HP 3PAR storage systems HP 3PAR Secure Service Custodian Configuration Utility Reference Using the CLI to configure and manage HP 3PAR Remote Copy HP 3PAR Remote Copy Software User’s Guide Updating HP 3PAR operating systems HP 3PAR Upgrade Pre-Planning Guide Identifying storage system comp
For information about: See: Planning for HP 3PAR storage system setup Hardware specifications, installation considerations, power requirements, networking options, and cabling information for HP 3PAR storage systems HP 3PAR 7200, 7400, and 7450 storage systems HP 3PAR StoreServ 7000 Storage Site Planning Manual HP 3PAR StoreServ 7450 Storage Site Planning Manual HP 3PAR 10000 storage systems HP 3PAR StoreServ 10000 Storage Physical Planning Manual HP 3PAR StoreServ 10000 Storage Third-Party Rack Physic
Typographic conventions Table 171 Document conventions Convention Element Bold text • Keys that you press • Text you typed into a GUI element, such as a text box • GUI elements that you click or select, such as menu items, buttons, and so on Monospace text • File and directory names • System output • Code • Commands, their arguments, and argument values • Code variables • Command variables Bold monospace text • Commands you enter into a command line interface • Syst
8 Documentation feedback HP is committed to providing documentation that meets your needs. To help us improve the documentation, send any errors, suggestions, or comments to Documentation Feedback (docsfeedback@hp.com). Include the document title and part number, version number, or the URL when submitting your feedback.
A Managed Object Format Files This appendix provides the contents of the Managed Object Format (MOF) files for the HP 3PAR Storage System. These MOF files derive from the standard MOF files contained in CIM, version 2.23. Note: The InServ Storage Server has been rebranded as HP 3PAR Storage System. There are instances in this document where menu items and command output refer to the HP 3PAR Storage System as InServ or InServ Storage Server. For information regarding standard MOF files, refer to DMTF at www.
class TPD_SubProfileRequiresProfile : CIM_SubProfileRequiresProfile { [Override ( "Antecedent" ), Min ( 1 ), Description ( "The RegisteredProfile that is referenced/required by the " "subprofile.")] TPD_RegisteredProfile REF Antecedent; [Override ( "Dependent" ), Description ( "A RegisteredSubProfile that requires a scoping profile, for " "context.
TPD_ObjectManager REF Dependent; }; // ================================================================== // Namespace // ================================================================== [Description ( "Namespace provides a domain (in other words, a container), in " "which the instances [of a class] are guaranteed to be unique " "per the KEY qualifier definitions. It is named relative to the " "TPD_ObjectManager implementation that provides such a domain.
"class. The latter describes a possible encoding/protocol/ set " "of operations for accessing the referenced ObjectManager.")] class TPD_CommMechanismForManager : CIM_CommMechanismForManager { [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description ( "The HP 3PAR CIM server ObjectManager whose communication mechanism is " "described.
"The RegisterdProfile or RegisteredSubProfile.")] CIM_RegisteredProfile REF Dependent; }; 3PAR_TPD.mof //%//////////////////////////////////////////////////////////////////////// // // // Copyright 2011 HP 3PAR, Inc. All Rights Reserved. // This software is the property of HP 3PAR, Inc. Distribution // or deployment of the source or derived binaries of this // software are not permitted.
class TPD_DynamicStoragePool: SNIA_StoragePool { [Description ( "Type of disk drives that are in this pool. Not applicable " "to primordial pool."), ValueMap {"0", "1", "2", "4"}, Values {"Unknown", "FC", "Nearline", "SSD"} ] uint16 DiskDeviceType; [Description ( "The size of each allocation when the pool grows."), Units ( "Bytes" )] uint64 AllocationUnit; [Description ( "This is the nominal number of bytes allocated on disk for Snapshot " "data (SD) of this pool, not including RAID overhead.
"Describe the RAID type of the pool. This value makes it easy" " for traversing CapabilitiesOfStoragePool association."), ValueMap {"0", "10", "50", "60"}, Values {"RAID0", "RAID10", "RAID50", "RAID60"} ] uint16 RaidType; [Description ( "Issue warning alert when space allocation exceeds this amount." "A size of 0 means no warning limit is enforced. Default is 0."), Units( "Bytes" )] uint64 SnapDataSpaceWarningLimit = 0; [Description ( "Name of the administrative domain that this pool belongs " "to.
[Description ( "Describe the type of the volume."), ValueMap {"0", "1", "2", "3", "4"}, Values {"Unknown", "Base", "Physical Copy", "Virtual Copy", "Remote Copy"} ] uint16 VolumeType; [Description ( "Total number of logically contiguous blocks, of size Block " "Size, which form Raw Size Admin. The total size " "can be calculated by multiplying BlockSize by RawAdminBlocks.
"DisallowStaleSnapshot - When copy-on-write fails, don't write to r/w " " base so that r/o snapshots remain valid/consistent with r/w " " base. This means failures to update snapshot will be " " considered a failure to write to the base volume as well. " "AllowStaleSnapshot - When copy-on-write fails, allow write to r/w base " " to succeed, but snapshot becomes invalid or stale.
"Describes the preferred availability of the volume. " "This value might be different from CurrentAvailability."), ValueMap {"0", "8", "9", "10", "11", "12"}, Values {"Unknown", "Port", "Cage", "Magazine", "Disk", "Chunklet"} ] uint16 PreferredAvailability; [Description ( "Describes the current availability of the volume. " "This value might be different from PreferredAvailability.
"This is applicable only for a thin-provisioned volume.")] uint64 ProvisionedConsumableBlocks; [Description ( "Name of the administrative domain that this volume belongs " "to.\n")] String Domain; [Description ( "Number of chunklets in a set. " "For RAID 0 volume, this is always 1. " "For RAID 10 volume, this is equal to StorageSetting.DataRedundancy. " "Minimum value for RAID 10 volume is 2, maximum value is 4. " "For RAID 50 volume, this is also known as the parity " "set size.
" 0x00001000 - Removing" " 0x00000800 - Closing" " 0x00000400 - Tuning" " 0x00000200 - Copying" " 0x00000100 - Promoting"), BitMap { "20","17","16","14","13","12","11","10","9", "8" }, BitValues {"Importing", "Resyncing", "Removing Expired", "Copy Source", "Creating", "Removing", "Closing", "Tuning", "Copying", "Promoting"}] uint32 Activity; }; // ================================================================== // HP 3PAR HostedStoragePool // ===============================================================
{ [Override ( "Antecedent" ), Description ( "The concrete StoragePool." )] TPD_StoragePool REF Antecedent; [Override ( "Dependent" ), Description ( "The subsidiary DynamicStoragePool." )] TPD_DynamicStoragePool REF Dependent; }; #pragma include ("3PAR_TPDCopySvcs.
}; // ================================================================== // HP 3PAR VolumeAllocatedFromDynamicPool // ================================================================== [Association, Description ( "TPD_VolumeAllocatedFromDynamicPool is an association between " "StorageVolume and the DynamicStoragePool from which the " "the capacity of StorageVolume is allocated.
"value varies depending on the number of cages. " "This option has no meaning for RAID-0 volume.\n"), ValueMap { "8", "9", "10" }, Values { "Port", "Cage", "Magazine" }] uint16 HighAvailability; [Write, Description ( "Chunklet location preference. Allows chunklets to " "be placed physically close to other chunklets with " "the same location preference.\n" " First - attempt to use the lowest numbered\n" " available chunklets.\n" " Last - attempt to use the highest numbered\n" " available chunklets.
"UserSpaceLimit is the consumption limit for the allocated " "user space of the associated StorageVolumes. Please note " "that SpaceLimit refers to the consumption limit of the " "allocated space of a DynamicStoragePool or the snap space " "(DeltaReplicaStoragePool) of the associated StorageVolumes. " "Applicable only to thin provisioned volumes. " "If UserSpaceLimit = 0 (the default) then no limits are asserted " "on the amount of space consumed.
" 0x80000000 - DisallowStaleSnapshot" " 0x40000000 - AllowStaleSnapshot" " 0x20000000 - System" " 0x10000000 - NoSystem" " 0x02000000 - OneHost" " 0x01000000 - NoOneHost" " 0x00200000 - ZeroDetection" " 0x00100000 - NoZeroDetection" ), BitMap { "31","30","29","28","25","24","21","20" }, BitValues {"DisallowStaleSnapshot", "AllowStaleSnapshot", "System", "NoSystem", "OneHost", "NoOneHost", "ZeroDetection", "NoZeroDetection"} ] uint32 Policy; [Write, Description ( "Define the VV geometry sectors_per_track val
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] String DiskPrimPathNodes[]; [Write, Description ( "Specifies the PCI or PCIe slot, the list of PCI, PCIe slots or " "the range of PCI or PCIe slots the disks must have their " "primary path on.
"TPD_TopLevelStorageSetting.DiskIDs", "TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] String DiskPrimPathPorts[]; [Write, Description ( "Specifies the cage number, the list of cage numbers or " "the range of cage numbers the disks must be in.
"TPD_TopLevelStorageSetting.DiskIDs", "TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] String DiskMagazines[]; [Write, Description ( "Specifies the magazine position, the list of magazine positions or " "the range of magazine positions the disks must be in.
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] String DiskIDs[]; [Write, Description ( "The total number of chunklets in the disk must be " "greater than this value.
ArrayType ( "Indexed" ), ModelCorrespondence { "TPD_TopLevelStorageSetting.DiskPrimPathPCISlots", "TPD_TopLevelStorageSetting.DiskPrimPathPorts", "TPD_TopLevelStorageSetting.DiskPrimPathNodes", "TPD_TopLevelStorageSetting.DiskMagazines", "TPD_TopLevelStorageSetting.DiskMagPositions", "TPD_TopLevelStorageSetting.DiskIDs", "TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskCages", "TPD_TopLevelStorageSetting.
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskCages" }] String DiskPackageModels[]; [Write, Description ( "The disk must be of the specified RPM, which could either mean " "Revolution Per Minute in the case of FC or NL drives, or " "Relative Performance Metric in the case of SSD.\n"), ArrayType ( "Indexed" ), ModelCorrespondence { "TPD_TopLevelStorageSetting.DiskPrimPathPCISlots", "TPD_TopLevelStorageSetting.
"exceeds this amount." "A size of 0 means no warning limit is enforced. Default is 0." "Applicable only if TemplateType equals to 3, " "\"DynamicStoragePool\"."), Units( "Bytes" )] uint64 DSPSnapSpaceGrowWarning; [Write, Description ( "If true, properties that are not specified in the template " "will be treated as read-only and cannot be overridden " "by the properties in Goal parameter when invoking the " "TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method.
"can grow to. " "SpaceLimit = vol size * (1 + percent/100)" "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\".")] uint16 TemplateSnapSpaceAllocationLimit; [Write, Description ( "Percent of the volume size the user space of the volume " "can grow to. " "UserSpaceLimit = vol size * (1 + percent/100)" "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\", and only to thin provisioned " "volumes.
boolean TemplateSetSizeReadOnly; [Write, Description ( "If true, ExtentStripeLength value in this template is read-only " "and cannot be overriden by the corresponding property in " "the Goal parameter when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "If false, ExtentStripeLength value in this template can be " "overriden by the corresponding property in the Goal parameter " "when invoking the TPD_StorageConfigurationService.
"If true, Domain value in this template is read-only " "and cannot be overriden by the corresponding property in " "the Goal parameter when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "If false, Domain value in this template can be " "overriden by the corresponding property in the Goal parameter " "when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.
"when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.\n" "Applicable only if TemplateType equals to 1, \"Virtual Volumes\", " "and ChangeableType equals to 2, \"Changeable-Persistent\".
"overriden by the corresponding property in the Goal parameter " "when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.\n" "Applicable only if TemplateType equals to 1, \"Virtual Volumes\", " "or 3, \"Common Provisioning Groups\", and ChangeableType equals " "to 2, \"Changeable-Persistent\".
[Write, Description ( "If true, Policy value in this template is read-only " "and cannot be overriden by the corresponding property in " "the Goal parameter when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "If false, Policy value in this template can be " "overriden by the corresponding property in the Goal parameter " "when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.
"when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.\n" "Applicable only if TemplateType equals to 1, \"Virtual Volumes\", " "and ChangeableType equals to 2, \"Changeable-Persistent\".
[Override ( "SettingData" ), Description ( "The setting data used when volume is allocated")] TPD_VolumeSetting REF SettingData; }; // ================================================================== // HP 3PAR StorageConfigurationService // ================================================================== [Description ("The StorageConfigurationService provides methods that allow " "a client to create, modify and delete storage pools and " "volumes.
"references to CIM_StoragePool instances, that are used " "to create the Pool or modify the source pools.")] string InPools[], [IN, Description ( "Array of strings containing representations of " "references to CIM_StorageExtent instances, that are used " "to create the Pool or modify the source extents.")] string InExtents[], [IN, OUT, Description ( "As an input parameter: if null, creates a new " "StoragePool. If not null, modifies the referenced Pool.
[IN, Description ( "The requirements for the element to maintain. If set to " "a null value, the default configuration from the source " "pool will be used. This parameter should be a reference " "to a Setting or Profile appropriate to the element being " "created. If not NULL, this parameter will supply a new " "Goal when modifying an existing element.")] CIM_ManagedElement REF Goal, [IN, OUT, Description ( "As an input parameter Size specifies the desired size.
string ElementName, [IN, Description ( "Enumeration indicating the type of element being created " "or modified. If the input parameter TheElement is " "specified when the operation is a 'modify', this type " "value must match the type of that instance."), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "..", "32768..
" "parameter. If the requested size cannot be created, no " "action will be taken, and the Return Value will be " "4097/0x1001. Also, the output value of Size is set to the " "nearest possible size. If Size is not specified, then the " "Size property in Template is used. 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 create the element.
"This method allows for multiple volumes to be removed " "in one call. The freed space is returned to the source " "StoragePool. If 0 is returned, the function completed " "successfully." "Return code of Partial Success (32768) means that only " "some, but not all, of the StorageVolumes are successfully " "removed.
"A end user relevant name for the element being created. " "The value will be stored in the 'ElementName' " "property for the created element." "This parameter is required and cannot be NULL.")] string ElementName, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed).")] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage object which may be a StorageVolume " "or storage object.
[Association, Description ( "TPD_CapabilitiesOfStorageConfigurationService is an association " "between StorageConfigurationCapabilities or " "StorageReplicationCapabilities and StorageConfigurationService. " "This association is used to query the features and functions " "supported by StorageConfigurationService.") ] class TPD_CapabilitiesOfStorageConfigurationService: CIM_ElementCapabilities { [Override ( "ManagedElement" ), Description ( "The StorageConfigurationService.
{ [Description (" "), ValueMap {"0", "1", "2", "3", "4", "7", "8", "9", "10", "11", "12", "13"}, Values {"Config Wait", "Alpa Wait", "Login Wait", "OK", "Loss Sync", "Nonparticipate", "Core Dump", "Offline", "FW Dead", "Link Idle For Reset", "DHCP In Progress", "Pending Reset"} ] uint16 OtherOperationalStatus; [Description ("Topology of the port"), ValueMap {"0", "1", "2", "3", "4"}, Values {"Private loop", "Public loop", "Point to point", "Fabric", "Unknown"} ] uint16 Topology; [Description ("Daisy chain c
ValueMap {"0", "1", "2"}, Values {"Unknown", "Enable", "Disable"} ] uint16 InterruptCoalescing; }; // ================================================================== // HP 3PAR FC Port LESB Statistics // ================================================================== [Description ("HP 3PAR Storage System FC Port Link Error Statistic Block")] class TPD_FCPortLESBStatistics : CIM_FCPortStatistics { }; // ================================================================== // FC Port LESB Element Statistic
[Override ("Dependent"), Weak, Description ( "The FCPort controlled by the SCSI protocol controller.
{ [Override ("AvailableSAP"), Description ( "The SCSIProtocolEndpoint (front end port).") ] TPD_SCSIProtocolFCEndpoint REF AvailableSAP; [Override ("ManagedElement"), Description ( "The SCSI Protocol Controller (service).
"passed in, then the instrumentation attempts to add the new " "paths to the existing SPC. \n" "\n" "For creating an SPC, all parameters, except ProtocolControllers, " "MUST be specified since SPCAllowsNoLUs, SPCAllowsNoTargets and " "SPCAllowsNoInitiators properties are all false, and " "ClientSelectableDeviceNumbers property is true, for a HP 3PAR " "Storage System.
"instances exist, they MUST be used. Implicit creation " "of StorageHardwareID if no instance matches is " "NOT supported."), ModelCorrespondence { "CIM_StorageHardwareID.StorageID"}] string InitiatorPortIDs[], [IN, Description ( "IDs of target ports. See the method description for " "conditions where this MAY be null."), ModelCorrespondence { "CIM_SCSIProtocolEndpoint.
"Loop Initialization Primitive (LIP). For fabric " "configuration a VCN consists of Registered State Change " "Notification (RSCN) being sent to the fabric controller. " "This parameter is a vendor-specific extension for HP 3PAR. " "The default value is false.")] boolean NoVCN, [OUT, Description ( "An array of descriptive text of the result of the operation, " "with each entry containing the result of each " "expose path operation.
"A list of IDs of logical units. Each LU instance MUST " "already exist. See the method description for conditions " "where this MAY be null."), ModelCorrespondence { "CIM_LogicalDevice.Name"}] string LUNames[], [IN, Description ( "IDs of initiator ports. See the method description for " "conditions where this MAY be null."), ModelCorrespondence { "CIM_StorageHardwareID.StorageID" }] string InitiatorPortIDs[], [IN, Description ( "IDs of target ports.
"vluns are created via ExposePaths by setting InitiatorPortIDs to " "NULL.\n" "Expose a list of SCSI logical units (such as RAID volumes " "or tape drives) through a 'default view' " "SCSIProtocolController (SPC) through a list of target " "ports. The 'default view' SPC exposes logical units to all " "initiators. This SPC is identified by an association to a " "StorageHardwareID with Name property set to the empty " "string.
"Method Parameters Checked - Job Started", "Invalid logical unit ID", "Invalid target port ID", "Invalid permission", "Requested logical unit number in use", "Maximum Map Count Exceeded", "Method Reserved", "Vendor Specific" }] uint32 ExposeDefaultLUs ( [IN ( false ), OUT, Description ( "Reference to the job if 'Method Parameters Checked - Job " "Started' is returned (MAY be null if job completed).")] CIM_ConcreteJob REF Job, [Required, IN, Description ( "An array of IDs of logical unit instances.
CIM_SCSIProtocolController REF ProtocolControllers[], [IN, Description ( "Override existing lower priority VLUNs, if necessary. " "Can be used only when exporting to a specific host. " "This parameter is a vendor-specific extension for HP 3PAR. " "The default value is false.")] boolean Override, [IN, Description ( "Do not issue a VLUN (Virtual Logical Unit Number) Change " "Notification (VCN) after export.
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Invalid logical unit ID", "Invalid target port ID", "Maximum Map Count Error", "Method Reserved", "Vendor Specific" }] uint32 HideDefaultLUs ( [IN ( false ), OUT, Description ( "Reference to the job if 'Method Parameters Checked - Job " "Started' is returned (MAY be null if job completed).")] CIM_ConcreteJob REF Job, [Required, IN, Description ( "A list of IDs of logical units.
[Description ( "Expose a list of SCSI logical units (such as RAID volumes " "or tape drives) to a list of StorageHardwareIDCollections " "(host names), through a list of target ports if specified. " "If target port ids are not specified, the logical units " "will be visible to all InitiatorPortIDs that are member " "of the StorageHardwareIDCollections (host see vluns).
"number) \n" "The instrumentation MUST report an error if the client " "request would violate one of these rules. \n" "\n" "If the instrumentation provides PrivilegeManagementService, " "the results of setting DeviceAccesses MUST be synchronized " "with PrivilegeManagementService as described in the " "ProtocolControllerForUnit DeviceAccess description."), ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", "4097", "4098", "4099", "4100", "4101", "4102", "4103..32767", "32768..
"elements specified in the other parameters. Setting this " "to 'No Access' assigns the DeviceNumber for all " "initiators, but does not grant read or write access. If " "the LUNames parameter is not null then this parameter " "MUST be specified."), ValueMap { "0", "2", "3", "4", "5..15999", "16000.." }, Values { "Unknown", "Read Write", "Read-Only", "No Access", "DMTF Reserved", "Vendor Reserved" }, ModelCorrespondence { "CIM_ProtocolControllerForUnit.
"of LUNames. DeviceNumbers MUST be null (the provider will " "hide all LU's in LUNames on the SPC) or have the same number " "of elements as LUNames. If these conditions are not met, " "the instrumentation MUST return a 'Invalid Parameter' " "status or a CIM_Error. \n" "\n" "When hiding logical units, HP 3PAR Storage System supports only " "the Remove LUs from a view use case. " "Remove LUs from a view requires that the " "LUNames parameter not be null.
"This parameter is a vendor-specific extension for HP 3PAR. " "The default value is false.")] boolean NoVCN, [OUT, Description ( "An array of descriptive text of the result of the operation, " "with each entry containing the result of the " "hide default LU operation.
// ================================================================== // HP 3PAR Storage System and Storage Volume association // ================================================================== [Association, Aggregation, Composition, Description ( "HP 3PAR Storage System and Storage Volume Association ") ] class TPD_SystemVolume : CIM_SystemDevice { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description ("The storage system.
[Association, Description ( "HP 3PAR Storage System and System Package Association.") ] class TPD_ComputerSystemPackage : CIM_ComputerSystemPackage { [Override ("Antecedent"), Description ("The HP 3PAR Storage System physical package.") ] TPD_SystemPackage REF Antecedent; [Override ("Dependent"), Description ( "The HP 3PAR Storage System.
[Description ( "Warning threshold for generating an indication for " "SpaceConsumed. Value of zero means no warning generated. " "Triggered when " " SpaceConsumed >= (SpaceLimit*SpaceLimitWarningThreshold)/100." " MinValue = 0, MaxValue = 100 " "This is 0 for both concrete pool and DynamicStoragePool.
// =================================================================== [Association, Description ( "This association define StorageSettings that reflect the " "capabilities of the associated StorageCapabilities. The " "associated StorageSetting may not define the operational " "characteristics (through settings properties) of any storage " "element.
// ================================================================== // StorageHardwareID // ================================================================== [Description ( "StorageHardwareID represents the host HBA.")] class TPD_StorageHardwareID : CIM_StorageHardwareID { [Description ( "IP Address for this HBA.
"AuthorizedPrivileges to SCSIProtocolController resources.")] class TPD_PrivilegeForSCSIController : CIM_AuthorizedTarget { [Override ( "Privilege" ), Description ( "The AuthorizedPrivilege affecting the SCSIProtocolController " "resource.")] TPD_AuthorizedPrivilege REF Privilege; [Override ( "TargetElement" ), Description ( "The SCSIProtocolController resources to which the " "AuthorizedPrivilege applies.
TPD_StorageHardwareIDCollection REF Collection; [Key, Description ( "The aggregated member of the " "MemberOfStorageHardwareIDCollection.
CIM_SystemSpecificCollection REF Collection ); [Description ( "Sets the initiator and/or target CHAP authentication information " "on the host as specified in Collection."), ValueMap { "0", "4", "5", "0x1000" }, Values { "Success", "Failed", "Invalid Parameter", "Non-existent Collection" }] uint32 SetISCSICHAP( [IN, Description ( "The initiator CHAP name. If this value is not " "specified, then the CHAP name defaults to the " "host name. Applicable only if InitiatorSecret is set.
ValueMap { "1", "2" }, Values { "Target", "Both Target and Initiator" }] Uint16 RemovalScope, [IN, Description ( "Reference to the iSCSI StorageHardwareIDCollection.
// ================================================================== [Description ( "HP 3PAR PrivilegeManagementService is responsible for creating, " "deleting, and associating AuthorizedPrivilege instances. " "References to 'subject' and 'target' define the entities that " "are associated with an AuthorizedPrivilege instance via the " "relationships, AuthorizedSubject and AuthorizedTarget, " "respectively.
"The HP 3PAR Storage System.")] TPD_StorageSystem REF Antecedent; [Override ( "Dependent" ), Weak, Description ( "The ControllerConfigurationService hosted on the HP 3PAR Storage System.")] TPD_ControllerConfigurationService REF Dependent; }; // ================================================================== // HP 3PAR SFP // ================================================================== [Description ( "HP 3PAR SFP for Node FC ports.
sint16 VoltLowAlarm; [Description ("High voltage warning threshold")] sint16 VoltHighWarn; [Description ("Low voltage warning threshold")] sint16 VoltLowWarn; [Description ("High transmit bias alarm threshold")] uint16 BiasHighAlarm; [Description ("Low transmit bias alarm threshold")] uint16 BiasLowAlarm; [Description ("High transmit bias warning threshold")] uint16 BiasHighWarn; [Description ("Low transmit bias warning threshold")] uint16 BiasLowWarn; [Description ("High transmit power alarm threshold")] u
[Description ("Current receive power")] uint16 RxPower; [Description ("Receive power units")] string RxPowerUnit; [Description ("System name")] string SystemName; [Description ("Caption")] string Caption; [Description ("Element name")] string ElementName; }; // ================================================================== // HP 3PAR Port SFP // ================================================================== [Association, Description ( "A relationship between FCPort and it's SFP.
[Override ("SettingData"), Description ( "The StorageClientSettingData.")] TPD_StorageClientSettingData REF SettingData; }; // ================================================================== // HP 3PAR HardwareIDElementSettingData // ================================================================== [Association, Description ( "TPD_HardwareIDElementSettingData is an association between " "StorageHardwareID and StorageClientSettingData.
TPD_StorageSystem REF Antecedent; [Override ( "Dependent" ), Description ( "The group of domain in the context of the StorageSystem.
// // Copyright 2011 HP 3PAR, Inc. All Rights Reserved. // This software is the property of HP 3PAR, Inc. Distribution // or deployment of the source or derived binaries of this // software are not permitted. // // //%//////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // // File : HP 3PAR_TPDCage.mof // // Purpose : This MOF contains HP 3PAR Cage classes that will be loaded // into root/tpd namespace.
[Description ("HP 3PAR assembly revision number."), Read] string AssemblyRevision; [Description ("HP 3PAR check sum."), Read] string Checksum; }; // ================================================================== // DC1 TPD Drive Cage // ================================================================== [Description ( "DC1 HP 3PAR Drive Cage")] class TPD_DriveCageDC1Family : TPD_DriveCage { [Description ("Is Left side of the cage."), Read ] boolean IsLeftSide; [Description ("Is Right side of the cage.
class TPD_DriveCageDC2Family : TPD_DriveCage { [Description ("Firmware version on the midplane CPU."), Read ] string FirmwareVersion; [Description ("Status of the firmware on the midplane CPU."), Read, ValueMap {"0", "1", "2"}, Values {"Unknown", "Not Current", "Current"} ] uint16 FirmwareStatus; [Description ("State of midplane CPU.
" represents Loop A0, array index 1 represents" " Loop A1, etc.") ] uint64 LoopAPortWWNs[]; [Description ("WWN of the Loop B ports in Interface Card. " represents Loop B0, array index 1 represents" " Loop B1, etc.") ] uint64 LoopBPortWWNs[]; Array index 0" [Description ("WWN of the Node FC Port connected to A Loop(s). " represents Loop A0, array index 1 represents" " Loop A1, etc.") ] uint64 NodePortsLoopA[]; [Description ("WWN of the Node FC Port connected to B Loops.
] uint16 SplitLED; [Description ("System LED status."), ValueMap {"0", "1", "2", "3", "4", "5"}, Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"} ] uint16 SystemLED; [Description ("Hot-plug LED status."), ValueMap {"0", "1", "2", "3", "4", "5"}, Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"} ] uint16 HotplugLED; [Description ("State of Interface Card CPU.
"Check LoopPosition to see if Cage Interface instance for A or B.")] class TPD_CageInterfaceCardDC3Family : TPD_CageInterfaceCard { [Description ("If master set to TRUE.") ] boolean IsMaster; [Description ("Loop A link speed. Array index 0" " represents Loop A0, array index 1 represents" " Loop A1, etc.
"Unrecoverable", "Not Installed", "Not Available"} ] uint16 ESHState; [Description ("Extended State of Interface Card ESH.
[Description ("Shows if the locate is ON." " Array index 0 is Loop A0, array index 1 is Loop A1.") ] boolean LoopALocateON[]; [Description ("Shows if the locate is ON." " Array index 0 is Loop B0, array index 1 is Loop B1.
[Description ("State of Interface Card IFC.
uint16 SystemLED; [Description ("Hot-plug LED status.
[Description ("Sensor state."), ValueMap {"0", "1", "2"}, Values {"OK", "Under Limit", "Over Limit"} ] uint16 State; }; // ================================================================== // TPD DriveCage Sensor // ================================================================== [Association, Description ( "Many Devices include Sensors or have Sensors installed nearby, " "in order to measure critical input and output properties. This " "association indicates that relationship.
[Description ( "Describe the RAID type of the volume that is associated to this " "pool."), ValueMap {"0", "10", "50", "60"}, Values {"RAID0", "RAID10", "RAID50", "RAID60"} ] uint16 RaidType; }; // ================================================================== // HP 3PAR ReplicaPoolForStorage // ================================================================== [Association, Description ( "Association between TPD_DeltaReplicaStoragePool and " "the source TPD_StorageVolume.
[Override ( "SyncedElement" ), Description ( "SyncedElement represents the Volume that is the target of " "the replication.")] TPD_StorageVolume REF SyncedElement; }; 3PAR_TPDDisk.mof //%//////////////////////////////////////////////////////////////////////// // // // Copyright 2011 HP 3PAR, Inc. All Rights Reserved. // This software is the property of HP 3PAR, Inc. Distribution // or deployment of the source or derived binaries of this // software are not permitted.
[Description ("If Drive can be used to allocate LD.") ] boolean IsLDAllocateable; [Description ("State of Disk on Loop A.
uint32 ChunksNormalUsedOK; [Description ("Number of Normal Used Fail chunks.") ] uint32 ChunksNormalUsedFail; [Description ("Number of Normal Unused Free chunks.") ] uint32 ChunksNormalUnusedFree; [Description ("Number of Normal Unused Uninitialized chunks.") ] uint32 ChunksNormalUnusedUninit; [Description ("Number of Normal Unused Fail chunks.") ] uint32 ChunksNormalUnusedFail; [Description ("Number of Spare Used OK chunks.") ] uint32 ChunksSpareUsedOK; [Description ("Number of Spare Used Fail chunks.
boolean IsESI; [Description ("ESI State of Disk."), ValueMap {"0", "1", "2", "3"}, Values {"Unknown", "Not Present", "OK", "Failed"} ] uint16 ESIState; [Description ("Disk RPM - revolutions per minute in unit of K. " "This property is null if SSD.") ] uint32 DiskSpeed; [Description ("Disk media types as Spinning disks, multi-level cell (MLC)" " SSD or single-level cell (SLC) SSD.
"The storage extent accessed using the Disk Drive.")] TPD_DiskStorageExtent REF Dependent; }; // ================================================================== // HP 3PAR DiskDrive Software Identity // ================================================================== [Description ( "HP 3PAR Disk Drive Software Identity")] class TPD_DiskSoftwareIdentity : CIM_SoftwareIdentity { [Description ("Status of the firmware on the disk drive.
"The DiskDrive that is a component of a StorageSystem.")] TPD_DiskDrive REF PartComponent; }; // ================================================================== // StoragePoolComponent // ================================================================== [Association, Aggregation, Description ( "TPD_StoragePoolComponent is an association used to " "establish 'part of' relationships between StoragePool and " "Disk StorageExtent.
// TPD_DiskStorageExtent REF LogicalUnit; //}; // ================================================================== // TPD_DiskStorageExtent and TPD_StorageSystem association // ================================================================== [Association, Aggregation, Composition, Description ( "The SystemExtent association represents a relationship between " "a TPD_DiskStorageExtent and TPD_StorageSystem.
// HP 3PAR NodeSystem // ================================================================== [Description ( "HP 3PAR Controller Node ")] class TPD_NodeSystem : CIM_ComputerSystem { [Description ("Position of the Node.") ] uint16 Position; [Description ("If this node is Master, set to TRUE.") ] boolean IsMaster; [Description ("If this node is Online, set to TRUE.") ] boolean IsOnline; [Description ("If this node is in Cluster, set to TRUE.") ] boolean IsInCluster; [Description ("Major part of kernel version.
// ================================================================== // HP 3PAR NodePackage // ================================================================== [Description ( "HP 3PAR Controller Node Package for Vendor, Model, and Serial Number")] class TPD_NodePackage : CIM_PhysicalPackage { [Description ("HP 3PAR saleable serial number."), Read] string SaleableSerialNumber; [Description ("HP 3PAR saleable product number."), Read] string SaleableProductNumber; [Description ("HP 3PAR spare part number.
class TPD_NodePairRedundancySet : CIM_RedundancySet { }; // ================================================================== // HP 3PAR NodeMemberOfSet // ================================================================== [Association, Aggregation, Description ( "TPD_NodeMemberOfSet is an aggregation used to establish " "membership of TPD_NodeSystem in a TPD_NodeRedundancySet.
"StorageSystem associated to the NodePairRedundancySet")] TPD_StorageSystem REF SystemElement; [Override ( "SameElement" ), Description ( "NodePairRedundancySet for a StorageSystem.")] TPD_NodePairRedundancySet REF SameElement; }; // =================================================================== // NodePairComponentCS // =================================================================== [Association, Aggregation, Composition, Description ( "A ComputerSystem can aggregate another ComputerSystem.
// ================================================================== // ProcessorForNode // ================================================================== [Association, Aggregation, Composition, Description ( "NodeCPU aggregated by a NodeSystem.")] class TPD_ProcessorForNode : CIM_SystemDevice { [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ), Description ( "The parent Node in the Association.
[Aggregate, Override ( "GroupComponent" ), Max ( 1 ), Description ( "The NodePackage that contains PhysicalMemory(s).")] TPD_NodePackage REF GroupComponent; [Override ( "PartComponent" ), Description ( "The PhysicalMemory which is contained in the NodePackage.
}; // ================================================================== // HP 3PAR Node Package and PCI or PCIe Card association // ================================================================== [Association, Aggregation, Description ( "HP 3PAR Node Package and PCI or PCIe Card association")] class TPD_PCICardInNode : CIM_Container { [Aggregate, Override ( "GroupComponent" ), Max ( 1 ), Description ( "The Node Package that contains PCI or PCIe cards")] TPD_NodePackage REF GroupComponent; [Override ( "P
[Association, Aggregation, Composition, Description ( "HP 3PAR Node System and SCSI Controller Association ") ] class TPD_SystemController : CIM_SystemDevice { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description("The HP 3PAR Storage System or node controller that associates with " "the SCSI Protocol controller.")] CIM_ComputerSystem REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The SCSI controller on the node system.
// ================================================================== [Description ( "Capabilities and management of the HP 3PAR PowerSupply.")] class TPD_PowerSupply : CIM_PowerSupply { [Description ("Manufacturer name of the PS.") ] string Manufacturer; [Description ("Model type for PS.") ] string Model; [Description ("Serial number of the PS.") ] string SerialNumber; [Description ("Position of the PS.") ] uint16 Position; [Description ("State of the AC for the power supply.
"Blue", "Blue Blinking"} ] uint16 ServiceLED; }; // ================================================================== // CagePSDependency // ================================================================== [Association, Description ( "A PowerSupply is installed in a DriveCage, not for a specific Device, but " "to function with the DriveCage in general. This relationship is " "described by the TPD_CagePSDependency association.
"their own cooling devices. This association indicates where " "fans or other CoolingDevices are specific to a Device, versus " "providing enclosure or cabinet cooling.")] class TPD_PowerSupplyCooling : CIM_AssociatedCooling { [Override ( "Antecedent" ), Description ( "The Fan.")] TPD_Fan REF Antecedent; [Override ( "Dependent" ), Description ( "The PowerSupply being cooled.
boolean TestInProgress; [Description ("HP 3PAR specific operational state for the Battery"), ValueMap {"0", "1", "2"}, Values {"Unknown", "OK", "Error"} ] uint16 OtherOperationalStatus; [Description ("Service LED status. Only available on V-class systems.
// ================================================================== [Association, Description ( "A PowerSupply is installed in a NodePackage, not for a specific " "Device, but to function with the NodePackage in general. This " "relationship is described by the TPD_NodePkgPSDependency " "association.")] class TPD_NodePkgPSDependency : CIM_PackageDependency { [Override ( "Antecedent" ), Description ( "The PowerSupply for the NodePackage.
[Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ), Description ( "The parent system in the Association. Could be either " "StorageSystem or NodeSystem.")] CIM_ComputerSystem REF GroupComponent; [Override ( "PartComponent" ), Weak, Description ( "The Fan that is a component of a ComputerSystem.
{ }; [Indication, Description ( "Indication specifying that a Storage Volume has been deleted.") ] class TPD_StorageVolumeInstDeletion : CIM_InstDeletion { }; [Indication, Description ( "Indication specifying that a Storage Volume has been modified.") ] class TPD_StorageVolumeInstModification : CIM_InstModification { }; [Indication, Description ( "Indication specifying that the operational status of an FC " "port has changed.
class TPD_StoragePoolOverUsedWarningAlert : CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a storage pool has reached its " "allocation warning threshold.") ] class TPD_StoragePoolGrowWarningAlert : CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a storage pool has reached its " "allocation limit.
] class TPD_DeltaReplicaStoragePoolGrowWarningAlert: CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a delta replica storage pool " "has reached its allocation limit threshold.") ] class TPD_DeltaReplicaStoragePoolGrowLimitAlert: CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a delta replica storage pool " "has failed to grow.
// // Copyright 2007 3PAR, Inc. All Rights Reserved. // This software is the property of 3PAR, Inc. Distribution // or deployment of the source or derived binaries of this // software are not permitted. // // //%//////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////// // // // File : 3PAR_TPDLocation.mof // // Purpose : This MOF contains 3PAR Location classes that will be loaded // into root/tpd namespace.
// File : HP 3PAR_TPDEthPort.mof // // Purpose : This MOF contains HP 3PAR Ethernet Port classes that will be loaded // into root/tpd namespace. // // Date created: 8/10/2005 // /////////////////////////////////////////////////////////////////////////// // =================================================================== // HP 3PAR EthernetPort // =================================================================== [Description ( "Capabilities and management of an EthernetPort.
TPD_NodeSystem REF Antecedent; [Override ( "Dependent" ), Weak, Description ( "The IPProtocolEndpoint representing ethernet port " "on the system.
"The HP 3PAR node controller that hosted the protocol endpoint.")] TPD_NodeSystem REF Antecedent; [Override ( "Dependent" ), Weak, Description ( "The TCPProtocolEndpoint representing ethernet port " "on the system.
"The iSCSI Node represents a single iSCSI Target. " "There are one or more iSCSI Nodes within a Network " "Entity. The iSCSI Node is accessible via one or more " "Network Portals. An iSCSI Node is identified by its iSCSI " "Name.
TPD_EthernetPort REF Antecedent; [Override ( "Dependent" ), Description ( "The iSCSI Protocol Endpoint implemented using the Ethernet Port.
// ================================================================== [Association, Description ( "HP 3PAR iSCSI protocol controller and storage volume " "association. ")] class TPD_iSCSIControllerForUnit : CIM_ProtocolControllerForUnit { [Override ("Antecedent"), Description ("The iSCSI Protocol Controller.") ] TPD_iSCSIController REF Antecedent; [Override ("Dependent"), Weak, Description ( "The storage volume controlled by the iSCSI protocol controller.
// HP 3PAR iSCSISessionSystemSetting // ================================================================== [Association, Description ( "ElementSettingData represents the association between " "ManagedElements and applicable setting data. This association " "also describes whether this is a default or current setting.")] class TPD_iSCSISessionSystemSetting : CIM_ElementSettingData { [Override ( "ManagedElement" ), Description ( "The managed element.
// ================================================================== // HP 3PAR iSCSISession // ================================================================== [Description ( "iSCSISession is a network pipe between an initiator and target " "SCSIProtocolEndpoints. An iSCSISession is composed of one or " "more TCP connections which MUST be selected from a " "SystemSpecificCollection representing an iSCSI Portal Group.
"The pipe which is dependent on the endpoints as the source " "or sink of the transferred information.")] TPD_iSCSIConnection REF Dependent; }; // ================================================================== // HP 3PAR iSCSIPipeComposition // ================================================================== [Association, Aggregation, Composition, Description ( "NetworkPipeComposition describes the makeup a pipe, based on " "lower-level ones. If the pipe is not composed of lower-level " "entities (i.
"instance of ComputerSystem that represents the Network Entity. " "These capability properties are associated to a Network " "Entity/ComputerSystem since they affect all login negotiations " "on all iSCSI ProtocolEndpoints aggregated to the system.
CIM_ComputerSystem REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The iSCSI Controller or iSCSI Node.") ] CIM_SCSIProtocolController REF PartComponent; }; // ================================================================== // HP 3PAR iSCSISessionFailures // ================================================================== [Description ( "Failure Statistics for Sessions associated with a iSCSI Node.
"cardinality of the ManagedElement reference is Min(1), Max(1). " "This cardinality mandates the instantiation of the " "ElementStatisticalData association for the referenced instance " "of CIM_StatisticalData. ElementStatisticalData describes the " "existence requirements and context for the " "CIM_StatisticalData, relative to a specific ManagedElement.
string SourceElementName; [Description ( "Target element that was affected by this job. For example, " "if this is a job to create a physical copy, then this " "will contain the ElementName of the replica StorageVolume. " "Another example is if this is a job to promote virtual " "copy, then this will contain the ElementName of the " "base StorageVolume to which the replica StorageVolume " "is copied."), ModelCorrespondence { "TPD_StorageVolume.
// ================================================================== // HP 3PAR AssociatedJobMethodResult // ================================================================== [Association, Description ( "AssociatedJobMethodResult represents an association between a " "ConcreteJob and the MethodResult expressing the parameters for " "the Job when the job was created by side-effect of the " "execution of an extrinsic method.
"storage or a group of source storage objects " "(SourceElements). Note that using the input parameter, " "SyncType, this function can be used to instantiate the " "replicas, and to create an ongoing association between " "the source(s) and replicas. If 0 is returned, the " "function completed successfully and no ConcreteJob " "instance is created. If 4096/0x1000 is returned, a " "ConcreteJob is started, a reference to which is returned " "in the Job output parameter.
"CIM_ReplicationService.CreateGroupReplica.SourceGroup", "CIM_ReplicationService.CreateGroupReplica.SourceElement" }] CIM_ServiceAccessPoint REF SourceAccessPoint, [IN, OUT, Description ( "Optionally, as an input, refers to a target group " "to use. As an output, refers to the created target " "group (i.e., the replica group). If a job is " "created, the target group may not be available " "immediately. If TargetGroup is supplied, " "TargetElementCount shall be NULL.
"The underlying storage for the target elements " "(the replicas) will be drawn from TargetPool if " "specified, otherwise the allocation is " "implementation specific. If target elements are " "supplied, this parameter shall be NULL." )] CIM_ResourcePool REF TargetPool, [IN, Description ( "Method must wait until this CopyState is reached " "before returning. Only a subset of valid " "CopyStates apply. For example, Initialized: " "Associations have been established, but there is " "no data flow.
"updated synchronously or asynchronously. If NULL, " "implementaton decides the mode." ), ValueMap { "2", "3", "..", "0x8000.." }, Values { "Synchronous", "Asynchronous", "DMTF Reserved", "Vendor Specific" }, ModelCorrespondence { "CIM_Synchronized.Mode" }] uint16 Mode, [Required, IN, Description ( "A list of source storage objects which may be " "StorageVolumes or other storage objects. All the " "source elements shall be of the same type -- for " "example, all StorageVolumes.
"association is actually formed." )] CIM_Synchronized REF Synchronization, [IN ( false ), OUT, Description ( "Reference to the created associations between the " "source and the target elements. If a job is " "created, this parameter may be NULL unless the " "associations are actually formed." )] CIM_Synchronized REF Synchronizations[], [IN, Description ( "The definition for the SettingData to be " "maintained by the target storage objects (the " "replicas).
string ElementNames[], [Required, IN, Description ( "SyncType describes the type of copy that will be " "made. The same SyncType applies to all elements in " "the list." ), ValueMap { "..", "6", "7", "8", "..", "0x8000.." }, Values { "DMTF Reserved", "Mirror", "Snapshot", "Clone", "DMTF Reserved", "Vendor Specific" }, ModelCorrespondence { "SNIA_Synchronized.SyncType" }] uint16 SyncType, [IN, Description ( "Mode describes whether the target elements will be " "updated synchronously or asynchronously.
CIM_ConcreteJob REF Job, [IN ( false ), OUT, Description ( "Reference to the list of jobs (may be NULL if jobs are completed)." )] CIM_ConcreteJob REF Jobs[], [IN ( false ), OUT, Description ( "Reference to the created associations between the " "source and the target elements. If a job is " "created, this parameter may be NULL unless the " "associations are actually formed.
uint32 TPD_CreateGroupReplica( [IN, Description ( "Depricated. " "Use CreateGroupReplica, CreateGroupReplicaFromElements, " "or CreateListReplica instead. " "A user relevant name for the relationship between " "the source and target groups or between a source " "element and a target group (i.e. one-to-many). If " "NULL, the implementation assigns a name. If the " "individual target elements require an ElementName, " "the implementation constructs an appropriate " "ElementName using the RelationshipName.
"Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 TPD_ModifyGroupReplicaSynchronization( [Required, IN, Description ( "Operation describes the type of modification to be " "made to the ReplicationGroup and/or to the related " "associations. \n" "Abort: Abort the copy operation if it is possible. " "Activate Consistency: if consistency was not " "requested when CreateGroupReplica was called.
"example, stop I/O to source elements, wait for " "in-transit copy operations between source and " "target elements to stop, then instantly split " "source/target groups/elements. Suspend: Stop the " "background copy previously started. \n" "Unprepare: Causes the synchronization to be " "reinitialized." ), ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "..", "0x8000..
"replicas (virtual copy). This and TargetElements cannot both " "be specified.")] String TargetNames[], [IN, OUT, Description ( "Array of references to target volumes, matched with " "with SourceElements. As an input, this parameter is valid only " "for Snapshot/Async or Clone/Async replicas (physical " "copy), and this and TargetNames cannot both be specified. " "As an output, this contains the references to created StorageVolumes " "valid only for Snapshot/Synchronous replicas (virtual copy).
TPD_ReplicationService REF ManagedElement; [Override ( "Capabilities" ), Description ( "The configuration capabilities that the " "ReplicationService can support. ")] TPD_ReplicationServiceCapabilities REF Capabilities; }; // ================================================================== // HP 3PAR Replication Group // ================================================================== [Description ( "This class represents a collection of storage objects, such as " "a group of StorageVolumes.
"between ReplicationService and ReplicationGroup " "This provider is used to query the association " "between affecting and affected sets.") ] class TPD_ReplicationAffectsElement : CIM_ServiceAffectsElement { [Override ( "AffectingElement" ), Key, Description ("The ReplicationService.")] TPD_ReplicationService REF AffectingElement; [Override ( "AffectedElement" ), Key, Description ( "The ReplicationGroup that the ReplicationService " "may affect.
" If a synchronization of a periodic Remote Copy group takes " longer to complete than its synchronization period then an " alert will be generated. This is the default behavior. " " no_over_per_alert " " If a synchronization of a periodic Remote Copy group takes " longer to complete than its synchronization period then an " alert will not be generated.
[Description ( "True if role of the SystemElement and SyncedElement has been switched " "due to a fail over.")] boolean RoleReversed; [Description ( "Specifies that groups that are in asynchronous periodic mode should " "be periodically synchronized in accordance with the specified value " "of the replication. 0 means synchronization will not happen unless " "it is done manually.
Key, Description ( "The RemoteReplicationGroup that the ReplicationService " "may affect.")] TPD_RemoteReplicationGroup REF AffectedElement; }; // ================================================================== // TPD_HostedRemoteReplicationGroup // ================================================================== [Association, Description ( "HostedCollection defines a RemoteReplicationGroup in the " "context of StorageSystem.
"The RemoteReplicationGroup for which the SAP is available." )] TPD_RemoteReplicationGroup REF ManagedElement; }; // ================================================================== // TPD_ReplicationEntity // ================================================================== [Description ( "This class represents a replication entity, such as an entity " "known by its World Wide Name (WWN).
Key, Description ( "The RemoteReplicationCollection that the ReplicationService " "may affect.")] TPD_RemoteReplicationCollection REF AffectedElement; }; // ================================================================== // TPD_HostedRemoteReplicationCollection // ================================================================== [Association, Description ( "HostedCollection defines a RemoteReplicationCollection in the " "context of StorageSystem.
// Hosted Statistics Collection // ================================================================== [Association, Description ( "HostedCollection defines a SystemSpecificCollection in the " "context of a scoping System. It represents a Collection that " "has meaning only in the context of a System, a Collection " "whose elements are restricted by the definition of the System, " "or both of these types of Collections.
"membership of ManagedElements in a Collection.")] class TPD_MemberOfBlockStatisticsManifestCollection : CIM_MemberOfCollection { [Key, Aggregate, Description ( "The Collection that aggregates members.")] TPD_BlockStatisticsManifestCollection REF Collection; [Key, Description ( "The aggregated member of the Collection.
"ElementStatisticalData association for the referenced instance " "of CIM_StatisticalData. ElementStatisticalData describes the " "existence requirements and context for the " "CIM_StatisticalData, relative to a specific ManagedElement.")] class TPD_ArrayElementStatisticalData : CIM_ElementStatisticalData { [Key, Min ( 1 ), Max ( 1 ), Description ( "The ManagedElement for which statistical or metric data is " "defined.
"Number of pages being currently written by the flusher to disk.")] uint32 WritingCachePages; [Description ( "Number of pages waiting for delayed copy on write resolution.")] uint32 PendingDelayedCopyOnWriteCachePages; [Description ( "Number of pages currently being processed for delayed copy " "on write resolution.")] uint32 ProcessingDelayedCopyOnWriteCachePages; [Description ( "Current number of dirty cluster memory pages in the system " "for the 10k RPM FC disk type.
"throttle the host's IO writes due to cache resource constraints " "for the NL disk type.")] uint32 NLDelayedAck; [Description ( "Number of delayed acknowledgements to the host in order to " "throttle the host's IO writes due to cache resource constraints " "for the SSD disk type.")] uint32 SSDDelayedAck; [Description ( "The user time since system start time, using ClockTickInterval " "units, for all the CPUs on the node.
[Description ( "Statistical data for the Disk Drive")] class TPD_DiskStatisticalData : CIM_BlockStorageStatisticalData { [Description ( "The service time since system start time, using ClockTickInterval " "units, for the Read I/Os." ), Counter] uint64 ReadServiceTimeCounter; [Description ( "The service time since system start time, using ClockTickInterval " "units, for the Write I/Os.
// ================================================================== // Port Element Statistical Data // ================================================================== [Association, Description ( "An association that relates a " "ManagedElement to its StatisticalData. Note that the " "cardinality of the ManagedElement reference is Min(1), Max(1). " "This cardinality mandates the instantiation of the " "ElementStatisticalData association for the referenced instance " "of CIM_StatisticalData.
// ================================================================== // Storage Volume Element Statistical Data // ================================================================== [Association, Description ( "An association that relates a " "ManagedElement to its StatisticalData. Note that the " "cardinality of the ManagedElement reference is Min(1), Max(1). " "This cardinality mandates the instantiation of the " "ElementStatisticalData association for the referenced instance " "of CIM_StatisticalData.
// ================================================================== [Association, Description ( "ElementCapabilities represents the association between " "ManagedElements and their Capabilities. Note that the " "cardinality of the ManagedElement reference is Min(1), Max(1). " "This cardinality mandates the instantiation of the " "ElementCapabilities association for the referenced instance of " "Capabilities.
Values {"Config Wait", "Alpa Wait", "Login Wait", "OK", "Loss Sync", "Nonparticipate", "Core Dump", "Offline", "FW Dead", "Link Idle For Reset", "DHCP In Progress", "Pending Reset"} ] uint16 OtherOperationalStatus; [Description ("Topology of the port"), ValueMap {"0", "1", "2", "3", "4"}, Values {"Private loop", "Public loop", "Point to point", "Fabric", "Unknown"} ] uint16 Topology; [Description ("Daisy chain configuration of the port"), ValueMap {"0", "1", "2"}, Values {"Unknown", "Valid", "Invalid"} ] ui
// ================================================================== [Description ("HP 3PAR SASPortStatistics. This holds port I/O statistics.")] class TPD_SASPortStatistics : SNIA_LogicalPortStatistics { }; // ================================================================== // HP 3PAR SASProtocolEndpoint // ================================================================== [Description ("HP 3PAR SASProtocolEndpoint. " "This class represent SAS ports that are connecting to " "disk.
Description ( "HP 3PAR Node System and FC Port Association ") ] class TPD_SystemSASPHY : CIM_SystemDevice { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description("The node controller that hosted the SAS port to " "which the SAS PHY belongs.")] TPD_NodeSystem REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The SAS PHY of a SAS port.
"on the system.")] TPD_SASProtocolEndpoint REF Dependent; }; // ================================================================== // SASPort Element Statistical Data // ================================================================== [Association, Description ( "An association between SASPort and SASPortStatistics.")] class TPD_SASPortElementStatisticalData : CIM_ElementStatisticalData { [Key, Min ( 1 ), Max ( 1 ), Description ( "The ManagedElement for which statistical or metric data is " "defined.