HP 3PAR InForm OS 3.1.1 CIM API Programming Reference 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–, 2012 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...................................................................................................9 About SMI-S............................................................................................................................9 About the WBEM Initiative.........................................................................................................9 2 Security...................................................................................................10 TCP Ports.
Supported Method For Creating a Storage Volume............................................................29 Method Signature.....................................................................................................29 Creating Data and Snapshot Space from Two Storage Pools...............................................31 Method Signature for CreateOrModifyElementFromStoragePools....................................31 CreateSetting....................................................................
Physical Copy...................................................................................................................58 StorageSynchronized.....................................................................................................58 StorageReplicationCapabilities........................................................................................59 Job Control Subprofile Indications...................................................................................64 Virtual Copy.....
iSCSIPrococolEndpoint.......................................................................................................88 ControllerForUnit................................................................................................................88 iSCSIControllerForUnit........................................................................................................89 StorageClientSettingData....................................................................................................
6 CIM-API Extensions.................................................................................129 Health Management.............................................................................................................129 Controller Node Subsystem...............................................................................................129 controller node Subsystem CIM Classes..........................................................................129 Properties for TPD_StorageSystem......
UML Diagram.............................................................................................................141 Power and Cooling..........................................................................................................141 Power and Cooling CIM Classes...................................................................................142 Properties for TPD_StorageSystem..................................................................................
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 CAUTION: The CIM API is not part of the evaluated Common Criteria storage system configuration and should not be used when operating in Common Criteria mode. 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 Required Permission Level 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.
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.1 Patches: None Component Name CLI Server ... CIM Server Version 3.1.1 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. The payload of the client request is XML. For information about XML coding for CIM, refer to Representation of CIM in XML. CIM Namespaces CIM namespaces are logical groupings of CIM classes and CIM instances that represent managed objects in a particular environment.
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 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. For detailed information, refer to: www.snia.
Supported Array Subprofiles Table 9 Supported Array Subprofiles Subprofile Version Purpose Location 1.1.0 Provides information about the physical location of a disk storage system. Multiple Computer System 1.1.0 Provides information about the multiple computer systems (controller nodes) that cooperate to present a virtual computer system (cluster). Software 1.1.0 Provides information on installed controller software. Masking and Mapping 1.1.0 Provides management of LUNs. FC Target Ports 1.1.
Supported SMI-S Levels by Release Table 11 Supported SMI-S Levels by Release InForm 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.
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. The Server Profile defines the capabilities of the CIM Server.
UML Diagram For the Server Profile Instance Diagram, refer to the SMI-S, v1.4 at http://www.snia.org. Registered Version The RegisteredVersion property of the different RegisteredProfile/RegisteredSubprofile instances have different values; these values are the same as those published in the Registered Name and Version subclause of the profiles in SMI-S 1.4. 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 (continued) Properties Description RegisteredVersion 1.4.0 (version of the SMI-S the provider conforms to) AdvertiseTypes 2 (Not Advertised) Array Profile The Array profile models the physical and logical aspects of disk storage systems. The basic Array profile provides a high level, read-only view of a storage system.
Table 18 Block Services Package CIM Classes (continued) Class Description TPD_StorageConfigurationCapabilities Provides information about what storage configuration functionality is provided by StorageConfigurationService. TPD_StorageConfigurationService Allows clients to configure Storage Volumes. TPD_DynamicStoragePool Storage Pool representing a Common Provisioning Group (CPG).
1. Fixed StorageSetting for creating Legacy Fully Provisioned Volume. There are four of these, one for each RAID type, and each is associated to 3PAR:Capabilities:RAIDxStorageCapabilities. Their InstanceIDs are 3PAR:StorageSetting:RAIDx. A client can use StorageSetting to create a legacy, fully provisioned virtual volume. Most Logical Disk (LD) and virtual volume-specific properties are populated. 2. Fixed StorageSetting for creating DynamicStoragePool.
8. Persistent StorageSetting/Template. StorageSetting (templates) that are stored in Persistent Repository. The TemplateType and TemplateForVolumeType properties of the StorageSetting restrict what kind of element creation this setting can be applied to. This Setting has a StorageSettingGeneratedFromCapabilities association to the appropriate "3PAR:Capabilities:RAIDx" Capabilities according to the RAID type of the StorageSetting.The default is RAID10.
Table 23 Relevant Properties of StorageSetting (continued) Properties Description Uint64 Warning alert is issued if snap space of a CPG exceeds DSPSnapSpaceGrowWarning. 0 means no warning limit is enforced. This value is in bytes. Applies to DynamicStoragePool only. DSPSnapSpaceGrowWarning Uint16 Describes how the elements are used. For example, if a new TP StorageVolume is used for snap shot, this value is 7. The default value is 0 (“not specialized”).
Table 24 Matrix of Populated Properties for Different Types of StorageSetting (continued) Properties Default Values for Each StorageSetting Type SpaceLimitWarningThreshold NULL 0 NULL NULL 0 0 UserSpaceLimit NULL NULL NULL NULL NULL NULL UserSpaceLimitWarningThreshold NULL NULL NULL NULL NULL NULL UserSpaceAllocationWarning NULL NULL NULL NULL NULL NULL SnapSpaceAllocationWarning NULL NULL NULL NULL NULL NULL LowSpaceWarningThreshold NULL 0 NULL NULL NULL NULL DSPSnapS
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 (continued) 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 DeltaReplicaStoragePool SupportedSynchronousActions NULL Storage Pool Creation (2), Storage Pool Deletion (3), Storage Pool Modification (4). Storage Element Creation NULL (5), Storage Element Return (6), Storage Element Modification (7).
"ThinlyProvisionedQuotaStoragePool", "ThinlyProvisionedLimitlessStoragePool"}, ValueMap{"2","3","4","5","6","7","8","9"}] Uint16 ElementType, [Out] CIM_ConcreteJob ref Job, [In] CIM_StorageSetting ref Goal, [In, Out] Uint64 Size, [In] CIM_StoragePool ref InPool, [In, Out] CIM_LogicalElement ref TheElement); • ElementName: The name of the volume to be created or expanded. • ElementType: This enumeration specifies what type of object to create.
Table 30 Return Values for CreateOrModifyElementFromStoragePool() (continued) ValueMap Values 5 Invalid Parameter 4097 Size Not Supported Explanation/Notes A volume with the specified size cannot be created or grown.
described in the corresponding Goals array. For TPVV or CPVV, the array size may be two, even if both its user and snap space are drawn from the same DSP. For a fully-provisioned volume or a TPVV that is not a CPVV, the array size must be one, corresponding to only the user space. InPools cannot contain anything other than DynamicStoragePool. • Goal: This contains object path of StorageSetting, describing quality of service the new StorageVolume must provide.
• SettingType (in): If Default (2) is passed, the Max, Goal, and Min setting attributes are set to the Default values of the parent StorageCapabilities option when the instance is created. If they are set to Goal (3), the new StorageSetting attributes are set to the related attributes of the parent StorageCapabilities options, such as Min to Min, Goal to Default, and Max to Max. • NewSetting (out): Reference to a new StorageSetting instance based on the parent StorageCapabilities.
3. 4. Call the CreateOrModifyElementFromStoragePool method with the reference to the TPD_StorageSetting from step 1 or 2 as the Goal parameter. • To create a legacy volume with FC drives, use a reference to the FC StoragePool as the InPool parameter. • To create a legacy volume with SSDs, use reference to SSD StoragePool as the InPool parameter. • To create a legacy volume with NL drives, use a reference to the NL StoragePool as the InPool parameter.
Table 36 Disk Pattern CIM Properties Disk Pattern CIM Property Name (from TPD_StorageSetting class) CIM Property Type CLI Equivalent Format DiskPrimPathNodes String array -nd - DiskPrimPathPCISlots String array -st
- DiskPrimPathPorts String array -pt
- DiskCages String array -cg
- DiskMagazines String array -mg
- DiskMagPositions String array -pn
- DiskIDs String array -dk
- DiskTotalChunkletGT Signed Integer array -tc_gt an integer Dis
Table 37 Volumes Created Based on Parameters to CreateOrModifyElementFromStoragePool() (continued) Type of Volume Created CreateOrModifyElementFromStoragePool TPD_CreateOrModifyElementFromStoragePools Goal.DSPName cannot be set. Goal, if present, contains all the LD parameters (e.g., set size, row size, etc.). Legacy CPVV, where user space 1. ElementType == NULL or Not supported. draws from “3PAR:all-FC” (default), StorageVolume (2). “3PAR:all-NL”, or “3PAR:all-SSD” 2. InPool == NULL or concrete pool.
Table 37 Volumes Created Based on Parameters to CreateOrModifyElementFromStoragePool() (continued) Type of Volume Created CreateOrModifyElementFromStoragePool TPD_CreateOrModifyElementFromStoragePools Thinly provisioned volume, where user 1. ElementType = 1. ElementType = space draws from DSP. ThinlyProvisionedStorageVolume(5) ThinlyProvisionedStorageVolume (5). 2. InPool = DSP. 2. InPool = DSP. 3. . Goal == NULL or DSPName property not set. If it is present, all 3. Goal can be NULL.
Table 38 Summary of Modifiable StorageSetting Properties for StorageVolume (continued) StorageSetting Property CLI Equivalence Comment ExpirationTime -exp Time when the volume expires. (In CLI, the value is the delta, whereas here it is the actual date and time.) RetentionTime -retain Time when the volume retention ends. (In CLI, the value is the delta, whereas here it is the actual date and time.
RemainingManagedSpace of the parent DSP. This size is also represented in TPD_AllocatedFromStoragePool.SpaceConsumed between the DSP and the storage volume or delta replica storage pool. For a DynamicStoragePool, the formula used in capacity calculation is different from that of a concrete pool (3PAR:all-FC, 3PAR:all-NL or 3PAR:all-SSD). TotalManagedSpace is the actual allocated size to the pool and is not involved in the calculation anymore.
Before Volume Creation Now the total raw capacity of the all-FC concrete pool is 813896302592 bytes (776192 MB). The Overhead/Metadata used in the creation of the concrete pool (for example, TOC) can be inferred by the difference between this value and TPD_AllocatedFromStoragePool.SpaceConsumed between the primordial and concrete pools. Because at this point there are no volumes in the array, the capacity that is free for creating volume is the same as the total raw capacity of the concrete pool.
allocated to the volume, since RAID overhead is now accounted for in DynamicStoragePool. The capacity used for the metadata in the creation of the storage volume can be calculated by: [(TPD_StorageVolume.NumberOfRawBlocks TPD_StorageVolume.NumberOfBlocks)* TPD_StorageVolume.BlockSize]. TPD_StorageVolume.ConsumableBlocks is set to be the same as TPD_StorageVolume.NumberOfBlocks. Example: • Initial State A dynamic storage pool has a virtual capacity of 100GB (as set in the –sdgl option).
TPD_StorageVolume.ConsumableBlocks is set to be the same as TPD_StorageVolume.NumberOfBlocks. Example: • Initial State A dynamic storage pool has a virtual capacity of 100GB (as set in the –sdgl option). This value is reflected in TPD_DynamicStoragePool.SpaceLimit property and is what is available for volume allocation. Let us assume that there are no volumes or DeltaReplicaStoragePool allocated from this pool initially. The TotalManagedSpace property reflects the actual capacity allocated to the pool.
Table 39 Properties Relevant to TPVV (continued) Properties Description by multiplying BlockSize by NumberOfRawBlocks. If the BlockSize is 1, this property is the total size of the Extent. Uint64 ConsumableBlocks Uint64 ProvisionedConsumableBlocks Uint32 SnapAllocationLimit The logical size of the TPVV, in blocks, same as NumberOfBlocks. The number blocks that are currently allocated and visible to host.
1. Capacity Warning - This is an alert message indicating that the actual capacity of a volume or pool is nearing a limit (e.g., actual usage of containing pool is nearing SpaceLimit). The related standard message is "Thin provisioned with identifier capacity in use nearing available limit". The indications that fall into this category include: a. TPD_StoragePoolGrowWarningAlert - Indication specifying that a storage pool has reached its allocation warning threshold.
b. TPD_StoragePoolGrowFailureAlert - Indication specifying that a storage pool has failed to grow. • c. TPD_StorageVolumeAllocationFailureAlert - Indication specifying that a storage volume has failed to allocate more space. • d. Same as 2a, above TPD_DeltaReplicaStoragePoolGrowFailureAlert - Indication specifying that a delta replica storage pool has failed to grow. • 3.
Figure 1 Service and Capabilities Class Diagram Figure 2 Virtual Copy Class Diagram for a Legacy Volume 46 CIM API SMI-S Support
Figure 3 Physical Copy Class Diagram for a Legacy Volume Figure 4 Job Control Class Diagram TPD_AffectedJobElement Association between TPD_ConcreteJob and the replica TPD_StorageVolume. Refer to Section (page 48) 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_CapabilitiesOfStorageConfigurationService Association is added between TPD_StorageConfigurationService and each instance of TPD_StorageReplicationCapabilities. TPD_CapabilitiesOfStoragePool Association between TPD_DeltaReplicaStoragePool if it exists and the corresponding TPD_StorageCapabilities. TPD_ConcreteJob This is the class that describes the job itself. Refer to Section (page 48) for a more details.
1. SupportedAsynchronousActions[] – This property has been deprecated and replaced by StorageReplicationCapabilities.SupportedAsynchronousActions[], but SMI-S decrees that a provider must still specify the values here for backward compatibility with 1.0 clients. 1.1 clients ignore these values and consult those from TPD_StorageReplicationCapabilities instead. The following are added to the array: a.
TPD_StorageReplicationCapabilities This describes the replication capability of the CIM provider. There are three fixed instances of this class, one for each type of SupportedSynchronizationType that we support. Some of the major properties in this class are: 1. SupportedSynchronizationType – supported values are: a. UnSyncAssoc-Full - create a full size snapshot (physical copy with ‘Save snapshot for later resync’ option turned on). b. UnSyncAssoc-Delta - create a delta snapshot (virtual copy). c.
7. ReplicaHostAccessibility - Indicates host access restrictions for replicas with these capabilities. Valid values are: a. Not accessible – this applies to physical copy volumes, which cannot be exported. If a physical copy is promoted to a base volume, then this restriction is lifted. b. No restrictions – any host may access; this applies to virtual copy volumes. 8. HostAccessibleState[] - lists the replica synchronization states in which the provider allows host access to replicas.
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.
TPD_StorageSynchronized Association class that associates the replica with the source volume. It contains several important properties that describe the relationship between the source volume and the replica. 1. SyncMaintained – whether synchronization is maintained; false for both physical and virtual copy. 2. CopyType – the kind of association between source volume and replica; values are: a. Sync – create and maintain a synchronous mirror copy of the source, e.g., synchronized remote copy. b.
7. ProgressStatus - Status of association between source and target groups.
Goal StorageSetting If the SnapVolumeSize (-szs) or SnapVolumePercentage (-pct) properties are specified when creating a legacy volume, or if DSPName (-cpg) property is specified when creating a 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.
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 InformOS 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 2 instances of TPD_StorageReplicationCapabilities (see Section (page 50)): 1. UnSyncAssoc-Full – describes the capability of our provider to create an unsynchronized full-snapshot replica that maintains an association with the source volume. 2. UnSyncUnAssoc - describes the capability of our provider to create an independent clone of a volume.
AttachReplica is similar to AttachOrModifyReplica with the omission of the Goal and ReplicationPipe parameters.
CLI EQUIVALENCE createvvcopy –r SMI-S METHOD 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.
◦ Start Copy: Initiate a full background copy of the source to the UnSyncAssoc replica. Replica enters a Frozen state when the copy operation is completed. This performs the same function as issuing a createvvcopy again on an existing physical copy. ◦ Stop Copy: Stop the background copy previously started. This performs the same function as halting a physical copy. • Job: A Job is created as a side-effect of the execution of the method, and a reference to that Job is returned through this parameter.
Table 50 State Transitions for Physical Copy Promotion Operation SyncState Promote in progress Frozen (14) There are no corresponding SyncState in SMI-S for detaching, so SyncState remains in Frozen until operation is complete Promote complete N/A – StorageSynchronized gone Promote Failed Broken (12) START PHYSICAL COPY CLI EQUIVALENCE createvvcopy –p -s SMI-S METHOD Copy can be done on an existing physical copy using the TPD_StorageConfigurationService.
Table 52 State Transitions for Halting a Physical Copy Operation SyncState WhenSynced Copy in progress ResyncInProgress (5) or CopyInProgress (15) Previous sync time Halt Copy Complete N/A – StorageSynchronized gone Halt Copy Failed (This indicates that the halt has failed and the copy was allowed to finish.
Table 53 StorageSynchronized Property Values for a Virtual Copy (continued) Property Value Creates an unsynchronized copy and maintains an association to the source. ReplicaType “After Delta” (4) Indicates that the replica is maintained as delta data from the source object. SyncState Varies; refer to the various “SyncState Transitions” sections below for each type of operation. SyncMaintained False Synchronization is not maintained between replica and source volume.
• TargetPool: Reference to the StoragePool from which the virtual copy volume is allocated. This can either be NULL or the TPD_DeltaReplicaStoragePool associated with the SourceElement volume. Any other values results in a Invalid Parameter error. • CopyType: Can only be “UnsyncAssoc” (4) ◦ ◦ UnsyncAssoc: Creates an unsynchronized virtual copy that is associated to the source StorageVolume.
CLI EQUIVALENCE promotesv -halt SMI-S METHOD Virtual copy promote can be halted via the Job Control method TPD_ConcreteJob.RequestStateChange() method with the RequestedState parameter set to Terminate(4). STATE TRANSITIONS Here are the values for SyncState and WhenSynced during various stages of halting virtual copy promote.
The type of indication generated is TPD_ConcreteJobInstModification, sub-classed from CIM_InstModification. Job Control Overview Only the following tasks are supported: • Create physical copy • Resync physical copy • 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.
GetError() Method When the job is executing or has terminated without error, then this method returns no CIM_Error instance. However, if the job has failed because of some internal error, then a CIM_Error instance is returned. This method is only used to fetch the failure reason for jobs that failed on their own, i.e., not jobs that are canceled by the user.
This class is used to report the extrinsic method that triggered the job and the parameters passed to it, so that a third party client can tell what the job is and what it is doing. The class consists of the following mandatory properties: • InstanceID – this is a key and is identical to that of ConcreteJob this is associated with. • PrecallIndication – string representing an embedded instance of the CIM_InstMethodCall class, which contains the method called that triggered this job, (e.g.
Location Subprofile The Location subprofile models information about the location of a physical device. In the case of the Array profile, it is used to provide information about the physical location of a storage array. The information provided through this subprofile is the physical location of the HP 3PAR Storage System. For detailed information regarding the Location subprofile, refer to SMI-S at http:// www.snia.org.
Software Subprofile The Software subprofile models information on installed controller software, including version information, build numbers, and manufacturer identification. The information provided through this subprofile is specific for the version of the InForm OS installed on the TPD_ComputerSystem that represents the HP 3PAR Storage System. For detailed information regarding the Software subprofile, refer to SMI-S at http:// www.snia.org.
Table 65 Masking and Mapping Subprofile CIM Classes (continued) Class Description CIM_StorageHardwareIDManagementService Provides methods that allow a client to create, add/or delete hosts or host paths. TPD_ProtocolControllerMaskingCapabilities Defines the masking related capabilities of the HP 3PAR Storage System. TPD_StorageVolume The storage volume to be exported.
seen by particular initiators is called Device Mapping. In the HP 3PAR Storage System, storage volumes must be explicitly exported to be visible to hosts or they are not accessible to any host. A view is a list of logical units exposed through a list of target ports, modeled as SCSIProtocolController (SPC) with associated StorageVolume, StorageHardwareIDs (host WWN/iSCSIName), and SCSIProtocolEndPoints (port WWNs/iscsiNames).
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 75 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).
Figure 10 Relationships between StorageHardwareID, SCSIProtocolEndpoint and StorageVolume 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.
PrivilegeForStorageHardwareID PrivilegeForStorageHardwareID is subclassed from AuthorizedSubject and is an association between StorageHardwareID and the access permission (AuthorizedPrivilege) of the SPC that is exported to it.
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http:// www.snia.org. FC Target Ports Subprofile CIM Classes Table 79 FC Target Ports Subprofile CIM Classes Class Description TPD_StorageSystem The storage array on which the target ports reside. TPD_SCSIProtocolFCEndpoint A SCSI transport endpoint. In this context, this represents a target port on the HP 3PAR Storage System. TPD_FCPort A Fibre Channel Port residing on the TPD_ComputerSystem.
For detailed information regarding the FC Target Ports subprofile, refer to SMI-S at http:// www.snia.org. The CIM Server supports the Multiple Computer System subprofile as defined in SMI-S v1.1.0. This subprofile provides information about the controller nodes that comprise the storage system cluster. The cluster is modeled as multiple tiers with each tier representing a pair of controller nodes.
Disk Drive Lite Subprofile CIM Classes Table 84 Disk Drive Lite Subprofile Key CIM Classes Class Description TPD_StorageSystem The storage array on which the disk drives reside. TPD_DiskDrive Information about a specific disk drive residing in the TPD_StorageSystem. TPD_DiskDrivePackage Provides physical information about the disk drive such as Vendor, Model, Serial Number. TPD_DiskSoftwareIdentity Provides information about installed firmware for disk drives.
Table 86 Block Server Performance Subprofile Key CIM Classes (continued) Class Description TPD_ArrayStatisticalData An instance of statistics data for the entire array. TPD_NodeStatisticalData An instance of statistics data for a particular node controller.
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 88 Relevant Properties of ReplicationGroup Class (continued) Properties Value Description DeleteOnEmptyElement False If true and empty groups are allowed, the group will be deleted when the last element is removed from the group. If empty groups are not allowed, the group will be deleted automatically when the group becomes empty. HP supports empty set and thus this will always be false.
CreateGroup uint32 ReplicationService.CreateGroup( [IN] string GroupName, [IN] CIM_LogicalElement REF Members[], [IN] boolean Persistent, [IN] boolean DeleteOnEmptyElement, [IN] boolean DeleteOnUnassociated, [IN] CIM_ServiceAccessPoint REF ServiceAccessPoint, [OUT] SNIA_ReplicationGroup REF ReplicationGroup ); Use to create a new replication group. Any required associations (such as HostedCollection) are created in addition to the instance of the group. Creation of RemoteReplicationGroup is not supported.
Use to delete a replication group. All associations to the deleted group are also removed as part of the action. Parameters are: • ReplicationGroup: This is a reference to the group that the client wants to delete. • ServiceAccessPoint: NULL, which means the group is on the local system. • RemoveElements: The client can request to delete the group even if it is not empty.
[IN] CIM_ServiceAccessPoint REF SourceAccessPoint, [IN, OUT] CIM_LogicalElement REF TargetElement, [IN] CIM_ServiceAccessPoint REF TargetAccessPoint, [IN, EmbeddedInstance("SNIA_ReplicationSettingData")] string ReplicationSettingData, [OUT] CIM_ConcreteJob REF Job, [OUT] CIM_Synchronized REF Synchronization, [IN] CIM_SettingData REF TargetSettingGoal, [IN] CIM_ResourcePool REF TargetPool, [IN] uint16 WaitForCopyState); Use to create (or start a job to create) a new storage object which is a replica of the
Table 90 Parameter Matrix for CreateElementReplica (continued) ElementName: Optional (applicable only if Optional (if NULL, a name will be TargetElement is not supplied; if NULL, auto-generated) a name will be auto-generated) SourceElement: Mandatory Mandatory TargetElement: Optional (if NULL, the target volume will be created) NULL Output Job? Y N WaitForCopyState: Synchronized – an independent clone If non-NULL, then only 'Synchronized' will be created.
• TargetGroup: ◦ 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. • TargetElementCount: This parameter applies to one-source-to-many-target elements. If TargetGroup is supplied, this parameter shall be NULL. For us this is always NULL.
Parameters are: • Jobs: a list of jobs as a result of physical copy of vv set • Synchronizations: a list of StorageSynchronized between each of the members of the source and target vv set TPD_CreateConsistentReplicaList uint32 ReplicationService.
Table 92 Parameter Matrix for CreateConsistentReplicaList (continued) Output Job? Y Y N WaitForCopyState Inactive – the clones will retain association with the parent Synchronized – independent If non-NULL, then only clones will be created Synchronized is supported ModifyReplicaSynchronization uint32 ReplicationService.
Table 93 Parameter Matrix for ModifyReplicaSynchronization Operation ReplicationService Method Resync physical copy ModifyReplicaSynchrnonization • Operation = Resync Replica (14) Promote physical copy ModifyReplicaSynchrnonization • Operation = Dissolve (9) Halt physical copy ModifyReplicaSynchrnonization • Operation = Abort (2) Promote sv ModifyReplicaSynchrnonization • Operation = Restore from Replica (15) Delete the copy ModifyReplicaSynchrnonization • Operation = Return to Resource Pool (19)
• 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. GetAvailableTargetElements uint32 ReplicationService.
• 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. Choices are: Local only -Source and target elements are contained in the same system; and Remote only -- Source and target elements are contained in two different systems. • CopyState: Only retrieve synchronization relationships that currently has this CopyState.
Operation CLI Command Which Method to Use (in ReplicationService class, unless specified otherwise) Resync physical copy vv createvvcopy -r ModifyReplicaSynchronization Resync physical copy vvset createvvcopy -r set: TPD_ModifyGroupReplicaSynchronization Halt physical copy of vv createvvcopy -halt ModifyReplicaSynchronization Halt physical copy of vvset createvvcopy -halt set: TPD_ModifyGroupReplicaSynchronization Output Job(s)? Y • Operation = Resync Replica (14
ReplicationServicesCapabilities This class defines all of the capability properties for the replication services. Table 94 Relevant Properties of ReplicationServiceCapabilities Properties Value Description SupportedReplicationTypes Synchronous Mirror Remote (4), Enumeration indicating the supported SyncType/Mode/ Local-or-Remote combinations.
The majority of the methods in this class acceptReplicationType which represents a combination of SyncType, Mode, and Local/Remote. This method accepts the supplied information and returns the corresponding ReplicationType, which can be passed to other methods to get the additional capabilities. The following tables show the values for the CovertSyncTypeToReplicationType parameters, which appear in the value maps in the appropriate MOF files.
Table 97 SupportedFeatures for ReplicationType (continued) ReplicationType Synchronous Mirror Remote (4) Features Description Synchronized clone target detaches automatically (18) The clone target element detaches automatically when the target element becomes synchronized; otherwise, the client needs to explicitly request a detach operation.
Table 98 SupportedGroupFeatures for ReplicationType (continued) ReplicationType Synchronous Mirror Remote (4) Features Description Synchronized clone target detaches automatically (16) The clone target group detaches automatically when the target group becomes synchronized; otherwise, the client needs to explicitly request a detach operation.
Table 99 SupportedCopyStates for ReplicationType (continued) ReplicationType CopyStates HostAccessible Unsynchronized True Suspended True Broken True Inactive True FailedOver True Skewed True Description This method will return Not Supported (2) error code for any other ReplicationType not listed in the table above. GetSupportedGroupCopyStates uint32 ReplicationServiceCapabilities.
Table 101 Possible SupportedCopyStates for Various ReplicationType/MethodName Method Name ReplicationType CreateElement Replica Create (2) GroupReplica (3) ModifyReplicaSynchronization ModifyList (4) Synchronization (5) Synchronous Clone Local (10) Synchronized (4) Synchronized (4) Synchronized (4) NULL Inactive (8) Inactive (8) Synchronized (4) Synchronized (4) Synchronous Snapshot Synchronized (4) Local (6) Synchronized (4) This method will return Not Supported (2) error code for any other Re
Since remote replication implementation is read-only, no group operations are supported. SupportedOperations for either ReplicationType of Synchronous Mirror Remote (4) or Asynchronous Mirror Remote (5) will be an empty array. This method will return “Not Supported” (2) error code for any other ReplicationType. GetSupportedListOperations uint32 ReplicationServiceCapabilities.
by the availability of resources on the computer system. If the information is not known, the method returns 7, which indicates, Information is not available. If ReplicationType parameter contains an unsupported value, an error of Not Supported (2) shall be returned.
GetSupportedReplicationSettingData [Description ( "This method, for a given ReplicationType and a supplied " "property, returns an array of supported settings that " "can be utilized in an instance of the " "ReplicationSettingData class." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x8000..
Table 104 Possible SupportedValues forVarious ReplicationType/PropertyName ReplicationType PropertyName Asynchronous Mirror Remote (5) Synchronous Mirror Remote (4) Synchronous Clone Local (10) Synchronous Snapshot Local (6) ConsistentPointInTime (2) True (3) True (3) True (3) True (3) DesiredCopyMethodology Delta-Update (8) (3) Difference based Control what copy replication where methodology the initially the source service should use.
Table 104 Possible SupportedValues forVarious ReplicationType/PropertyName (continued) ReplicationType PropertyName Asynchronous Mirror Remote (5) Synchronous Mirror Remote (4) Synchronous Clone Local (10) Synchronous Snapshot Local (6) Use Existing (1) Create New (2) Create New (2) error, unless one-to-many replication is supported and there is only one source and more than one target.
Table 105 Relevant Properties of RemoteStorageSynchronized Properties Description SystemElement Source volume; SystemElement and SyncedElement will switch if the role is reversed. SyncedElement Target volume; SystemElement and SyncedElement will switch if the role is reversed. WhenSynced When remote copy group is last synced. This property is NULL for synchronous mode. SyncMaintained CopyState describes the state of the association with respect to Replication activity.
Table 105 Relevant Properties of RemoteStorageSynchronized (continued) Properties Description CopyType CopyType describes the Replication Policy. Possible values are: • Async (2) • Sync (3) ReplicaType ReplicaType provides information on how the Replica is being maintained. For remote replication, this can only be “Full Copy (2)”, which indicates that a full copy of the source object is (or will be) generated.
Table below shows the values of CopyState, SyncState and ProgressStatus for various CLI SyncStatus of the volumes under normal environment. “Normal” means that the CLI Target Status field shows “ready”.
Table 107 CopyState/SyncState/ProgressStatus Transitions During Disaster Recovery (continued) Sequence of Events Showrcopy Group Info Role/SyncStatus CopyState SyncState ProgressStatus setrcopygroup recover is issued on the secondary 3PAR array: State of Secondary Primary-Rev/Synced 3PAR array after setrcopygroup recover is done Synchronized Synchronized Completed State of Secondary Primary-Rev/Stopped 3PAR array if setrcopygroup recover fails FailedOver Broken Completed State of Primary 3PAR Se
as the SystemElement and those in the asynchronous periodic 3PAR array will be picked as SyncedElement. The reason for this is that if the primary 3PAR array goes down, by default the synchronous 3PAR array will assume the primary role. Under normal operation, this StorageSynchronized will have the following state/status values: • CopyState – Initialized (2), the link to enable replication is established and source/replica elements are associated, but the data flow has not started.
Table 109 Relevant Properties of TPD_RemoteReplicationGroup (continued) Property Description DeleteOnEmptyElement If true, group will be deleted when the last element is removed. This is always FALSE since an rcopy group can be empty. DeleteOnUnassociated If true, group will be deleted when the group is no longer associated with another group. This is always FALSE.
Table 110 Relevant Properties of RemoteStorageSynchronized (continued) Property Description • Resyncing (7) • Restoring (8) • Failing Over (11) • Failing Back (12) • Mixed (14) • Requires Activate (19) If any of the member volumes have different ProgressStatus, this property will be set to Mixed. 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.
TPD_ReplicationServiceAffectsRemoteReplicationGroup This is the association between ReplicationService and the RemoteReplicationGroup, sub-classed from CIM_ServiceAffectsElement. Property Description AffectingElement Reference to ReplicationService AffectedElement Reference to a RemoteReplicationGroup Please note that this association exists only for the RemoteReplicationGroup residing on the local array.
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.
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.
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 113 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 118 Supported Methods for TPD_StorageSystem Method Description modifyInstance() Provides the ability to set owner and contact information for the StorageSystem. UML Diagram Figure 11 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 120 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 124 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 126 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 130 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 13 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 134 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 135 TPD_StorageSystem Properties Property Description Name The Node WWN for the storage system. ElementName User friendly-name of the storage system.
Table 139 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 140 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 14 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 144 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 146 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 150 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 151 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 153 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 157 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 158 TPD_Battery Properties Property Description Position The position of the Battery in the storage system (such as the battery number).
UML Diagram Figure 16 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.
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.
[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.
// ================================================================== // 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.
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description ( "The 3PAR CIM server ObjectManager whose communication mechanism is " "described.")] TPD_ObjectManager REF Antecedent; [Override ( "Dependent" ), Min ( 1 ), Description ( "The encoding/protocol/set of operations that may be used to " "communicate with the referenced ObjectManager.
3PAR_TPD.mof //%//////////////////////////////////////////////////////////////////////// // // // 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_TPD.
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."), Units ( "Bytes" )] uint64 ConsumedSnapDataSpace; [Description ( "This is the actual number of bytes allocated on disk for Snapshot " "data (SD) space of this pool, including RAID overhead.
// ================================================================== // 3PAR StorageVolume // ================================================================== [Description ( "3PAR StorageVolume ")] class TPD_StorageVolume: SNIA_StorageVolume { [Description ( "Total number of logically contiguous blocks including overhead " "and metadata, of size Block Size, which form this Extent. " "The total size of the Extent can be calculated by multiplying " "BlockSize by NumberOfRawBlocks.
[Description ( "The number of blocks consumed by this virtual copy volume (snapshot) " "from the admin snapshot space of the parent base volume. " "This is applicable only if VolumeType is 'Virtual Copy'.")] uint64 UsedSnapshotAdminSpaceBlocks; [Description ( "The number of blocks consumed by this virtual copy volume (snapshot) " "from the data snapshot space of the parent base volume. " "This is applicable only if VolumeType is 'Virtual Copy'.
"Cache - enable caching for VV (default)." "NoCache - disable all caching for the VV plus read ahead." "ZeroDetect - Check If incoming data is zero. If so, reclaim the space." "NoZeroDetect - No need to check if incoming data is zero.
[Description ( "Type of disk drives that are used to create this volume."), ValueMap {"0", "1", "2", "4"}, Values {"Unknown", "FC", "Nearline", "SSD"} ] uint16 DiskDeviceType; [Description ( "Allocation warning. Generate a warning alert when SD space " "of the volume exceeds the specified percentage of the volume " "size."), Units ( "Percent" )] uint32 SnapSpaceAllocationWarning; [Description ( "Allocation limit.
"Number of chunklets in a set that contains data. " "Meaningful for RAID 60 volume only."), MinValue ( 3 ) ] uint16 SetData; [Description ("The time specifies when the volume will expire and " "can be deleted.") ] datetime ExpirationTime; [Description ("The time specifies the volume needs to be retained and " "can not remove until the retention time is expired.") ] datetime RetentionTime; [Description ( "Describes the provisioning for the volume.
class TPD_HostedStoragePool: CIM_HostedStoragePool { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description ("The parent system in the association.
"DeltaReplicaStoragePool and concrete StoragePool from which the " "the capacity of DeltaReplicaStoragePool is allocated.")] class TPD_DeltaReplicaPoolAllocatedFromConcretePool : TPD_AllocatedFromStoragePool { [Override ( "Antecedent" ), Description ( "The concrete StoragePool." )] TPD_StoragePool REF Antecedent; [Override ( "Dependent" ), Description ( "The subsidiary DeltaReplicaStoragePool.
Description ( "The DynamicStoragePool." )] TPD_DynamicStoragePool REF Antecedent; [Override ( "Dependent" ), Description ( "The subsidiary StorageVolume.
" available chunklets.\n" "The default value is First.\n"), ValueMap { "1", "2" }, Values { "First", "Last" }] uint16 ChunkletLocationPreference; [Write, Description ( "Size for the snap volume in bytes (maximum 1073741568). " "The default value is not set.\n" "If DSPName is specified, this value should be 0.\n" "Only one of SnapVolumePercentage and SnapVolumeSize " "can be set.
"an increasing amount of user space and the user space limit " "is enforced on the volume, then a non-zero warning threshold " "percentage indicates when a warning indication should be " "generated based on the total amount of space consumed being " ">= (UserSpaceLimit*UserSpaceLimitWarningThreshold)/100." "Please note that SpaceLimitWarningThreshold refers to " "the threshold of allocated space of a DynamicStoragePool or " "the snap space (DeltaReplicaStoragePool) of the associated " "StorageVolumes.
" 0x10000000 - NoSystem" " 0x08000000 - TPZeroFill" " 0x04000000 - TPNoZeroFill" " 0x02000000 - OneHost" " 0x01000000 - NoOneHost" " 0x00200000 - ZeroDetection" " 0x00100000 - NoZeroDetection" ), BitMap { "31","30","29","28","27","26","25","24","21","20" }, BitValues {"DisallowStaleSnapshot", "AllowStaleSnapshot", "System", "NoSystem", "TPZeroFill", "TPNoZeroFill", "OneHost", "NoOneHost", "ZeroDetection", "NoZeroDetection"} ] uint32 Policy; [Write, Description ( "Define the VV geometry sectors_per_track val
"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.\n" "Each element in this array represents one instance of " "pattern for candidate disks; multiple array element adds " "additional candidate disks that match the pattern.\n" "Empty string means that the value is not specified for " "this particular set of patterns.
" - nb is an integer\n" " , - a list of integers\n" " - - a range of integers\n" 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.
"TPD_TopLevelStorageSetting.DiskIDs", "TPD_TopLevelStorageSetting.DiskTotalChunkletGT", "TPD_TopLevelStorageSetting.DiskTotalChunkletLT", "TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT", "TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] String DiskMagPositions[]; [Write, Description ( "Specifies the ID, the list of IDs or the range of IDs " "the disks must have.
"additional candidate disks that match the pattern.\n" "A value of -1 means that the value is not specified for " "this particular set of patterns. All other negative integers " "are invalid.\n"), ArrayType ( "Indexed" ), ModelCorrespondence { "TPD_TopLevelStorageSetting.DiskPrimPathPCISlots", "TPD_TopLevelStorageSetting.DiskPrimPathPorts", "TPD_TopLevelStorageSetting.DiskPrimPathNodes", "TPD_TopLevelStorageSetting.DiskMagazines", "TPD_TopLevelStorageSetting.DiskMagPositions", "TPD_TopLevelStorageSetting.
"TPD_TopLevelStorageSetting.DiskRPM", "TPD_TopLevelStorageSetting.DiskPackageModels" }] sint32 DiskFreeChunkletLT[]; [Write, Description ( "Disks must have package models that match one of the " "specified list of models.\n" "Each element in this array represents one instance of " "pattern for candidate disks; multiple array element adds " "additional candidate disks that match the pattern.\n" "Empty string means that the value is not specified for " "this particular set of patterns.
" 7-8 128G "Applicable only if TemplateType equals to 3, " "\"DynamicStoragePool\"."), Units("Bytes")] uint64 AllocationUnit; 32G " [Write, Description ( "The max amount of disk space created on each auto-grow. If this value " "is non-zero it must be 8192 or bigger. " "Applicable only if TemplateType equals to 3, " "\"DynamicStoragePool\", and AllocationUnit is not equal " "to zero."), Units("Bytes")] uint64 AllocationUnitMax; [Write, Description ( "The min amount of disk space created on each auto-grow.
[Write, Description ( "Size of the volume in bytes. Used only as a template property." "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\".")] uint64 TemplateVolumeSize; [Write, Description ( "Device type of the volume. Either FC (Fibre-Channel) or NL " "(Nearline). Used only as a template property. " "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\".
"when invoking the TPD_StorageConfigurationService." "CreateStorageVolumeFromStoragePoolWithTemplate method." "Default is true.\n" "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\".
"If false, HighAvailability 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.\n" "Applicable only if ChangeableType equals to 2, " "\"Changeable-Persistent\".
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT", "TPD_TopLevelStorageSetting.DiskCages", "TPD_TopLevelStorageSetting.DiskPackageModels", "TPD_TopLevelStorageSetting.DiskFreeChunkletLT"}] boolean TemplatePatternReadOnly; [Write, Description ( "If true, SnapDSPName 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.
ModelCorrespondence { "SnapVolumeSize"}] boolean TemplateSnapVolumeSizeReadOnly; [Write, Description ( "If true, DeltaReservationGoal 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, TemplateSnapSpaceAllocationLimit or SpaceLimit 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.\n" "Applicable only if TemplateType equals to 1, \"Virtual Volumes\", " "and ChangeableType equals to 2, \"Changeable-Persistent\".
"overriden during the creation of DSP." "Default is true.\n" "Applicable only if TemplateType equals to 3, " "\"DynamicStoragePool\", and ChangeableType equals to 2, " "\"Changeable-Persistent\".
// 3PAR StorageSetting // ================================================================== [Description ( "3PAR StorageSetting.")] class TPD_StorageSetting : TPD_TopLevelStorageSetting { }; // ================================================================== // 3PAR StorageSetting // ================================================================== [Description ( "3PAR StorageSetting that describes the current setting of a StorageVolume.
"4097", "4098..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyStoragePool ( [IN, Description ( "A end user relevant name for the pool being created. If " "NULL, then a system supplied default name can be used.
"4097", "4098..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyElementFromStoragePool( [IN, Description ( "A end user relevant name for the element being created. " "If NULL, then a system supplied default name can be " "used.
"A 3PAR-specific method that can be used to create a " "thin-provisioned or full-provisioned volume from a " "TPD_DynamicStoragePool. " "To create a thin-provisioned volume, Goal.ThinlyProvisioned " "property must be set to true. If Goal is NULL or if " "Goal.ThinlyProvisioned is false, then a full-provisoned " "volume will be created. " "One of the parameters for this method is Size. " "As an input parameter, Size specifies the desired size of " "the element.
"modifying an existing element. As an output parameter " "Size specifies the size achieved."), Units ( "Bytes" )] uint64 Size, [IN, Description ( "Array of strings containing representations of " "references to CIM_StoragePool instances, that are used " "to create the element. " "The first element contains reference to a StoragePool from " "which the user space of the StorageVolume is allocated.
"be NULL.")] CIM_StorageSetting REF Template, [IN, Description ( "If provided, the StorageSetting properties to be created " "or modified for the volume. Properties specified here will " "override those specified in Template. If override is not " "possible, an error code of 32768 will be returned. This is the " "string representation of an embedded instance and does not exist " "in the provider infrastructure but is maintained by the client.
"the specified delta snapshot(s). If one or more delta snapshots " "are specified in the SnapshotVolumes array, then only the specified " "volumes will be updated. If none are specified, all delta snapshot " "volumes will be updated."), ValueMap { "4", "4096", "32768" }, Values { "Failed","Method Parameters Checked - Job Started", "One or more volume do not exist or not delta snapshots" }] uint32 UpdateDeltaSnapshotSpace( [IN, Description ( "References to delta snapshot volumes that are to be " "updated.
"Async: Create and maintain an asynchronous copy of the " "source. \n" "Sync: Create and maintain a synchronized copy of the " "source. \n" "UnSyncAssoc: Create an unsynchronized copy and maintain " "an association to the source. \n" "UnSyncUnAssoc: Create unassociated copy of the source " "element."), ValueMap { "2", "3", "4", "5", "..", "32768..
// ================================================================== // 3PAR CapabilitiesOfStorageConfigurationService // ================================================================== [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.
// ================================================================== // 3PAR Frontend FC Port // ================================================================== [Description ("3PAR InServ FC front end Port ")] class TPD_FCPort : CIM_FCPort { [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", "Pendi
[Description ("VLUN Change Notification (VCN) support."), ValueMap {"0", "1", "2"}, Values {"Unknown", "Enable", "Disable"} ] uint16 VCN; [Description ("Interrupt coalescing support.
}; // ================================================================== // 3PAR SCSIProtocolEndpoint (front-end FC port) // ================================================================== [Description ("3PAR InServ SCSIProtocolEndpoint (front-end FC port). " "This class represent FC ports that are connecting to hosts or " "fabric or disk.
// CIM_FCPort REF Antecedent; -- reenable this line if we support TPD_SCSIInitTargetLUPath [Override ( "Dependent" ), Description ( "The SCSIProtocolEndpoint implemented using the FC port.
"parameters be null. \n" "\n" "The relevant rules of SCSI semantics are: \n" "- an SPC MAY NOT be exposed through a particular " "host/target port pair that is in use by another SPC.
string DeviceNumbers[], [IN, Description ( "A list of permissions to assign to the corresponding " "logical unit in the LUNames parameter. This specifies " "the permission to assign within the context of the " "elements specified in the other parameters. Setting this " "to 'No Access' assigns the DeviceNumber for the " "associated 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..
"on a SCSIProtocolController (SPC). \n" "\n" "The parameters for this method are: Job - null if no job " "created, otherwise this is a reference to the job. LUNames " "- the list of names of the logical units to use. " "InitiatorPortIDs - the names of the initiator ports to use. " "TargetPortIDs - the names of the target ports to use. " "DeviceNumbers (optional) - the device numbers (LUNs) to use. " "This is a 3PAR extension." "ProtocolControllers - SPCs involved in this operation.
"A list of logical unit numbers that corresponds to " "logical unit in the LUNames parameter. " "(within the context of the elements specified in the " "other parameters). This parameter is a vendor-specific " "extension for 3PAR. Use of this parameter is optional, " "but its use will enhance efficiency of the HidePaths " "operation."), ModelCorrespondence { "CIM_ProtocolControllerForUnit.
"instrumentation will attempt to create a new default view. " "There could be multiple default view SPCs associated with " "each port. If an SPC is passed in, then the " "instrumentation adds the new paths to the existing SPC.
"IDs of target ports. See the method description for " "conditions where this MAY be null."), ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }] string TargetPortIDs[], [IN, Description ( "A list of logical unit numbers to assign to the " "corresponding logical unit in the LUNames parameter. " "(within the context of the elements specified in the " "other parameters). If the LUNames parameter is null, " "then this parameter MUST be null.
boolean NoVCN, [OUT, Description ( "An array of descriptive text of the result of the operation, " "with each entry containing the result of the " "expose Default LU operation.")] string ResultDescriptions[]); [Deprecated { "HidePaths" }, Override ("HideDefaultLUs"), Description ( "3PAR version of the HideDefaultLUs operation, adding an extra " "property ResultDescription to better describe the result " "of the hide default logical units operation\n" "\n" "This method is deprecated in favor of HidePaths.
string LUNames[], [IN, Description ( "IDs of target ports. See the method description for " "conditions where this MAY be null."), ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }] string TargetPortIDs[], [IN, Description ( "A list of logical unit numbers that corresponds to " "logical unit in the LUNames parameter. " "(within the context of the elements specified in the " "other parameters). This parameter is a vendor-specific " "extension for 3PAR.
"DeviceNumbers - the device numbers (LUNs) to use. " "DeviceAccesses - permissions for the logical units. " "ProtocolControllers - SPCs involved in this operation. \n" "\n" "There are two modes of operation, create and modify. If a " "NULL value is passed in for the SPC, then the " "instrumentation will attempt to create a new view. " "If an SPC is passed in, then the instrumentation adds the " "new paths to the existing SPC.
"Invalid target port ID", "Invalid permission", "Requested logical unit number in use", "Maximum Map Count Exceeded", "Method Reserved", "Vendor Specific" }] uint32 ExposeLUsToStorageHardwareIDCollection ( [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. The LU " "instances MUST already exist.
"more new SPC instances. If an SPC is specified, the " "instrumentation will attempt to add associations to one " "or more existing SPCs. If the first array element is a " "valid SPC reference and SCSI semantics can be preserved, " "the instrumentation MUST attach associations to the " "specified SPC. If multiple elements are non-null on " "input, the instrumentation MUST report an invalid " "parameter.
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Invalid logical unit ID", "Invalid host name", "Maximum Map Count Error", "Method Reserved", "Vendor Specific" }] uint32 HideLUsFromStorageHardwareIDCollection ( [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.
"capabilities of the 3PAR InServ storage system.")] class TPD_ProtocolControllerMaskingCapabilities : CIM_ProtocolControllerMaskingCapabilities { [Description ( "If true, StorageHardwareIDs need to be set up before calling " "ExposePaths or ExposeLUsToStorageHardwareIDCollection. " "StorageHardwareID is setup by calling CreateStorageHardwareID " "and specifying the ElementName parameter, which is mandatory " "for 3PAR CIMOM.
}; // ================================================================== // 3PAR SoftwareIdentity // ================================================================== [Description ( "3PAR SoftwareIdentity describes Inform OS version loaded " "on InServ")] class TPD_SoftwareIdentity : CIM_SoftwareIdentity { }; // ================================================================== // 3PAR InstalledSoftwareIdentity // ================================================================== [Association, Description
[Description ( "3PAR StorageCapabilities. This class defines the capabilities " "of a StoragePool. An instance of StorageCapabilities could be " "associated with a StoragePool by using ElementCapabilities.")] class TPD_StorageCapabilities: CIM_StorageCapabilities { [Description ("True indicates space limits on allocation from " "DynamicStoragePools may be enforced. This is TRUE for capabilities" " of DynamicStoragePool and concrete pool.
" that a StoragePool can support.") ] class TPD_CapabilitiesOfStoragePool: CIM_ElementCapabilities { [Override ( "ManagedElement" ), Description ( "TPD_StoragePool or TPD_DeltaReplicaStoragePool.")] CIM_StoragePool REF ManagedElement; [Override ( "Capabilities" ), Description ( "The capabilities (RAID types) that the StoragePool can support.
"Instead the implementation uses this association to define " "transient settings, which can be located through any means, " "that have special temporal based life cycle. \n" "DefaultSetting is meaningless in this class.")] class TPD_StorageSettingsGeneratedFromCapabilities : CIM_StorageSettingsGeneratedFromCapabilities { [Override ( "Antecedent" ), Description ( "3PAR StorageCapabilities.")] TPD_StorageCapabilities REF Antecedent; [Override ( "Dependent" ), Description ( "3PAR StorageSetting.
// ================================================================== // PrivilegeForStorageHardwareID // ================================================================== [Association, Description ( "PrivilegeForStorageHardwareID associates StorageHardwareID " "to its access permission (AuthorizedPrivilege).")] class TPD_PrivilegeForStorageHardwareID : CIM_AuthorizedSubject { [Override ( "Privilege" ), Description ( "The AuthorizedPrivilege either granted or denied to an " "Identity, Role or Collection.
Description ( "PrivilegeForStorageHardwareIDCollection associates " "StorageHardwareIDCollection to its access permission (AuthorizedPrivilege).")] class TPD_PrivilegeForStorageHardwareIDCollection : CIM_AuthorizedSubject { [Override ( "Privilege" ), Description ( "The AuthorizedPrivilege either granted or denied to an " "Identity, Role or Collection. Whether the privilege is " "granted or denied is defined by the inherited property, " "CIM_Privilege.PrivilegeGranted.
"Invalid HardwareID instance", "Implementation does not support hardware ID collections", "Input hardware IDs cannot be used in same collection", "Method Reserved", "Vendor Specific" }] uint32 CreateHardwareIDCollection ( [IN, Description ( "The ElementName to be assigned to the created " "collection.")] string ElementName, [IN, Description ( "Array of strings containing representations of " "references to StorageHardwareID instances that will " "become members of the new collection.
Uint16 TargetSecretType, [IN, Description ( "The CHAP secret for the host. If hex is specified, it is " "treated as a 16-byte hex number. Otherwise it should be a " "printable ASCII string 12 to 16 characters in length with " "no spaces.")] string InitiatorSecret, [IN, Description ( "The CHAP secret for the target. If hex is specified, it is " "treated as a 16-byte hex number. Otherwise it should be a " "printable ASCII string 12 to 16 characters in length with " "no spaces.
"HostedStorageHardwareIDCollection defines a " "TPD_StorageHardwareIDCollection in a context of a scoping " "TPD_StorageSystem.")] class TPD_HostedStorageHardwareIDCollection : CIM_HostedCollection { [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description ( "The 3PAR StorageSystem.")] TPD_StorageSystem REF Antecedent; [Override ( "Dependent" ), Description ( "The collection of StorageHardwareIDs in the context of " "the StorageSystem.
}; // ================================================================== // ManagementServicesForAuthorizedPrivilege association // ================================================================== [Association, Description ( "TPD_ManagementServiceForAuthorizedPrivilege is an association " "between TPD_PrivilegeManagementService and " "TPD_AuthorizedPrivilege.
class TPD_StoragePoolGrowWarningAlert : CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a storage pool has reached its " "allocation limit.") ] class TPD_StoragePoolGrowLimitAlert : CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a storage pool fails to grow.") ] class TPD_StoragePoolGrowFailureAlert : CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a storage volume has failed to " "allocate more space.
class TPD_DeltaReplicaStoragePoolGrowLimitAlert: CIM_AlertIndication { }; [Indication, Description ( "Indication specifying that a delta replica storage pool " "has failed to grow.") ] class TPD_DeltaReplicaStoragePoolGrowFailureAlert: CIM_AlertIndication { }; [Indication, Description ( "Indication indicating that the previous alert condition " "regarding a dynamic storage pool has cleared.
[Override ( "Dependent" ), Weak, Description ( "The ControllerConfigurationService hosted on the 3PAR InServ.")] TPD_ControllerConfigurationService REF Dependent; }; // ================================================================== // 3PAR SFP // ================================================================== [Description ( "3PAR SFP for Node FC ports.")] class TPD_SFP : CIM_PhysicalConnector { [Description ("Revision code.
// ================================================================== [Description ( "StorageClientSettingData contains host OS types.")] class TPD_StorageClientSettingData : CIM_StorageClientSettingData { [Description ("3PAR InServ host persona index number.") ] uint32 HostPersonaID; [Description ("3PAR InServ host persona overall capabilities.
"The StorageHardwareIDCollection.")] TPD_StorageHardwareIDCollection REF ManagedElement; [Override ("SettingData"), Description ( "The StorageClientSettingData.")] TPD_StorageClientSettingData REF SettingData; }; // ================================================================== // StorageDomainGroup // ================================================================== [Description ("A collection of domains in groups.
//%//////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // // File : 3PAR_TPDCage.mof // // Purpose : This MOF contains 3PAR Cage classes that will be loaded // into root/tpd namespace.
[Description ( "DC3 3PAR Drive Cage")] class TPD_DriveCageDC3Family : TPD_DriveCage { [Description ("Status of the temperature sensor."), Read, ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, Values {"Unknown", "OK", "Over Threshold", "Over/Under Threshold", "Communication Error", "Not Present", "IM Sync failed", "Not Available"} ] uint16 TempSensorState; [Description ("Value of the temperature sensor."), Read ] uint16 TempSensorValue; [Description ("Status of the temperature sensor threshold.
[Description ("Position of the Interface Card in the cage.") ] uint16 Position; [Description ("Type of the cage this Interface Card is in."), ValueMap {"0", "2", "3", "4", "5"}, Values {"Unknown", "DC1", "DC2", "DC3", "DC4"} ] uint16 CageType; [Description ("WWN of the Loop A ports in Interface Card. " represents Loop A0, array index 1 represents" " Loop A1, etc.") ] uint64 LoopAPortWWNs[]; Array index 0" [Description ("WWN of the Loop B ports in Interface Card.
[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.
[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.
[Description ("Extended State of Interface Card ESH.
[Description ("Shows if the locate is ON." " Array index 0 is Loop B0, array index 1 is Loop B1.
Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"} ] uint16 HotplugLED; }; // ================================================================== // 3PAR Drive Cage and Magazine association // ================================================================== [Association, Aggregation, Description ( "3PAR Drive Cage and Magazine association")] class TPD_MagazineInDriveCage : CIM_PackageInChassis { [Aggregate, Override ( "GroupComponent" ), Max ( 1 ), Description ( "The Drive Cage
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.")] class TPD_SensorInDriveCage : CIM_PackageDependency { [Override ( "Antecedent" ), Description ( "The Sensor.
ValueMap {"0", "10", "50", "60"}, Values {"RAID0", "RAID10", "RAID50", "RAID60"} ] uint16 RaidType; }; // ================================================================== // 3PAR ReplicaPoolForStorage // ================================================================== [Association, Description ( "Association between TPD_DeltaReplicaStoragePool and " "the source TPD_StorageVolume.
TPD_StorageVolume REF SyncedElement; }; 3PAR_TPDDisk.mof //%//////////////////////////////////////////////////////////////////////// // // // 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.
[Description ("State of Disk on Loop A.
[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.") ] uint32 ChunksSpareUsedFail; [Description ("Number of Spare Unused Free chunks.
Values {"Unknown", "Not Present", "OK", "Failed"} ] uint16 ESIState; [Description ("Disk RPM - revolutions per minute in unit of K. " "This property is null if SSD.
Values {"Unknown", "Old", "Current"} ] uint16 FirmwareStatus; }; // ================================================================== // 3PAR DiskDrive and DiskSoftwareIdentity association // ================================================================== [Association, Description ( "3PAR DiskSoftwareIdentity and DiskDrive mapping")] class TPD_DiskSoftware : CIM_ElementSoftwareIdentity { [Override ( "Antecedent" ), Description ( "The software that is installed on the Disk Drive.
[Aggregate, Override ( "GroupComponent" ), Description ( "The parent element in the association.")] CIM_StoragePool REF GroupComponent; [Override ( "PartComponent" ), Description ( "The child element in the association.
[Override ( "Antecedent" ), Description ( "The lower level StorageExtent.")] TPD_DiskStorageExtent REF Antecedent; [Override ( "Dependent" ), Description ( "The higher level StorageExtent.")] TPD_StorageVolume REF Dependent; }; 3PAR_TPDNode.mof //%//////////////////////////////////////////////////////////////////////// // // // Copyright 2007 3PAR, Inc. All Rights Reserved. // This software is the property of 3PAR, Inc.
[Description ("Kernel Version in String format.") ] string KernelVersion; [Description ("Major part of BIOS version.") ] uint16 BiosMajor; [Description ("Minor part of BIOS version.") ] uint16 BiosMinor; [Description ("Revision part of BIOS version.") ] uint16 BiosRevision; [Description ("Build part of BIOS version.") ] uint16 BiosBuild; [Description ("BIOS Version in String format.") ] string BiosVersion; [Description ("System LED status.
"2 NodeSystem objects")] class TPD_NodeRedundancySet : CIM_RedundancySet { }; // ================================================================== // 3PAR NodePairSystem // ================================================================== [Description ( "3PAR Controller Node Pair computer system. One for each of the " "NodeRedundancySet object.
[Override ( "SystemElement" ), Description ( "NodePairSystem associated to the NodeRedundancySet")] TPD_NodePairSystem REF SystemElement; [Override ( "SameElement" ), Description ( "NodeRedundancySet for a NodePairSystem.
// Node CPU // ================================================================= class TPD_NodeCPU : CIM_Processor { [Description ("Position of the CPU in the node.") ] uint16 Position; [Description ("Bus speed in Mhz * 100") ] uint32 BusSpeed; [Description ("Vendor name of the CPU.") ] string Manufacturer; [Description ("Model type for CPU.") ] string Model; [Description ("Serial number of the CPU.
[Description ("CAS latency. string CASLatency; Format: CL/, in nS.") ] [Description ("JEDEC ID.") ] string JedecID; [Description ("Revision code.") ] string Revision; }; // ================================================================== // TPD NodePackagedMemory // ================================================================== [Association, Aggregation, Description ( "A Physical Memory contained by a Node PhysicalPackage.
// ================================================================== [Description ( "3PAR PCI or PCIe Card.")] class TPD_PCICard : CIM_Card { [Description ("Node slot the card is in.") ] uint16 Slot; [Description ("Firmware version on the PCI or PCIe Card.") ] string FirmwareVersion; [Description ("Revision code.") ] String Revision; [Description ("Type of the PCI or PCIe Card.
[Association, Aggregation, Composition, Description ( "3PAR InServ Node System and FC Port Association ") ] class TPD_SystemFCPort : CIM_SystemDevice { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description("The InServ node controller that hosted the FC port.")] TPD_NodeSystem REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The front end FCPort port.
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.
// TPD Fan // Based on the CIM schema, we need to use CIM_NumericSensor (Tachometer) // to show the current speed of the fan. This is way too much for what // we need, so I am going to add a new variable for speed. If // we ever need to comply with the requirements, I will change it. // ================================================================== [Description ( "3PAR Fan ")] class TPD_Fan : CIM_Fan { [Description ("Position of the Fan.") ] uint16 Position; [Description ("Fan speed.
// ================================================================== // TPD Battery // ================================================================== [Description ( "3PAR Battery connected to the PowerSupply in Node.")] class TPD_Battery : CIM_Battery { [Description ("Position of the Battery.") ] uint16 Position; [Description ("Maximum battery life in minutes.") ] uint32 MaxLife; [Description ("If TRUE, MAX life is low and battery is failed.
// =================================================================== [Association, Description ( "A Node PowerSupply may use or require one or more Batteries. This " "relationship is described by the PowerSupplyBattery dependency.")] class TPD_PowerSupplyBattery : CIM_AssociatedBattery { [Override ( "Antecedent" ), Description ( "The Battery.")] TPD_Battery REF Antecedent; [Override ( "Dependent" ), Description ( "The Node PowerSupply needing or associated with the Battery.
"StorageSystem or NodeSystem.")] CIM_ComputerSystem REF GroupComponent; [Override ( "PartComponent" ), Weak, Description ( "The PowerSupply that is a component of a ComputerSystem.
// // // File : 3PAR_TPDLocation.mof // // Purpose : This MOF contains 3PAR Location classes that will be loaded // into root/tpd namespace. // // Date created: 8/10/2005 // /////////////////////////////////////////////////////////////////////////// // // ================================================================== // TPD System location // ================================================================== [Description ( "Location of the InServ array.
// =================================================================== [Description ( "Capabilities and management of an EthernetPort.
[Association, Aggregation, Composition, Description ( "3PAR InServ Storage System and Ethernet Port Association ") ] class TPD_SystemEthPort : CIM_SystemDevice { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description("The InServ node controller that hosted the Ethernet port.")] TPD_NodeSystem REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The Ethernet Port.
3PAR_TPDiSCSI.mof //%//////////////////////////////////////////////////////////////////////// // // // 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_TPDiSCSI.
"The iSCSIProtocolEndpoint dependent on the TCPProtocolEndpoint.")] TPD_iSCSIProtocolEndpoint REF Dependent; }; // ================================================================== // 3PAR SystemiSCSIEndpoint: association between NodeSystem and // iSCSIProtocolEndpoint // ================================================================== [Association, Description ( "3PAR InServ NodeSystem and IPProtocolEndpoint association." "This is a subclass of CIM_HostedAccessPoint.
Description ( "TPD_ConfigServicesForiSCSIController is an association between " "TPD_iSCSIController and ControllerConfigurationService.") ] class TPD_ConfigServicesForiSCSIController : CIM_ConcreteDependency { [Override ( "Antecedent" ), Description ( "The controller configuration service which the protocol " "controller depends on for configuration.
// 3PAR iSCSIConnectionSettings // ================================================================== [Description ( "The settings for the usage of an iSCSI NetworkPortal by an " "iSCSIProtcolEndpoint. These settings are the starting point " "for negotiation for connection establishment. " "The properties that reflect the actual outcome " "of the negotiation are found in the iSCSIConnection class.
// ================================================================== // 3PAR EndpointOfiSCSISession // ================================================================== [Association, Description ( "EndpointOfNetworkPipe describes the endpoints between which a " "pipe transfers information. Whether an endpoint is a source or " "sink is indicated by a property of the association, " "SourceOrSink.
"parts/pipes.")] TPD_iSCSISession REF GroupComponent; [Override ( "PartComponent" ), Description ( "A pipe which is a part of a higher-level one.")] TPD_iSCSIConnection REF PartComponent; }; // ================================================================== // 3PAR iSCSISessionStatistics // ================================================================== [Description ( "Traffic and error statistics for an iSCSI Session.
"requirements and context for the referenced instance of " "ManagedElement. Specifically, the ManagedElement MUST exist " "and provides the context for the Capabilities.")] class TPD_iSCSIElementCapabilities : CIM_ElementCapabilities { [Key, Min ( 1 ), Max ( 1 ), Description ( "The managed element.")] TPD_StorageSystem REF ManagedElement; [Key, Description ( "The Capabilities object associated with the element.
}; // ================================================================== // 3PAR iSCSILoginStatistics // ================================================================== [Description ( "Statistics for Logins and Logouts to or from an iSCSI Node. An " "instance of this class will be associated by " "ElementStatisticalData to an instance of " "SCSIProtocolController that represents the Node.
3PAR_TPDJob.mof //%//////////////////////////////////////////////////////////////////////// // // // // Copyright 2005-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_TPDJob.
// ================================================================== // 3PAR OwningJobElement // ================================================================== [Association, Description ( "OwningJobElement represents an association between a " "TPD_ConcreteJob and the ManagedElement responsible for the " "creation of the Job, for example, TPD_StorageConfigurationService " "when a job is created as a side-effect of physical copy.
// ================================================================== [Description ( "Indication sent when a property of a TPD_ConcreteJob changes " "value. This indication will only be sent if OperationlStatus " "of a TPD_ConcreteJob instance is changed.")] class TPD_ConcreteJobInstModification : CIM_InstModification { }; 3PAR_TPDReplicationSvcs.mof //%//////////////////////////////////////////////////////////////////////// // // // Copyright 2010 3PAR, Inc. All Rights Reserved.
"Method Reserved", "Vendor Specific" }] uint32 TPD_CreateGroupReplica( [IN, Description ( "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.
"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. If " "Consistency is already active, no modification is " "made.
"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..
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).
[Override ( "Capabilities" ), Description ( "The configuration capabilities that the " "ReplicationService can support. ")] TPD_ReplicationServiceCapabilities REF Capabilities; }; // ================================================================== // 3PAR Replication Group // ================================================================== [Description ( "This class represents a collection of storage objects, such as " "a group of StorageVolumes. It is used to represent volume set.
"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.
" 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.
"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." )] datetime SyncInterval; [Description ( "Specifies the policy of the Remote Copy volume groups for dealing with I/O " "failure and error handling of the replication.
"may affect.")] TPD_RemoteReplicationGroup REF AffectedElement; }; // ================================================================== // TPD_HostedRemoteReplicationGroup // ================================================================== [Association, Description ( "HostedCollection defines a RemoteReplicationGroup in the " "context of StorageSystem.
}; // ================================================================== // TPD_ReplicationEntity // ================================================================== [Description ( "This class represents a replication entity, such as an entity " "known by its World Wide Name (WWN). " "If the remote StorageVolume in a remote replication relationship " "cannot be discovered, then this will be represented in the " "RemoteStorageSynchronized association as either SystemElement or " "SyncedElement property.
[Override ( "Dependent" ), Description ( "The collection defined in the context of a system.
[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.")] class TPD_HostedStatisticsManifestCollection : CIM_HostedCollection { [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description ( "The scoping system.
// ================================================================== // Node Statistical Data // ================================================================== [Description ( "Statistical data for a node controller")] class TPD_NodeStatisticalData : CIM_BlockStorageStatisticalData { }; // ================================================================== // Node Element Statistical Data // ================================================================== [Association, Description ( "An association tha
// ================================================================== // Port Statistical Data // ================================================================== [Description ( "Statistical data for the Port")] class TPD_PortStatisticalData : CIM_BlockStorageStatisticalData { }; // ================================================================== // Port Element Statistical Data // ================================================================== [Association, Description ( "An association that relates
// ================================================================== // Block Statistics Service // ================================================================== class TPD_BlockStatisticsService : CIM_BlockStatisticsService { }; // ================================================================== // Hosted Statistics Service // ================================================================== [Association, Description ( "An association between a Service and the " "System on which the functionality i
// ================================================================== [Description ( "Statistical data for the LUNs")] class TPD_LUNStatisticalData : CIM_BlockStorageStatisticalData { }; 3PAR_TPDStats.