3par Wbem Support
3par Wbem Support
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).
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. The only warranties for HP products and services are set forth in the express
warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall
not be liable for technical or editorial errors or omissions contained herein.
Acknowledgments
Microsoft®, Windows®, Windows® XP, and Windows NT® are U.S. registered trademarks of Microsoft Corporation.
For the latest version of this document, go to http://www.hp.com/go/3par/, navigate to your product page, click Support for your product, and
then click Manuals.
Contents
1 Concepts...................................................................................................9
About SMI-S............................................................................................................................9
About the WBEM Initiative.........................................................................................................9
2 Security...................................................................................................10
TCP Ports...............................................................................................................................10
Authentication........................................................................................................................10
Authorization.........................................................................................................................10
3 Configuring and Using the CIM Server........................................................11
CLI Command Overview..........................................................................................................11
Enabling and Disabling the CIM Server.....................................................................................11
Enabling the CIM Server.....................................................................................................11
Disabling the CIM Server....................................................................................................11
Displaying the CIM Server Status..............................................................................................11
Displaying the CIM Server Version............................................................................................12
Communicating with the CIM Server.........................................................................................12
Client Software..................................................................................................................12
Sending Client Requests......................................................................................................12
CIM Namespaces...................................................................................................................13
4 CIM API SMI-S Support.............................................................................14
Standard Compliance.............................................................................................................14
SMI-S Functionality.................................................................................................................14
Supported Discovery Service....................................................................................................14
Supported Profiles...................................................................................................................14
Supported Array Packages.......................................................................................................14
Supported Array Subprofiles....................................................................................................15
Supported Server Subprofile....................................................................................................15
Supported SMI-S Levels by Release.......................................................................................16
Discovery Service...............................................................................................................16
Server Profile.........................................................................................................................17
Server Profile CIM Classes..................................................................................................17
Supported Methods............................................................................................................17
UML Diagram....................................................................................................................17
Profile Registration Profile.........................................................................................................17
CIM Classes......................................................................................................................17
UML Diagram....................................................................................................................18
Registered Version..............................................................................................................18
SMI-S Profile......................................................................................................................18
Array Profile...........................................................................................................................19
Array Profile CIM Classes...................................................................................................19
Supported Methods............................................................................................................19
Block Services Package...........................................................................................................19
Block Services Package CIM Classes....................................................................................19
Supported Methods............................................................................................................20
StorageSetting...................................................................................................................20
Creating a DynamicStoragePool (CPG) via SMI-S...................................................................24
Relevant Properties of DynamicStoragePool.......................................................................26
Modifiable StorageSetting Properties for DSP....................................................................27
StorageCapabilities of DynamicStoragePool.....................................................................28
StoragePoolConfigurationCapabilities of DynamicStoragePool.............................................28
Creating a Volume Through SMI-S........................................................................................29
Contents 3
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................................................................................................................32
Creating a Volume with a Default Setting.........................................................................33
Creating a Volume with a Non-Default Setting..................................................................33
Creating a Volume with Disk Pattern Filtering....................................................................34
Summary of Different Types of Volumes That Can Be Created..............................................35
Modifiable StorageSetting Properties for StorageVolume.....................................................37
Calculating Capacity for StoragePool and StorageVolume.......................................................38
Primordial Storage Pool..................................................................................................38
Concrete Storage Pool...................................................................................................38
Dynamic Storage Pool (CPG)..........................................................................................38
Legacy Storage Volume..................................................................................................39
Initial State Example.................................................................................................39
Before Volume Creation.............................................................................................40
After Volume Creation...............................................................................................40
Fully Provisioned Storage Volume....................................................................................40
Thinly Provisioned Storage Volume...................................................................................41
Indications........................................................................................................................43
Copy Services Subprofile.........................................................................................................45
CIM Classes......................................................................................................................45
TPD_AffectedJobElement................................................................................................47
TPD_AllocatedFromStoragePool.......................................................................................47
TPD_AssociatedJobMethodResult.....................................................................................47
TPD_CapabilitiesOfStorageConfigurationService...............................................................48
TPD_CapabilitiesOfStoragePool......................................................................................48
TPD_ConcreteJob..........................................................................................................48
TPD_ConcreteJobInstModification....................................................................................48
TPD_DeltaReplicaStoragePool.........................................................................................48
TPD_ElementSettingData................................................................................................48
TPD_HostedStoragePool.................................................................................................48
TPD_MethodResult.........................................................................................................48
TPD_OwningJobElement.................................................................................................48
TPD_ReplicaPoolForStorage............................................................................................48
TPD_StorageCapabilities................................................................................................48
TPD_StorageConfigurationCapabilities.............................................................................48
TPD_StorageConfigurationService....................................................................................49
TPD_StorageReplicationCapabilities.................................................................................50
TPD_StorageSetting.......................................................................................................52
TPD_StorageSynchronized..............................................................................................53
TPD_SystemVolume........................................................................................................54
TPD_DynamicStoragePool...............................................................................................54
SA/SD Space as StoragePool..............................................................................................54
Goal StorageSetting......................................................................................................55
CreateOrModifyStoragePool...........................................................................................55
Associations.................................................................................................................55
TPD_ReplicaPoolForStorage........................................................................................55
TPD_AllocatedFromStoragePool..................................................................................55
Capacity Calculations....................................................................................................56
Non-CPVV...............................................................................................................56
CPVV......................................................................................................................56
UpdateDeltaSnapshotSpace() Method.........................................................................57
Indications...................................................................................................................58
4 Contents
Physical Copy...................................................................................................................58
StorageSynchronized.....................................................................................................58
StorageReplicationCapabilities........................................................................................59
Job Control Subprofile Indications...................................................................................64
Virtual Copy......................................................................................................................64
StorageSynchronized.....................................................................................................64
StorageReplicationCapabilities........................................................................................65
Job Control Indications..............................................................................................67
Job Control.......................................................................................................................68
Overview.....................................................................................................................68
TPD_ConcreteJob..........................................................................................................68
RequestStateChange() Method...................................................................................68
GetError() Method....................................................................................................69
Mapping Error Code to CIM_Error..............................................................................69
TPD_OwningJobElement.................................................................................................70
TPD_AffectedJobElement................................................................................................70
TPD_AssociatedJobMethodResult.....................................................................................70
Indications...................................................................................................................70
Location Subprofile.................................................................................................................71
Location Subprofile CIM Classes..........................................................................................71
Supported Methods............................................................................................................71
Multiple Computer System Subprofile........................................................................................71
Multiple Computer System Subprofile CIM Classes.................................................................71
Supported Methods............................................................................................................71
Software Subprofile................................................................................................................72
Software Subprofile CIM Classes.........................................................................................72
Supported Methods............................................................................................................72
Masking and Mapping Subprofile............................................................................................72
Masking and Mapping Subprofile CIM Classes.....................................................................72
Supported Methods............................................................................................................73
SMI-S View and Paths.........................................................................................................73
ProtocolControllerMaskingCapabilities..................................................................................76
ControllerConfigurationService............................................................................................77
ExposePaths (Creating VLUNs)........................................................................................78
HidePaths (Removing VLUNs)..........................................................................................79
ExposeDefaultLUs..........................................................................................................81
HideDefaultLUs.............................................................................................................81
ExposeLUsToStorageHardwareIDCollection (Creating Host-Sees VLUNs) (3PAR proprietary
method).......................................................................................................................81
HideLUsFromStorageHardwareIDCollection(Removing Host-Sees VLUNs)...............................82
StorageHardwareIDManagementService..........................................................................83
CreateStorageHardwareID (Creating Host and Path)..........................................................84
DeleteStorageHardwareID (Removing a Path from a Host)...................................................84
CreateStorageHardwareIDCollection (Creating a Host)......................................................85
AddStorageHardwareIDsToCollection (Adding a Path to a Host)..........................................85
SetISCSICHAP..............................................................................................................86
RemoveISCSICHAP........................................................................................................86
StorageHardwareIDCollection.ModifyInstance..................................................................86
StorageHardwareIDCollection.DeleteInstance (Deleting a Host)...........................................86
ConcreteDependency.........................................................................................................87
SAPAvailableForElement.....................................................................................................87
iSCSISAPAvailableForElement..............................................................................................87
SCSIPrococolController.......................................................................................................87
iSCSIPrococolController......................................................................................................87
SCSIPrococolEndpoint........................................................................................................87
Contents 5
iSCSIPrococolEndpoint.......................................................................................................88
ControllerForUnit................................................................................................................88
iSCSIControllerForUnit........................................................................................................89
StorageClientSettingData....................................................................................................89
StorageHardwareID...........................................................................................................89
TPD_StorageHardwareIDCollection.......................................................................................89
Supporting classes.............................................................................................................89
AuthorizedPrivilege........................................................................................................89
PrivilegeForStorageHardwareID.......................................................................................90
PrivilegeForStorageHardwareIDCollection.........................................................................90
AuthorizedSubject.........................................................................................................90
AuthorizedTarget...........................................................................................................90
ConcreteDependency....................................................................................................90
SystemEndpoint (HostedAccessPoint)................................................................................90
ElementCapabilities.......................................................................................................90
ElementSettingData.......................................................................................................90
MemberOfCollection.....................................................................................................90
ProtocolControllerMaskingCapabilities.............................................................................90
FC Target Ports Subprofile........................................................................................................90
FC Target Ports Subprofile CIM Classes.................................................................................91
Supported Methods............................................................................................................91
FC Initiator Ports Subprofile......................................................................................................91
FC Initiator Ports Subprofile CIM Classes...............................................................................91
Supported Methods............................................................................................................91
iSCSI Target Ports Subprofile....................................................................................................91
iSCSI Target Ports Subprofile CIM Classes.............................................................................92
Supported Methods............................................................................................................92
Distinction between iSCSI and iSCSI over CNA Port...............................................................92
Disk Drive Lite Subprofile.........................................................................................................92
Disk Drive Lite Subprofile CIM Classes..................................................................................93
Supported Methods............................................................................................................93
Block Server Performance Subprofile.........................................................................................93
Block Server Performance Subprofile CIM Classes..................................................................93
Replication Services Profile.......................................................................................................94
CIM Classes......................................................................................................................95
TPD_ReplicationGroup...................................................................................................95
TPD_RemoteReplicationGroup.........................................................................................96
ReplicationService.........................................................................................................96
ReplicationServicesCapabilities.....................................................................................108
TPD_RemoteStorageSynchronized..................................................................................118
TPD_ReplicationEntity...................................................................................................123
TPD_RemoteReplicationGroup.......................................................................................123
TPD_RemoteGroupSynchronized....................................................................................124
TPD_OrderedMemberOfRemoteReplicationGroup............................................................125
TPD_ReplicationServiceAffectsRemoteReplicationGroup....................................................126
TPD_HostedRemoteReplicationGroup.............................................................................126
TPD_SAPAvailableForRemoteReplicaVolume....................................................................126
TPD_SAPAvailableForRemoteReplicationGroup................................................................126
Thin Provisioning Profile....................................................................................................127
5 CIM Indications......................................................................................128
Fibre Channel Ports...............................................................................................................128
Job Control for Copy Services................................................................................................128
Thin Provisioning..................................................................................................................128
6 Contents
6 CIM-API Extensions.................................................................................129
Health Management.............................................................................................................129
Controller Node Subsystem...............................................................................................129
controller node Subsystem CIM Classes..........................................................................129
Properties for TPD_StorageSystem..................................................................................129
Properties for TPD_NodeSystem.....................................................................................130
Properties for TPD_PCICard..........................................................................................130
Properties for TPD_NodeCPU........................................................................................130
Properties for TPD_PhysicalMemory...............................................................................130
Properties for TPD_IDEDrive..........................................................................................130
Supported Methods..........................................................................................................131
UML Diagram.............................................................................................................131
Disk Enclosure Subsystem..................................................................................................131
Disk Enclosure Subsystem CIM Classes...........................................................................131
Properties for TPD_StorageSystem..................................................................................132
Properties for TPD_DriveCage.......................................................................................132
Properties for TPD_CageInterfaceCard...........................................................................132
Properties for TPD_Magazine........................................................................................132
Properties for TPD_DiskDrive.........................................................................................132
Supported Methods..........................................................................................................133
UML Diagram.............................................................................................................133
Power and Cooling..........................................................................................................133
Power and Cooling CIM Classes...................................................................................133
Properties for TPD_StorageSystem..................................................................................134
Properties for TPD_NodeSystem.....................................................................................134
Properties for TPD_DriveCage.......................................................................................134
Properties for TPD_PowerSupply....................................................................................135
Properties for TPD_Battery............................................................................................135
Properties for TPD_Fan.................................................................................................135
Supported Methods..........................................................................................................135
UML Diagram.............................................................................................................136
Inventory Management..........................................................................................................136
Controller Node Subsystem...............................................................................................136
Controller Node Subsystem CIM Classes........................................................................136
Properties for TPD_StorageSystem..................................................................................137
Properties for TPD_SystemPackage.................................................................................137
Properties for TPD_NodeSystem.....................................................................................137
Properties for TPD_NodePackage..................................................................................137
Properties for TPD_PCICard..........................................................................................137
Properties for TPD_NodeCPU........................................................................................138
Properties for TPD_PhysicalMemory...............................................................................138
Properties for TPD_IDEDrive..........................................................................................138
Supported Methods..........................................................................................................138
UML Diagram.............................................................................................................139
Disk Enclosure Subsystem..................................................................................................139
Disk Enclosure Subsystem CIM Classes...........................................................................139
Properties for TPD_StorageSystem..................................................................................139
Properties for TPD_DriveCage.......................................................................................140
Properties for TPD_CageInterfaceCard...........................................................................140
Properties for TPD_Magazine........................................................................................140
Properties for TPD_DiskDrive.........................................................................................140
Properties for TPD_DiskDrivePackage.............................................................................141
Properties for TPD_DiskSoftwareIdentity..........................................................................141
Supported Methods..........................................................................................................141
Contents 7
UML Diagram.............................................................................................................141
Power and Cooling..........................................................................................................141
Power and Cooling CIM Classes...................................................................................142
Properties for TPD_StorageSystem..................................................................................142
Properties for TPD_NodeSystem.....................................................................................142
Properties for TPD_DriveCage.......................................................................................142
Properties for TPD_PowerSupply....................................................................................143
Properties for TPD_Battery............................................................................................143
Properties for TPD_Fan.................................................................................................143
Supported Methods..........................................................................................................143
UML Diagram.............................................................................................................144
Domain, User and Licenses....................................................................................................144
Description......................................................................................................................144
CIM Classes....................................................................................................................144
Properties for TPD_StorageSystem.......................................................................................145
Properties for TPD_StorageDomainGroup............................................................................145
Supported Methods..........................................................................................................145
Methods for TPD_StorageHardwareIDCollection..............................................................145
Thin Provisioning and TPVV Manipulations...............................................................................145
A Managed Object Format Files..................................................................146
3PAR_InterOp.mof................................................................................................................146
3PAR_TPD.mof.....................................................................................................................150
3PAR_TPDCage.mof..............................................................................................................216
3PAR_TPDCopySvcs.mof........................................................................................................225
3PAR_TPDDisk.mof...............................................................................................................227
3PAR_TPDNode.mof.............................................................................................................233
3PAR_TPDEnv.mof.................................................................................................................240
3PAR_TPDLocation.mof..........................................................................................................245
3PAR_TPDEthPort.mof............................................................................................................246
3PAR_TPDiSCSI.mof..............................................................................................................249
3PAR_TPDJob.mof.................................................................................................................257
3PAR_TPDReplicationSvcs.mof................................................................................................259
3PAR_TPDStats.mof...............................................................................................................269
8 Contents
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.
The SMI-S model is divided into several profiles, each of which describes a particular class of SAN
entities (such as disk arrays or Fibre Channel switches). These profiles allow for differences in
implementations but provide a consistent approach for clients to discover and manage SAN
resources and facilitate interoperability across vendor products within the SAN.
SMI-S also defines an automated resource discovery process using Service Location Protocol version
2 ( SLPv2). This allows management applications to automatically find SAN resources and then
probe them to determine which of the SMI-S profiles and features they support.
For more information, refer to the Storage Management Initiative Web site at www.snia.org/smi/
home.
The Common Information Model (CIM) standard The CIM standard is the data model for WBEM. CIM
provides a conceptual framework for describing
management data for systems, networks, applications and
services, and allows for vendor extensions. SMI-S uses CIM
to model those objects and relationships that comprise a
SAN.
WBEM Discovery using Service Location Protocol (SLP) WBEM Discovery using SLP is a method for applications
to identify WBEM-based management systems. For more
information regarding WBEM and CIM, refer to the DMTF
web site at http://www.dmtf.org.
About SMI-S 9
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. The following table lists the TCP Ports for the
CIM-XML communication and service location protocols:
Table 2 TCP Ports for CIM-XML Communication
Protocol TCP Port
Authentication
Authentication verifies the identity of an entity.
Management clients accessing the CIM Server are authenticated using a request/challenge
mechanism using HTTP Basic authentication. When a request is received from a management
client, the CIM Server challenges the client to send a user name and password encoded in the
HTTP Authorization header. The user names and passwords used are the same as those used by
other management interfaces and are case sensitive.
NOTE: CIM does not currently support LDAP user name and password authentication; only local
user names and passwords are valid. Please see the HP 3PAR Concepts Guide for more information
on local versus LDAP user credentials.
The CIM Server uses Open SSL to support HTTPS connections. The server supports SSLv3 and TLSv1
by default and uses the default Open SSL cipher list only. For more about OpenSSL, refer to http://
www.openssl.org/docs.
NOTE: Because Basic Authentication means that client user names and passwords are sent over
the wire in unencrypted form, it is recommended that the authentication is carried out either over
a physically secure private network, or in conjunction with HTTPS.
Authorization
Authorization determines whether an entity that has already been authenticated is allowed to
perform a given operation.
The CIM Server allows any authenticated user to retrieve CIM class and instance information.
However, to invoke methods on CIM classes or instances, you must either have an Edit , Super,
Administrator, or User permission level. Refer to the HP 3PAR Concepts Guide or the HP 3PAR
InForm OS CLI Administrators Manual for complete information on authorization levels.
NOTE: Access to certain information concerning volumes, CPGs, etc., is controlled by the InForm
OS. Therefore, if a user authenticates with the CIM API and only has access to certain domains,
only those objects in those domains returned by the InForm OS. In addition, operations on those
objects also be constrained at the domain level.
10 Security
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
NOTE: Refer to the HP 3PAR InForm OS Command Line Interface Reference for additional
information.
# startcim
CIM server will start in about 90 seconds.
#stopcim -f
CIM server stopped successfully.
If you issue this command without the -f option, you are prompted to confirm your intent to disable
the CIM Server.
# showcim
-Service- -State- --SLP-- SLPPort -HTTP-- HTTPPort -HTTPS- HTTPSPort PGVer CIMVer
Enabled Active Enabled 427 Enabled 5988 Enabled 5989 2.9.1 3.1.1
The showcim command shows the overall status of the CIM Server; the status and ports used for
the HTTP, HTTPS, and SLP; the version of the internal Pegasus CIM Object Manager; and the
version of the CIM Server.
# showversion -a
Release version 3.1.1
Patches: None
Component Name Version
CLI Server 3.1.1
...
CIM Server 3.1.1
Client Software
We do not provide client software, but commercial and open source CIM client software packages
are readily available. Table 4 (page 12) lists some of the available tools and packages.
Table 4 Available Client Software Tools and Packages
Tool or Package Description URL
CIM Namespaces
CIM namespaces are logical groupings of CIM classes and CIM instances that represent managed
objects in a particular environment. When making requests of a CIM Server, a client application
must include the namespace that contains those classes. The namespace is case insensitive.
Table 5 CIM Server Supported Namespaces
Namespace Purpose
CIM Namespaces 13
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.org/forums/smi/tech_programs/ctp/conformingproviders
SMI-S Functionality
SMI-S defines a number of services, profiles, and subprofiles that are used to manage elements of
a SAN. Each HP 3PAR Storage System comes with an embedded CIM Server that includes support
for the profiles, subprofiles, and services.
Supported Profiles
Table 7 Supported Profiles
Profile Version Purpose
Profile Subprofile/Package
Server x x x x x x
Profile
Profile x
Registration
Array Profile x x x x x x
Software x x x x x x
Block Services x x x x x
Physical x x x x x
Package
Masking & x x x x x
Mapping
FC Target x x x x x
Ports
FC Initiator x x x x x
Ports
Location x x x x x
Mulitple x x x x x
Computer
System
iSCSI Target x x x x x
Ports
Block Server x x x
Performance
Copy x x
Services
Job Control x x
Thin x
Provisioning
Replication x
Services
Discovery Service
The first step in managing an SMI-S enabled SAN is to discover its available resources (such as
the CIM servers). SMI-S defines Service Location Protocol v2 (SLPv2) as the discovery mechanism.
CIM clients use SLP to query for available CIM servers. CIM servers answer with generic information
about what services they provide and the URL at which these services reside.
TPD_RegisteredProfile One instance of this class exists for each SMI-S Profile that
is registered with the CIM Server.
TPD_RegisteredSubprofile One instance of this class exists for each SMI-S Subprofile
that is registered with the CIM Server.
Supported Methods
Table 13 Method for TPD_StorageSystem
Method Description
UML Diagram
For the Server Profile Instance Diagram, refer to the SMI-S, v1.4 at http://www.snia.org.
CIM Classes
Table 14 Key Classes
Class Description
TPD_RegisteredProfile One instance of this class will exist for each SMI-S Profile
that is registered with the CIM Server. One instance exists
for the SMI-S Profile.
TPD_RegisteredSubprofile One instance of this class will exist for each SMI-S
Subprofile that is registered with the CIM Server.
Server Profile 17
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.
The following list the profile/subprofile corresponding RegisteredVersion:
• Array-1.3.0
• Server-1.4.0
• Disk Drive Lite-1.4.0
• Location-1.4.0
• Masking and Mapping-1.4.0
• Copy Services-1.4.0
• Job Control-1.3.0
• Multiple Computer System-1.2.0
• FC Target Ports-1.2.0
• FC Initiator Ports-1.3.0
• Software-1.4.0
• iSCSI Target Ports-1.2.0
• Block Server Performance-1.4.0
• Thin Provisioning-1.4.0
• Profile Registration-1.4.0
• Replication Services-1.4.0
SMI-S Profile
Each RegisteredProfile instance representing a profile is associated to a RegisteredProfile instance
holding the SMI-S version number. The version number (RegisteredVersion) of SMI-S profiles may
or may not be the same as the version number of the SMI-S RegisteredProfile. The RegisteredProfile
instances are associated using ElementConformsToProfile, where the RegisteredProfile representing
SMI storage profiles (e.g., Array, Server) is referenced from the ManagedElement role of the
association. Also, this SMI-S profile is not associated to TPD_ObjMgrSoftwareIdentity, unlike the
other RegisteredProfiles and RegisteredSubprofiles. It is also not advertised in SLP.
Note that the overall version of SMI-S supported by the provider are expressed using the SMI-S
RegisteredProfile.
Table 15 Property Values for the SMI-S Profile
Properties Description
InstanceID SNIA:SMI-S
RegisteredOrganization 11 (SNIA)
RegisteredName SMI-S
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. The mandatory Block Services
package and the various optional subprofiles extend this description and provide additional
management capabilities.
For detailed information regarding the Array profile, refer to SMI-S at http://www.snla.org.
Supported Methods
Table 17 Method for TPD_StorageSystem
Method Description
Array Profile 19
Table 18 Block Services Package CIM Classes (continued)
Class Description
Supported Methods
Table 19 (page 20) - Table 22 (page 20) shows the supported methods for the Block Services
Package:
Table 19 Methods for TPD_StorageCapabilities
Method Description
StorageSetting
There are eight types of StorageSetting:
Uint64 Snap space limit in bytes. If SpaceLimit (in bytes) is greater than
SpaceLimit zero, the space consumed by the storage element shall not exceed
the value of SpaceLimit. For TP StorageVolume, if
SpaceLimit is zero, allocation limit is not enforced (e.g. the
volume can grow until the system runs out of space).
Uint64 User space limit in bytes. If UserSpaceLimit (in bytes) is greater than
UserSpaceLimit zero, the space consumed by the storage element shall not exceed
the value of UserSpaceLimit. For TP StorageVolume , if
UserSpaceLimit is zero, allocation limit is not enforced (e.g.
the volume can grow until the system runs out of space).
Uint16 Describes how the elements are used. For example, if a new TP
IntendedUsage StorageVolume is used for snap shot, this value is 7. The default
value is 0 (“not specialized”).
Uint16 Generates a low space indication and applies only when creating
LowSpaceWarningThreshold a DynamicStoragePool. If non-zero, a low space indication is
generated when RemainingManagedSpace of
DynamicStoragePool <= ( TotalManagedSpace of
DynamicStoragePool * LowSpaceWarningThreshold
)/100. If it is zero, no indication is generated. Unit is in percentage.
This corresponds to the -aw option of the CLI createcpg
command.
Uint16 The type of thin provisioned pool used when StorageSetting is used
ThinProvisionedPoolType a goal for creating a thin provisioned pool. In other contexts, this
property is undefined. The possible values match the appropriate
values in
StorageConfigrationCapabilities.SupportedStorageElementTypes.
ThinlyProvisioned F NULL T F F F
uint32 CreateOrModifyStoragePool
[In] String ElementName,
[Out] CIM_ConcreteJob ref Job,
[In] StorageSetting ref Goal,
[In, Out] Uint64 Size,
[In] String InPools[],
[In] String InExtents[],
[In, Out] DynamicStoragePool ref Pool);
1 Not supported
2 Unknown
3 Timeout
4 Failed
5 Invalid parameter
6 In Use
Uint64 This is the actual allocated size to the DSP (not the logical
TotalManagedSpace size). Logical size is denoted by SpaceLimit.
(bytes)
(bytes)
SpaceLimit -sdgl
LowSpaceWarningThreshold -aw
AllocationUnit -sdgs
HighAvailability -ha
ChunkletLocationPreference -ch
StorageCapabilities of DynamicStoragePool
After a DSP is created, an instance of StorageCapabilities is created, and the
StorageSetting properties that are used to create the DSP are copied into this
StorageCapabilities, which is then bound to the DSP via a CapabilitiesOfStoragePool
association.
StoragePoolConfigurationCapabilities of DynamicStoragePool
After a DSP is created, an instance of StoragePoolConfigurationCapabilities is created
and is associated to the DSP via a CapabilitiesOfStoragePoolConfiguration association.
As a matter of fact, each StoragePool in the system (TPD_StoragePool, either primordial or
concrete, TPD_DynamicStoragePool and TPD_DeltaReplicaStoragePool) has an
associated StoragePoolConfigurationCapabilities instance.
There are four instances per system, one for each kind of StoragePool: PrimordialPool,
ConcretePool, DynamicStoragePool and DeltaReplicaStoragePool.
Method Signature
The method signature is described as follows:
uint32 CreateOrModifyElementFromStoragePool (
[In] String ElementName,
[In,
Values {"StorageVolume", "StorageExtent", "LogicalDisk",
"ThinlyProvisionedStorageVolume",
“ThinlyProvisionedLogicalDisk",
"ThinlyProvisionedAllocatedStoragePool",
4 Failed
5 Invalid Parameter
4097 Size Not Supported A volume with the specified size cannot
be created or grown.
This method is useful for creating a default volume that has snap space without the need for
specifying a Goal parameter.
This method can also be used to create fully-provisioned volumes that draw user space from a DSP.
NOTE: This method does not support creating a legacy volume where user space is allocated
from a concrete “all” pool, although CreateOrModifyElementFromStoragePool still supports
this.
uint32 TPD_CreateOrModifyElementFromStoragePools (
[In] String ElementName,
[In,
Values {"StorageVolume","ThinlyProvisionedStorageVolume"},
ValueMap{"2", "5"}]
Uint16 ElementType,
[Out] CIM_ConcreteJob ref Job,
[In] CIM_StorageSetting ref Goal,
[In] CIM_StoragePool ref InPools[],
[In, Out] Uint64 Size,
[In, Out] CIM_LogicalElement ref TheElement);
1 Not supported
2 Unknown
3 Timeout
4 Failed
5 Invalid Parameter
6 In Use
CreateSetting
Table 33 Method for TPD_StorageCapabilities.CreateSetting
Method Description
This method returns a new instance to the client with default property values. There are four instances
of StorageCapabilities (one for each RAID type). The type of StorageSetting the client
wants to create is determined by the referenced StorageCapabilities. For example, if the
client invokes CreateSetting() method on a RAID-0 StorageCapabilities instance, then
a RAID-0 StorageSetting instance is returned. The client can use intrinsic method
ModifyInstance() to customize the properties as needed.
Uint32 CreateSetting (
[in] uint16 SettingType,
[Out] CIM_StorageSetting REF NewSetting);
0 Method Completed OK
4 Failed
5 Invalid Parameters
Size (bytes) Minimum 268435456 (256 MB) Must be larger than the current
volume size; NULL means the volume
is not grown.
Legacy volume with static snap space, 1. ElementType == NULL or Not supported.
where user and snap space both draw StorageVolume (2).
from the same “3PAR:all-FC” (default), 2. InPool == NULL or concrete pool.
“3PAR:all-NL”, or “3PAR:all-SSD” 3. Either Goal.SnapVolumeSize
concrete pool. or
Goal.SnapVolumePercentage
is set (both cannot be set).
Legacy TPVV, where user and snap Not supported. Not supported.
space both draw from the same DSP.
NOTE: Consult “Modifiable StorageSetting Properties for StorageVolume” (page 37) for the list
of modifiable properties of StorageSetting.
Policy -pol
GeometrySectorsPerTrack -spt
GeometryHeadsPerCylinder -hpc
ThinlyProvisioned -tpvv
Uint64 The number blocks that are currently allocated and visible
ProvisionedConsumableBlocks to host. For example, a RAID-10 volume with
ConsumableBlocks = 100 GB, but only 10 GB is
actually used, then ProvisionedConsumableBlocks
is 10 GB. Applicable only to a thin-provisioned volume.
(percentage)
(percentage)
Indications
Following alert indications relating to thin provisioning are supported:
CIM Classes
The model diagrams and the CIM classes involved in implementing Copy Services. The classes
are listed in alphabetical order.
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. For a fully-provisioned volume with static snapspace, the
TPD_AllocatedFromStoragePool association also links the
TPD_DeltaReplicaStoragePool with the concrete StoragePool; whether this is all-FC,
all-NL, or all-SSD depends on the device type of the source volume.
For CPVV and TPVV, TPD_DeltaReplicaStoragePool is associated to the
DynamicStoragePool (DSP) from which the SA and SD spaces are allocated via
TPD_AllocatedFromStoragePool.
TPD_AssociatedJobMethodResult
Association between TPD_ConcreteJob and TPD_MethodResult. Refer to Section (page 48)
for more details.
Copy Services Subprofile 47
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.
TPD_ConcreteJobInstModification
This is a indication class, sub-classed from CIM_InstModification, which indicates completion
of a job.
TPD_DeltaReplicaStoragePool
This StoragePool class is instantiated upon allocation of SA and SD space of a volume. The SA
and SD spaces are modeled as TPD_DeltaReplicaStoragePool from which virtual copy
snapshots (delta replica) can be allocated and created. This class is a subclass of
CIM_StoragePool.
CIM_StoragePool.GetSupportedSizeRange() method, which is supported in
TPD_StoragePool, is not supported for TPD_DeltaReplicaStoragePool.
TPD_ElementSettingData
Association between TPD_VolumeSetting and the replica volume.
TPD_HostedStoragePool
Association is added between TPD_StorageSystem and each
TPD_DeltaReplicaStoragePool.
TPD_MethodResult
This is the class that describes the result of a job. Refer to Section (page 48) for more details.
TPD_OwningJobElement
Association between TPD_StorageConfigurationService and TPD_ConcreteJob. Refer
to section Section (page 48) for more details.
TPD_ReplicaPoolForStorage
Association between the TPD_DeltaReplicaStoragePool and the source StorageVolume
from which the SA and SD spaces are created.
TPD_StorageCapabilities
If TPD_DeltaReplicaStoragePool exists, then a TPD_CapabilitiesOfStoragePool
association is created between it and the TPD_StorageCapabilities. For example, if the
source volume is of RAID-10, then the RAID-10 TPD_StorageCapabilities are associated
to the TPD_DeltaReplicaStoragePool.
TPD_StorageConfigurationCapabilities
Relevant properties are:
TPD_StorageConfigurationService
The following new SMI-S methods are implemented:
1. CreateReplica() – used for creating virtual copy
2. AttachOrModifyReplica() – used for creating physical copy to an existing volume
3. ModifySynchronization() – used for promotion of physical and virtual copies,
resynchronization of physical copy and halting physical copy or snapshot promotion. The
input parameter Operation specifies the kind of operation to perform. Valid values for
Operation are:
a. Resync – Causes a snapshot to be restarted as a new PIT (Point-in-Time) image (resync
physical copy)
b. Restore – Copies a snapshot to the source element (promote virtual copy)
c. Detach – Removes the association between the source and replica elements (promote
physical copy)
d. Start Copy – Starts a background copy operation for a replica (start copy on an existing
physical copy)
e. Stop Copy – Stops a background copy operation (halting physical copy)
In addition, a new method is defined that mirrors the CLI updatesnapspace command:
4. UpdateDeltaSnapshotSpace() – used to start calculation of SA/SD space used by a
virtual copy snapshot volume.
PersistentReplicasSupported TRUE
MaximumReplicasPerReadOnlySource 0 Max # of RW 0
snapshots
TPD_StorageSetting
The provider screens the following properties when a CIM client is creating or modifying a
TPD_StorageSetting object, since only one value is allowed for each. Any other values passed
in by the client results in an Invalid Parameter exception. These properties are initialized with the
allowed value upon creation.
1. PersistentReplica – True indicates the associated replicas persist during power off or
system reset. Only TRUE is accepted since we do not support transient replicas. Applicable
only for those settings that are associated to replica volumes.
2. IntendedUsage – Describes the use of the storage elements associated with this
StorageSetting. This can only be set to “Not Specialized” (0) since we do not support specifying
a StorageSetting as a goal when creating physical or virtual copy.
Synchronized Synchronized/Complete
TPD_SystemVolume
Associations between TPD_StorageSystem and StorageVolumes, including physical copies
and snapshots.
TPD_DynamicStoragePool
TPD_DeltaReplicaStoragePool associated to a CPVV is allocated from
DynamicStoragePool.
CreateOrModifyStoragePool
DeltaReplicaStoragePool can also be created by CreateOrModifyStoragePool method (see Section
(page 29) for the method signature). Following table outlines the parameters for this method:
Table 43 Creating StoragePool using CreateOrModifyStoragePool
Type of Pool CreateOrModifyStoragePool
Parameters
Note that using this way of creating DeltaReplicaStoragePoolis a two-step process: (1)
create the volume, then (2) create the DeltaReplicaStoragePool.
Associations
TPD_ReplicaPoolForStorage
The TPD_DeltaReplicaStoragePool is associated to the source StorageVolume via
TPD_ReplicaPoolForStorage.
TPD_AllocatedFromStoragePool
New instances of TPD_AllocatedFromStoragePool are created that associate the
TPD_DeltaReplicaStoragePool to:
• the parent StoragePool. For non-CPVV, the parent pool is a concrete pool, and whether
this is all-FC, all-NL, or all-SSD depends on the device type of the source volume. For CPVV,
the parent pool is a DSP.SpaceConsumed property in either case is the sum of raw snap
volume size and raw admin size. SpaceLimit and SpaceLimitThresholdWarning are
valid only for CPVV.
• all virtual copy snapshot volumes that are created from the source volume. SpaceConsumed
property for each association in this case is the space consumed by the snapshot.
Capacity Calculations
Non-CPVV
TotalManagedSpace of the TPD_DeltaReplicaStoragePool equals to the raw SD space.
Space used by SA is not included in TotalManagedSpace, but is included in the
TPD_AllocatedFromStoragePool.SpaceConsumed value, so to deduce the raw SA space,
one can deduct Pool.TotalManagedSpace from SpaceConsumed. The
UpdateDeltaSnapshotSpace() method should be called to prevent the value of
RemainingManagedSpace from getting too stale.
SpaceConsumed by Replica Pool from Concrete Pool = raw SD size + raw SA size
CPVV
When a base volume is created with a StorageSetting in which TSPName is specified, the
resulting TPD_DeltaReplicaStoragePool is allocated from the DSP. A
TPD_AllocatedFromStoragePool association is created between the
TPD_DeltaReplicaStoragePool and the parent DSP.
TPD_AllocatedFromStoragePool.SpaceLimit and
TPD_AllocatedFromStoragePool.SpaceLimitThresholdWarning of this association
corresponds to the allocation limit (-al) and allocation warning (-aw) respectively.
UpdateDeltaSnapshotSpace() Method
It is important to note that calculation of space consumed by a snapshot volume can potentially be
a long process, and it is not updated real-time by sysmgr. One has to issue the command
“updatesnapspace<snapshot vol name>” from CLI (from which a task is generated) to start
the calculation of SA/SD space used by a snapshot. Hence, when a CIM client retrieves the
RemainingManagedSpace value for a SA/SD pool or the SpaceConsumed value for a snapshot
volume, it can potentially be stale if updatesnapspace has not been done for a while. As a
result, a new extrinsic method is defined in TPD_StorageConfigurationService class called
UpdateDeltaSnapshotSpace() which mirrors the CLI updatesnapspace command.
A client wishing to obtain a more accurate picture of the aforementioned capacity values must first
call this method, monitor the returned job for its completion, then finally get at the properties.
uint32 UpdateDeltaSnapshotSpace(
[In] TPD_StorageVolume ref SnapshotVolume[],
[Out] TPD_ConcreteJob ref Job);
• SnapshotVolume: Array of references to the snapshot volume to update. If NULL, then all
snapshots are updated.
• 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.
4 Failed
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. Modification of Operational Status for a Concrete Job to Complete and OK – update successful.
2. Modification of Operational Status for a Concrete Job to Complete and Error – update failed.
3. Modification of Job Status for Concrete Job – is generated if the job is started. For this, the
task framework must be enhanced to support component state change events.
The type of indication generated is TPD_ConcreteJobInstModification, sub-classed
from CIM_InstModification.
Physical Copy
StorageSynchronized
A TPD_StorageSynchronized association is instantiated the moment a vv copy process is
started. This associates the target volume with the source volume. The values of this instance are
listed in the following table. For a CopyType of UnSyncUnAssoc, an instance of
TPD_StorageSynchronized is maintained while the copy is taking place, but is relinquished
once the copy is finished.
Table 45 StorageSynchronized Property Values for a Physical Copy
Property Value
UnsyncUnAssoc (5)
Creates an unsynchronized copy but do not maintain an
association to the source
SyncMaintained False
Synchronization is not maintained between replica and
source volume.
SMI-S METHOD
• 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.
• SourceElement: Reference to the base StorageVolume to copy from.
• TargetElement: Reference to the base StorageVolume to copy to.
• CopyType: Can only be “UnsyncAssoc” (4) or “UnsyncUnAssoc” (5)
• UnsyncAssoc: Creates an unsynchronized physical copy that is associated to the source
StorageVolume. This creates a snapshot volume as a side-effect. This is equivalent to the
CLI command “createvvcopy –p <parvol> -s <destvol>”.
• UnsyncUnAssoc: Creates an unsynchronized physical copy of the source StorageVolume
and does not maintain the source association after completing the copy operation. This is
equivalent to the CLI command “createvvcopy –p <parvol> <destvol>”, i.e., without
the –s option.
• Goal: The StorageSetting properties to be created or modified for the target
StorageVolume. We does not support changing the volume characteristics during
createvvcopy, so this can only be NULL. A Non-NULL value is ignored.
• ReplicationPipe: The NetworkPipe element that scopes the remote mirror pair. This is only
for remote copy, which is not supported in Phase I, so this can only be NULL.
SMI-S also specifies that providers have to accept the AttachReplica() method, which is
defined in an earlier version of the copy services subprofile, for backward compatibility.
uint32 AttachReplica(
[Out] CIM_ConcreteJob ref Job,
[In, REQ] CIM_ManagedElement ref SourceElement,
[In, REQ] CIM_ManagedElement ref TargetElement,
[In, REQ,
Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc"},
ValueMap {"2", "3", "4", "5"}]
Uint16 CopyType);
0 Success
The method execution, if successful, always returns 0x1000, which means that job has started. A
client can either monitor Job.OperationalStatus for job completion or wait for the arrival of
modification of OperationalStatus for a ConcreteJob to indicate ‘Complete’ and ‘OK’ or
‘Complete’ and ‘Error’.
If the operation is of CopyType UnSyncAssoc, a resync snapshot of the physical copy is created.
This snapshot has the same characteristics as a regular snapshot.
STATE TRANSITIONS
Table 47 (page 60) shows the values for SyncState and WhenSynced during various stages of
physical copy creation. Internal vvol_t volume state flags (v_overall_state) are mapped to each
SyncState.
Table 47 State Transitions for Physical Copy Creation
Operation SyncState WhenSynced
RESYNCHRONIZATION
createvvcopy –r <destvol>
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.
uint32 ModifySynchronization(
[In, REQ,
Values {"Detach", "Fracture", "Resync", "Restore",
"Prepare", "Unprepare", "Quiesce", "Unquiesce",
"Reset to Sync", "Reset to Async", "Start Copy",
"Stop Copy"},
ValueMap {"2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13"}]
Uint16 Operation,
[Out]CIM_ConcreteJob ref Job,
[In, REQ] CIM_StorageSynchronized ref Synchronization);
◦ Reset to Sync: Changes the CopyType value of a mirror replica from “Async” to “Sync”.
Not supported.
◦ Reset to Async: Changes the CopyType value of a mirror replica from “Sync” to “Async”.
Not supported.
The method execution, if successful, always returns 0x1000, which means that job has started. A
client can either monitor Job.OperationalStatus for job completion or wait for the modification
of OperationalStatus for a ConcreteJob to indicate Complete and OK or Complete and
Error.
Table 49 (page 62) shows the values for SyncState and WhenSynced during various stages of
physical copy resynchronization.
Table 49 State Transitions for Physical Copy Resynchronization
Operation SyncState WhenSynced
RESYNCHRONIZATION
CLI EQUIVALENCE
promotevvcopy
SMI-S METHOD
A physical copy can be promoted with the source volume by a CIM client using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Detach (2). After a successful Detach operation, the
StorageSynchronized association between the source and target volume is relinquished and
the target volume becomes an independent base volume. The Detach operation is synchronous
and does not require a job.
Table 50 (page 63) shows the values for SyncState and WhenSynced during various stages of
physical copy promotion.
SMI-S METHOD
Copy can be done on an existing physical copy using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Start Copy (12).
The method execution, if successful, always returns 0x1000, which means that job has started.
See “StorageReplicationCapabilities” (page 59) for possible return values.
STATE TRANSITIONS
Table 51 (page 63) shows the values for SyncState and WhenSynced during various stages of
start physical copy.
Table 51 State Transitions for Physical Copy to an Existing Copy
Operation SyncState WhenSynced
createvvcopy –halt
SMI-S METHOD
Copy can be halted using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Stop Copy(13).
This operation is synchronous and does not require a job. The job that is produced as a side-effect
of the physical copy can also be terminated by TPD_ConcreteJob.RequestStateChange.
STATE TRANSITIONS
Table 52 (page 64) shows the values for SyncState and WhenSynced during various stages of
halting a physical copy.
Halt Copy Failed (This indicates that Frozen (14) New sync time
the halt has failed and the copy was
allowed to finish.)
Virtual Copy
StorageSynchronized
A TPD_StorageSynchronized association is instantiated after the virtual copy volume is created.
This associates the target volume with the source volume. A virtual copy volume is also created as
a side-product of creating a physical copy that can be resynchronized at a later time. Table 53
(page 64) shows the property values of this instance.
Table 53 StorageSynchronized Property Values for a Virtual Copy
Property Value
SyncMaintained False
Synchronization is not maintained between replica and
source volume.
StorageReplicationCapabilities
The ability to create a virtual copy is described by the following instance of
TPD_StorageReplicationCapabilities:
• UnSyncAssoc-Delta – describes the capability of our provider to create an unsynchronized
delta snapshot replica that maintains an association with the source volume
CREATION
CLI EQUIVALENCE
createsv
SMI-S METHOD
A client can create a physical copy from the source volume by using the
TPD_StorageConfigurationService.CreateReplica() method.
uint32 CreateReplica(
[In] string ElementName,
[Out] CIM_ConcreteJob ref Job,
[In, REQ] CIM_LogicalElement ref SourceElement,
[Out] CIM_LogicalElement ref TargetElement,
[In] CIM_StorageSetting ref TargetSettingGoal,
[In] CIM_StoragePool ref TargetPool,
[In, REQ,
Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc"},
ValueMap {"2", "3", "4", "5"}]
Uint16 CopyType);
4 Failed
STATE TRANSITIONS
Table 55 (page 66) shows the values for SyncState and WhenSynced during various stages of
the virtual copy creation.
Table 55 State Transitions for Virtual Copy Creation
Operation SyncState WhenSynced
PROMOTION
CLI EQUIVALENCE
promotesv
SMI-S METHOD
Virtual copy promote can be done using the
TPD_StorageConfigurationService.ModifySynchronization() method with the
Operation parameter set to Restore (5).
The method execution, if successful, always returns 0x1000, which means that job has started.
STATE TRANSITIONS
Here are the values for SyncState and WhenSynced during various stages of promoting virtual
copy.
Table 56 State Transitions for Virtual Copy Promote
Operation SyncState WhenSynced
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.
Table 57 State Transitions for Halting Virtual Copy Promote
Operation SyncState WhenSynced
STATE TRANSITIONS
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. The input parameter RequestedState can only be
set to Terminate(4), since the InformOS task framework only supports task canceling.
uint32 RequestStateChange(
[In, REQ,
Values {"Start", "Suspend", "Terminate", "Kill", "Service"},
ValueMap {"2", "3", "4", "5", "6"}]
Uint16 RequestedState,
[In] dateTime TimeoutPeriod);
◦ Suspend: stops the job temporarily which can be resumed; not supported.
◦ Terminate: stops the job cleanly and orderly; this is the only supported value.
4 Failed
5 Invalid Parameter
4096 Method Parameters Checked - This is the normal successful return case,
Transition Started as a task may not be terminated
immediately.
uint32 GetError(
[Out,
EmbeddedInstance ("CIM_Error"}]
String Error);
• Error: If the OperationalStatus on the Job is not “OK”, then this method returns a CIM
Error instance. Otherwise, when the Job is "OK", null is returned.
Table 59 Return Values for GetError()Operation
ValueMap Values Explanation/Notes
0 Success
5 Invalid Parameter
removetask
DELETEINSTANCE
An instance of TPD_ConcreteJob can be deleted using the intrinsic method
TPD_ConcreteJob.DeleteInstance(). If not deleted, a job exists indefinitely.
TPD_METHODRESULT
◦ ReturnValue - contains string representation of the method's return value, e.g., “Failed”
◦ ReturnValueType - the type of the method return value. This is always “uint32” (9) since
all replication methods that we support have a return value type of uint32.
TPD_OwningJobElement
Association between TPD_StorageConfigurationService and TPD_ConcreteJob.
TPD_AffectedJobElement
Association between TPD_ConcreteJob and one or more TPD_StorageVolume affected by
the job. The affected volumes are the source and target volumes, with the exception of update
snapspace task, where the affected volumes are those snapshots that are being updated.
TPD_AssociatedJobMethodResult
Association between TPD_ConcreteJob and TPD_MethodResult.
Indications
The following Job Control subprofile indication is supported:
Supported Methods
Table 61 Methods for TPD_SystemLocation
Method Description
TPD_NodePairRedundancySet Members of this set are node pairs that make up the HP
3PAR Storage System cluster.
Supported Methods
None.
Location Subprofile 71
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.
Supported Methods
Table 64 Methods for TPD_StorageSystem
Method Description
Supported Methods
Table 66 (page 73) - Table 68 (page 73) shows the supported methods of the masking and mapping
subprofile:
Table 66 Methods for TPD_StorageSystem
Method Description
• Host-See SPC, its deviceID format is HS:<host id>, where the <host_id> is the system
assigned ID of the host where initiator port(s) reside. For this kind of view, a volume is exposed
to the specified host regardless of the target port. The host can contain multiple initiator ports,
hence this kind of view can have associations to more than one StorageHardwareIDs. This
view can also have associations to multiple StorageVolumes and target ports.
◦ Supported ExposePaths Use Cases:
– Create new view
– Add LU to view
– Add initiator port to view
• Port-Present SPC, its deviceID format is PP:<n:s:p>, where <n:s:p> is the notation of the
target port. For this kind of view, a volume is exposed through the specified target port
regardless of the host the port is connected to or zoned with. The host can contain multiple
initiator ports, hence this kind of view can have associations to more than one
Example 1 shows that there are views from 2 FC hosts with same volumes:
• SPC_1: Volume_1 is exported to Server 1 via Port_WWN_1 (target port on the storage system)
as LUN 1 and Volume_2 as LUN 2. The host HBA is represented as Host_WWN_1.
• SPC_2: Volume_2 is exported to Server 2 via Port_WWN_2 (target port on the system) as
LUN 5 and Volume_2 as LUN 6. The host HBA is represented as Host_WWN_2. Different LU
numbers are used in this example, but they can be assigned the same LUNs as in SPC_1.
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. The following settings are fixed and cannot be modified:
• PortsPerView: All Ports share the same view (4); this reflects the fact that Host-See SPC is
supported which means that TargetPortIDs do not need to be specified when calling
ExposePaths.
• ClientSelectableDeviceNumbers: true; LUN ID can be selected by a client.
• AttachDeviceSupported: false.
• OneHardwareIDPerView: false.
• UniqueUnitNumbersPerPort: false.
ControllerConfigurationService
ControllerConfigurationService (CCS) is the main class of Masking and Mapping (MM)
subprofile. This class enables clients to export and delete VLUNs. A client can get a handle of CCS
by using a HostedService association from ComputerSystem (StorageSystem).
Table 69 (page 77) provides a brief summary of the CSS methods and their corresponding CLI
commands:
Table 69 CCS Methods and CLI Command Equivalents
Methods CLI Equivalences Comments
uint32 ExposedPaths (
[Out] CIM_ConcreteJob ref Job,
[In] String LUNames[],
[In] String InitiatorPortIDs[],
[In] String TargetPortIDs[],
[In] String DeviceNumbers[],
[In] unit16 DeviceAccesses[],
[In/Out] CIM_SCSIProtocolController ref ProtocolController[],
[In] boolean Override,
[In] boolean NoVCN,
[Out] String ResultDescriptions[]);
• Job: This is ignored since storage system does not support job control.
• LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist. The
members of this array must match the Name property of StorageVolume instances.
• InitiatorPortIDs[]: IDs of initiator ports (host HBA WWNs or iSCSI names). If an existing
StorageHardwareID instance exist, it is used. If no StorageHardwareID instance matches,
one is implicitly created as is usually done from SMI-S.
• TargetPortIDs[]: IDs of target ports (the system’s front-end FC port). If this is NULL or contains
an empty array during creation mode, then a host-sees SPC is created; if array contains actual
values, then a matched-set SPC is created
• DeviceNumbers[]: 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. If this parameter is NULL,
the logical unit number is assigned by the system.
• DeviceAccesses[]: 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. This is mandatory only because SMI-S requires it. For the
storage system, access permissions cannot be specified when creating a VLUN. Rather, each
volume has its own access permission. The ControllerConfigurationService provider
checks the passed in DeviceAccesses values against the permission of the specified LU
(volume), and the operation fails if the two values do not match.
• ProtocolControllers: An array of references to SCSIProtocolControllers (SPCs). On
input, this can be null, or contains exactly one element; there may be multiple references on
output. If null on input, the instrumentation creates one or more new SPC instances. If SPC is
included on input, this can either be a reference to TPD_SCSIController for an FC host
or TPD_iSCSIController orTPD_iSCSICNode for an iSCSI host.
Parameters “Override” and “NoVCN” are optional. All other combinations of the parameters are
rejected.
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. The
members of this array must match the Name property of the StorageVolume instances.
• InitiatorPortIDs[]: IDs of initiator ports (host HBA WWNs)
• TargetPortIDs[]: IDs of target ports (the storage system’s front-end FC port).
• DeviceNumbers[]: A list of logical unit numbers corresponding to the logical unit in the LUNames
parameter. This is a vendor-specific extension and therefore is optional.
• ProtocolControllers[]: An array of references to SCSIProtocolControllers (SPCs). On
input, this contains exactly one element; there may be multiple references on output. If SPC is
included on input, this can either be a reference to TPD_SCSIController for FC host or
TPD_iSCSIController orTPD_iSCSINode for iSCSI host.
• NoVCN: Do not issue a VLUN (Virtual Logical Unit Number) Change Notification (VCN) after
removal. For direct connect or loop configuration, a VCN consists of a fibre channel Loop
Initialization Primitive (LIP). For fabric configuration a VCN consists of Registered State Change
Notification (RSCN) being sent to the fabric controller. This parameter is a vendor-specific
extension. The default value is false.
• ResultDescriptions[]: An array of descriptive text of the result of the operation, with each entry
containing the result of each hide path operation. This parameter is a vendor-specific extension
.
Table 71 HidePaths Use Cases
Use Cases LUNames InitiatorPortIDs TagetPortIDs ProtocolControllers
(On input)
Hide full paths from a Mandatory Mandatory Mandatory Contains a single SPC
view ref
Parameters DeviceNumbers and NoVCN are optional. All other combinations of the parameters
are rejected.
HideDefaultLUs
Use of HideDefaultLUs has been deprecated. Please use HidePaths instead.
uint32 ExposedLUsToStorageHardwareIDCollection (
[Out] CIM_ConcreteJob ref Job,
[In] String LUNames[],
[In] String HostNames[],
[In] string TargetPortLPIDs[],
[In] String DeviceNumbers[],
[In] unit16 DeviceAccesses[],
[In/Out] CIM_SCSIProtocolController ref ProtocolController[],
[In] boolean Override,
[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. The
members of this array must match the Name property of StorageVolume instances.
• HostNames[]: An array of names for the hosts (StorageHardwareIDCollection). Instances
MUST already exist. The members of this array MUST match the ElementName property of
TPD_StorageHardwareIDCollection.
• TargetPortLPIDs[]: An array of target port LPIDs, in '<node>:<slot>:<port>' format. If this
is empty, then host-sees vlun is created; otherwise matched set vlun(s) is created.
• DeviceNumbers[]: 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. If this parameter is NULL,
the logical unit number will be assigned by the system.
• DeviceAccesses[]: 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. This is mandatory only to be consistent with other methods.
For the storage system, access permissions cannot be specified when creating a VLUN. Rather,
each volume has its own access permission. The ControllerConfigurationService
provider checks the passed in DeviceAccesses value against the permission of the specified
LU (volume), and the operation fails if the two values do not match.
• ProtocolControllers[]: An array of references to SCSIProtocolControllers (SPCs). On
input, this can be null, or contain exactly one SPC; there may be multiple references on output.
If null on input, the instrumentation creates one or more new SPC instances. If SPC is included
Parameters “Override” and “NoVCN” are optional. All other combinations of the parameters are
rejected.
There is one use case of ExposeLUsToStorageHardwareIDCollection() method (See
Table 72 (page 82)).
• Creating a new view: this creates host-sees VLUN if TargetPortLPIDs is NULL, or matched-set
VLUN if TargetPortLPIDs is specified. ProtocolControllers parameter must be NULL.
uint32 HideLUsFromStorageHardwareIDCollection (
[Out] CIM_ConcreteJob ref Job,
[In] String LUNames[],
[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. The
members of this array must match the Name property of StorageVolume instances.
• DeviceNumbers[]: A list of logical unit numbers corresponding to the logical unit in the LUNames
parameter. This is a vendor-specific extension and is optional.
Parameters “DeviceNumbers” and “NoVCN” are optional. All other combinations of the parameters
are rejected.
The use cases are:
• Remove volumes from a view: the volume has been exported to an SPC, it’ll be removed from
the SPC (e.g., it won’t be accessible from host HBA anymore).
StorageHardwareIDManagementService
StorageHardwareIDManagementService provides methods for manipulating instances of
StorageHardwareIDs and manipulating the trust of these IDs in the underlying storage system.
This class enables clients to create and delete StorageHardwareID, create
StorageHardwareIDCollection and add StorageHardwareID to a collection. A client
can get a handle of StorageHardwareIDManagementService by using a HostedService
association from ComputerSystem (StorageSystem).
Here is a brief summary of the methods and their corresponding CLI commands:
Table 74 StorageHardwareIDManagementService Methods and CLI Equivalents
Methods CLI Equivalence Comments
StorageHardwareIDCollection.DeleteInstance removehost hostname Delete the entire host and any path to
the host (StorageHardwareID).
uint32 CreateStorageHardwareID (
[In] String ElementName,
[In] String StorageID,
[In] Uint16 IDType,
[In] String OtherIDType,
[In] CIM_StorageClientSettingData REF Setting,
[Out] CIM_StorageHardwareID REF HardwareID);
• ElementName: This is the name of the host to create the host HBA WWN/iSCSI name on. If
this is NULL, a new host with a system-generated ElementName will be created. If a host
already exists with the same ElementName, then the StorageID will be added to that host.
Otherwise a new host will be created with the ElementName and StorageID will be added
to the host.
• StorageID: WWN of the FC host HBA or iscsiName of the iSCSI host HBA to create. This
is mandatory.
• IDType: Type of StorageID property. This must be 2 (Port WWN for FC target port) or 5
(iscsiName for iSCSI target port); all other values are rejected. This is mandatory.
• OtherIDType: Description of the type of StorageID if IDType is 1 (Other). Since only IDType
of 2 and 5 is accepted, this value is ignored.
• Setting: Reference to the StorageClientSettingData containing the OSType appropriate
for this initiator. This refers to an TPD_StorageClientSettingData which is equivalent
to a host persona; if not specified then the host persona defaults to Generic. If this operation
is being applied to a StorageID on an existing host with a different Setting, then the host
will be reconfigured to use this Setting.
• HardwareID: Reference to the new StorageHardwareID instance. Must be NULL on input.
uint32 DeleteStorageHardwareID (
[In] CIM_StorageHardwareID REF HardwareID);
uint32 CreateStorageHardwareIDCollection (
[In] String ElementName,
[In] String HardwareIDs[],
[In] CIM_StorageClientSettingData REF Setting,
[In] String Domain,
[Out] CIM_SystemSpecificCollection REF Collection);
• ElementName: This is the name of the host to create the host HBA WWN/iscsiName on. The
host must not have existed. This corresponds to the ElementName property of the
StorageHardwareID instance. If the host already exist, use
AddHardwareIDsToCollection instead. This is mandatory.
• HardwareIDs: A list of WWN’s/iscsiNames to assign to the host. If this is null, only the host
(without WWN/iscsiName assigned) is created.
• Setting: Reference to the StorageClientSettingData containing the OSType appropriate
for this initiator. This refers to an TPD_StorageClientSettingData which is equivalent
to a host persona; if not specified then the host persona defaults to Generic.
• Domain: Name of the domain the host should belong to
• Collection: Reference to the new StorageHardwareIDCollection (host) instance. Must
be NULL on input.
uint32 AddHardwareIDsToCollection (
[In] String HardwareIDs[],
[In] CIM_SystemSpecificCollection REF Collection);
uint32 SetISCSICHAP (
[In] String InitiatorCHAPName,
[In] String TargetCHAPName,
[In] uint16 InitiatorSecretType,
[In] uint16 TargetSecretType,
[In] String InitiatorSecret,
[In] String TargetSecret,
[In] CIM_SystemSpecificCollection REF Collection);
RemoveISCSICHAP
This method removes just the target host CHAP secrets, or both the target and the initiator host
CHAP secrets.
The method signature is described below:
uint32 RemoveISCSICHAP (
[In] Uint16 RemovalScope,
[In] CIM_SystemSpecificCollection REF Collection);
• RemovalScope: Remove target secret only or both initiator and target secrets. Valid values are
1: remove target CHAP only, 2: remove both initiator and target CHAP Defaults to 2 which
means remove both.
• Collection: A reference to the StorageHardwareIDCollection (host). This is mandatory.
StorageHardwareIDCollection.ModifyInstance
The intrinsic method ModifyInstanceis used to modify persona or domain of the host.
SAPAvailableForElement
This class replaces PrococolControllerForPort in SMI-S 1.0.2.
TPD_SAPAvailableForElement associates TPD_SCSIPrococolController to
TPD_SCSIPrococolEndPoint (FC target port). When a host is directly attached to the storage
system, SAPAvailableForElement represents a one-to-one relationship between SPC and
SCSIProtocolEndPoint because only one host can connect to one target port. When one
storage system port is connected to a switch in a fabric, there can be multiple hosts connecting to
the storage system via the same target port (1-to-many association). When more than one the
storage system port are connecting to the fabric with multiple hosts in the same zone, this association
becomes n-to-n relationship.
iSCSISAPAvailableForElement
This class replaces PrococolControllerForPort in SMI-S 1.0.2.
TPD_iSCSISAPAvailableForElement associates TPD_iSCSIPrococolController to
TPD_iSCSIPrococolEndPoint (iSCSI target port). When a host is directly attached to the
storage system, iSCSISAPAvailableForElement represents a one-to-one relationship between
SPC and iSCSIPrococolEndPoint because only one host can connect to one target port.
When one storage system port is connected to a switch in a fabric, there can be multiple hosts
connecting to the system via the same target port (1-to-many association). When more than one
system port are connecting to the fabric with multiple hosts in the same zone, this association
becomes n-to-n relationship.
SCSIPrococolController
SCSIPrococolController (SPC) represents the view described in Section (page 73) for a
Fiber-channel host.
iSCSIPrococolController
iSCSIPrococolController (SPC) represents the view described in Section (page 73) for an
iSCSI host.
SCSIPrococolEndpoint
SCSIPrococolEndpoint (subclass of LogicalPort) models SCSI aspect of an FC port. It is
associated with one or more FCPorts. One instance of this class must be created for each target
port (connecting to host or fabric).
Table 75 Properties for
Properties Values
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).
Table 76 Properties Values for ISCSIPrococolEndpoint
Properties Values
ControllerForUnit
TPD_ControllerForUnit associates TPD_SCSIController for an FC host with
StorageVolumes. The LUN is modeled as the DeviceNumber property of
ProtocolControllerForUnit. The access permission is represented as DeviceAccess
property.
Table 77 Property Values for TPD_ControllerForUnit
Properties Values
string DeviceNumber LUN of the storage volume via the above protocol
controller.
iSCSIControllerForUnit
Similar to TPD_SCSIControllerForUnit, except that TPD_iSCSIControllerForUnit
associates TPD_iSCSIController for an iSCSI host with StorageVolumes.
StorageClientSettingData
An array has several fixed instances of this class, each corresponding to a host persona. Each
instance of StorageHardwareID and StorageHardwareIDCollection has an
ElementSettingData association with an instance of StorageClientSettingData that
corresponds to the persona of the host.
To change the StorageClientSettingData of a host, a client should do a ModifyInstance
of the TPD_StorageHardwareIDCollection.Setting property.
StorageHardwareID
StorageHardwareID (subclass of Identity) represents the host HBA WWN/iscsiName.
TPD_StorageHardwareIDCollection
This is sub-classed from SystemSpecificCollection is used to hold a set of
StorageHardwareID objects which can access storage volumes.
Supporting classes
AuthorizedPrivilege
AuthorizedPrivilege represents access permission (read-write) that a StorageHardwareID
(host HBA) is allowed on a SCSIProtocolController. This permission is associated with
StorageHardwareID via AuthorizedSubject.
Table 78 Property Values for AuthorizedPrivilege
Properties Values
Uint16[] Activities SMI-S: this array must contain 5 (read) and 6 (write).
PrivilegeForStorageHardwareIDCollection
PrivilegeForStorageHardwareIDCollection is subclassed from AuthorizedSubject
and is an association between StorageHardwareIDCollection and the access permission
(AuthorizedPrivilege) of the SPC that is exported to one or more of its member
StorageHardwareID.
AuthorizedSubject
AuthorizedSubject associates StorageHardwareID to its access permission
(AuthorizedPrivilege).
AuthorizedTarget
AuthorizedTarget is an association that ties AuthorizedPrivilege with
SCSIProtocolController.
ConcreteDependency
ConcreteDependency links the SCSIProtocolController to
ControllerConfigurationService.
SystemEndpoint (HostedAccessPoint)
TPD_SystemEndpoint (a subclass of CIM_HostedAccessPoint) is an association between
ComputerSystem and SCSIProtocolEndpoint.
ElementCapabilities
ElementCapabilities is an association between ComputerSystem and
ProtocolControllerMaskingCapabilities.
ElementSettingData
There are two kinds of ElementSettingData associations:
1. Association between StorageHardwareID and StorageClientSettingData.
2. Association between StorageHardwareIDCollection and
StorageClientSettingData.
MemberOfCollection
MemberOfCollection is an association between StorageHardwareID and
SystemSpecificCollection. It indicates that a specific StorageHardwareID (host hba
wwn/iscsiName) is a member of
SystemSpecificCollection/StorageHardwareIDCollection (host).
ProtocolControllerMaskingCapabilities
See Section (page 76).
Supported Methods
None
Supported Methods
Table 81 (page 91) describes the supported methods of the FIbre Channel initiator ports subprofile:
Table 81 Methods for TPD_StorageSystem
Method Description
Supported Methods
Table 83 (page 92) describes the supported methods of the iSCSI target ports subprofile:
Table 83 Methods for TPD_StorageSystem
Method Description
Supported Methods
Table 85 (page 93) lists the supported method of the Disk Drive Lite subprofile:
Table 85 Methods for TPD_StorageSystem
Method Description
CIM Classes
TPD_ReplicationGroup
TPD_ReplicationGroup is a volume set that can be used for local clones or snapshots.
Replication Group Key features:
• A group can be the source and/or the target of a copy operation, i.e., volume set
• Elements of a group may be optionally declared copy relations Consistent
• A group may contain zero elements (an empty group)
Volume set is represented by the TPD_ReplicationGroup class, derived from
CIM_ReplicationGroup class. This profile enables management of replication group itself
(create, delete, add member, remove member) as well as copying of the group.
SMI-S also specifies that synchronized groups can maintain replication relationship through the
GroupSynchronized association, as opposed to StorageSynchronized with single volume pair.
InForm OS tracks only the copy relationships between the individual volumes of a vvset, but not
of the vvset itself, hence GroupSynchronized association is not supported for local replication.
Table 88 Relevant Properties of ReplicationGroup Class
Properties Value Description
TPD_RemoteReplicationGroup
TPD_RemoteReplicationGroup is a copy group that is used for remote copy (remote mirrors),
sub-classed from CIM_ReplicationGroup. Please note that creation, modification and deletion of
RemoteReplicationGroup is not supported.
Table 89 Relevant Properties of RemoteReplicationGroup
Properties Value Description
Persistent True
ReplicationService
ReplicationService class contains extrinsic methods for group management as well as replication
management; the latter meant to replace Copy Services methods in StorageConfigurationService.
All extrinsic methods in this class return one of the following status codes:
• 0: (Job) Completed with no error
• 1: Method not supported
• 4: Failed
• 5: Invalid Parameter
• 4096: Method Parameters Checked - Job Started
Replication Services includes methods to create and delete a group, and methods to add elements
or pair of elements to an existing group(s) or to remove elements from a group. It can then utilize
Groups of elements to manage replication activities that include more than one source or target
element in a copy operation.
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. Parameters are:
• GroupName: If nameable, represents a user-friendly name for the group being created. This
parameter is mandatory and represents the name of the vv set. This will also become the value
in ElementName property of the resulting ReplicationgGroup instance.
• Members[]: An array of strings containing object references to the volumes to add to the group
-- order is maintained. If NULL, the group will be empty. Duplicates members are not allowed.
• Persistent: If true, the group must persist across Provider reboots (group is not temporary). We
only support persistent group, so the method will return an error if this is set to false.
• DeleteOnEmptyElement: If true and empty groups are allowed, the group will be deleted when
the last element is removed from the group. This can only be false, as deletion of empty vv
set can only be done manually, so the method will return an error if this is set to true.
• DeleteOnUnassociated: If true, the group will be deleted when the group is no longer associated
with another group. This can only be false, as deletion of non-synchronized vv set can only
be done manually, so the method will return an error if this is set to true.
• ServiceAccessPoint: Reference to access point information to allow the service to create a
group on a remote system. If NULL, the group is created on the local system. Since we do not
support remote copy yet, this has to be NULL.
• ReplicationGroup: If the method completes successfully, then the ReplicationGroup is a reference
to the group that is created.
ReplicationGroup.ModifyInstance
Use ModifyInstance method on a ReplicationGroup instance to change its ElementName and/or
Description property, equivalent to changing the name and comment using the CLI command,
setvvset.
DeletionGroup
uint32 ReplicationService.DeleteGroup(
[IN, Required] SNIA_ReplicationGroup REF ReplicationGroup.
[IN] CIM_ServiceAccessPoint REF ServiceAccessPoint,
[IN] boolean RemoveElements );
uint32 ReplicationService.AddMembers(
[IN] CIM_LogicalElement REF Members[],
[IN, Required] SNIA_ReplicationGroup REF ReplicationGroup,
[IN] CIM_ServiceAccessPoint REF ServiceAccessPoint );
uint32 ReplicationService.RemoveMembers(
[IN] CIM_LogicalElement REF Members[],
[IN] boolean DeleteOnEmptyElement,
[IN, Required] SNIA_ReplicationGroup REF ReplicationGroup,
[IN] CIM_ServiceAccessPoint REF ServiceAccessPoint );
Use this method to remove members from an existing replication group. Parameters are:
• Members[]: An array of strings containing object references to the elements to remove from
the replication group. Attempting to remove a member that is not in the replication group
returns an error.
• DeleteOnEmptyElement: If true and removal of the members causes the group to become
empty, the group will be deleted. If this parameter is not NULL, it overrides the group's property
DeleteOnEmptyElement.
◦ True - if the deleted member is the last element of the group, also delete the group itself
◦ False - if the deleted member is the last element of the group, do not delete the group
itself
• ReplicationGroup: A reference to an existing replication group.
• ServiceAccessPoint: NULL, which means the group is on the local system.
CreateElementReplica
uint32 ReplicationService.CreateElementReplica(
[IN] string ElementName,
[IN, Required] uint16 SyncType,
[IN] uint16 Mode,
[IN, Required] CIM_LogicalElement REF SourceElement,
Use to create (or start a job to create) a new storage object which is a replica of the specified
source storage object (SourceElement). Parameters are:
• ElementName: For virtual copy, this is the end user relevant name for the element being created.
The value will be stored in the 'ElementName' property for the created element. This is NULL
for physical copy.
• SyncType: Describes the type of copy that will be made. For example, Mirror, Snapshot, and
Clone.
• Mode: Describes whether the target elements will be updated synchronously or asynchronously.
• SourceElement: The source storage object which may be a StorageVolume
• SourceAccessPoint: NULL
• TargetElement:
◦ As an input, refers to a target element to use for a physical copy. This is NULL for virtual
copy.
◦ As an output, refers to the created target storage element (i.e., the replica). If a job is
created, the target element may not be available immediately.
• TargetAccessPoint: NULL
• ReplicationSettingData: NULL, as a client cannot modify the replication behavior of a copy
operation
• Job: If a Job is created as a side-effect of the execution of the method, then a reference to that
Job is returned through this parameter (may be NULL if job is completed).
• Synchronization: Refers to the created association between the source and the target element.
If a job is created, this parameter may be NULL, unless the association is actually formed.
• TargetSettingGoal: The definition for the StorageSetting to be maintained by the target storage
object (the replica). This is valid only for snapshot volumes (base ID, expiration timer, retention
timer).
• TargetPool: The underlying storage for the target element (the replica) will be drawn from
TargetPool if specified, otherwise the allocation is implementation specific. This is valid only
for snapshot volumes, and if specified, this must be the DeltaReplicaStoragePool that is
associated with the source StorageVolume.
• WaitForCopyState: Before returning, the method shall wait until this CopyState is reached.
Table 90 Parameter Matrix for CreateElementReplica
What to Create: Physical copy Virtual copy (snapshot volume)
Output Job? Y N
CreateGroupReplica
uint32 ReplicationService.CreateGroupReplica(
[IN] string RelationshipName,
[IN, Required] uint16 SyncType,
[IN] uint16 Mode,
[IN] SNIA_ReplicationGroup REF SourceGroup,
[IN] CIM_LogicalElement REF SourceElement,
[IN] CIM_ServiceAccessPoint REF SourceAccessPoint,
[IN, OUT] SNIA_ReplicationGroup REF TargetGroup,
[IN] uint64 TargetElementCount,
[IN] CIM_ServiceAccessPoint REF TargetAccessPoint,
[IN] uint16 Consistency,
[IN, EmbeddedInstance("SNIA_ReplicationSettingData")]
string ReplicationSettingData,
[IN] 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 group of storage objects which are replicas of the
specified source storage or a group of source storage objects (SourceElements), i.e., replications
of vv sets. Parameters are:
• RelationshipName: A mandatory user relevent name for the relationship between the source
and target groups or between a source element and a target group (i.e. one-to-many). For
SV, each of the name of the individual target volumes (ElementName) would be constructed
using RelationshipName as prefix followed by \"_n\" sequence number, where n is a number
beginning with 1.
• SyncType
• Mode
• SourceGroup: A group of source storage objects which may be a StorageVolume or storage
object. If this parameter is not supplied, SourceElement is required. Both SourceGroup and
SourceElement shall not be supplied.
• SourceElement: This is not supported and should be NULL.
• SourceAccessPoint: NULL
◦ 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.
• TargetAccessPoint: NULL
• Consistency: This parameter overrides the default group consistency. For example, "No
Consistency", "Sequential Consistency". For us this can only be "Sequential Consistency".
• ReplicationSettingData: NULL
• Job: For physical copy of vv sets, InFormOS actually spawns one task for each of the vv pair
in the set and not one task for the whole set. However, this job parameter can only contain
reference to one job, so as a compromise, only the job of the first vv pair copy will be returned.
• Synchronization: Refers to the created association between the source element (or source
replication group) and the target replication group. InFormOS does not have the capability
to keep track of which vv set is synchronized with which other vv set; only individual sync-ed
vv pair is known. Therefore, as a compromise, only the StorageSynchronized association of
the first vv pair in the vv set will be returned.
• TargetSettingGoal: NULL
• TargetPool: NULL
• WaitForCopyState
Table 91 Parameter Matrix for CreateGroupReplica
What to Create: Physical copy Virtual copy (snapshot volume)
Output Job? Y N
TPD_CreateGroupReplica
Due to the inadequacies of the SMI-S defined CreateGroupReplica in supporting vv set replication
and consistent volume list replication, a couple of proprietary methods are defined.
uint32 ReplicationService.TPD_CreateGroupReplica(
[IN] string RelationshipName,
[IN, Required] uint16 SyncType,
[IN] uint16 Mode,
[IN] SNIA_ReplicationGroup REF SourceGroup,
[IN, OUT] SNIA_ReplicationGroup REF TargetGroup,
[OUT] CIM_ConcreteJob REF Jobs[],
[OUT] CIM_Synchronized REF Synchronizations[]);
uint32 ReplicationService.TPD_CreateConsistentReplicaList(
[IN, Required] uint16 SyncType,
[IN] uint16 Mode,
[IN] TPD_StorageVolume REF SourceElements[],
[IN] string TargetNames[],
[IN, OUT] TPD_StorageVolume REF TargetElements[],
[IN] CIM_SettingData REF TargetSettingGoal,
[IN] CIM_ConcreteJob REF Jobs[],
[OUT] CIM_Synchronized REF Synchronizations[]);
• SyncType
• Mode
• SourceElements: array of references to source volumes to replicate. Number of elements in
this array must be the same as that of TargetNames or TargetElements.
• TargetNames: array of names, matched with SourceElements array, of the resulting target
snapshot volumes. Valid only for virtual copy. This and TargetElements cannot both be specified.
• TargetElements: array of references to target volumes, matched with SourceElements. Valid
only for physical copy. This and TargetNames cannot both be specified
• TargetSettingGoal: The definition for the StorageSetting to be maintained by the target storage
object (the replica). This is valid only for snapshot volumes (base ID, expiration timer, retention
timer).
• Jobs: a list of jobs as a result of physical copy
• Synchronizations: a list of StorageSynchronized between each of the source and target vv
pair in the list
This is a 3PAR-specific method which is equivalent to creategroupvvcopy and creategroupsv
commands, and allows for client to specify a list of volumes to copy instead of a single one (as is
the case with CreateElementReplica) or a replica group (as is the case with CreateGroupReplica).
Table 92 Parameter Matrix for CreateConsistentReplicaList
What to Create: Consistent list of async Consistent list of Consistent list of virtual
physical copies independent physical copies copies
WaitForCopyState Inactive – the clones will Synchronized – independent If non-NULL, then only
retain association with the clones will be created Synchronized is supported
parent
ModifyReplicaSynchronization
uint32 ReplicationService.ModifyReplicaSynchronization(
[IN, Required] uint16 Operation,
[IN, Required] CIM_Synchronized REF Synchronization,
[IN, EmbeddedInstance ( "SNIA_ReplicationSettingData" )]
string ReplicationSettingData,
[IN] CIM_StorageSynchronized REF SyncPair[],
[OUT] CIM_ConcreteJob REF Job,
[IN] boolean Force,
[OUT] CIM_SettingsDefineState REF SettingsState,
[IN] uint16 WaitForCopyState);
Use to modify (or start a job to modify) the synchronization association between two storage objects
or replication groups. Parameters are:
• Operation: This parameter describes the type of modification to be made to the replica and/or
to the related associations
• Synchronization: The reference to the replication association describing the elements/groups
relationship that is to be modified.
• ReplicationSettingData: NULL
• SyncPair[]: This parameter applies to AddSyncPair/RemoveSyncPair Operations. It allows a
client to form a StorageSynchronized association between source and target elements and
then add the association to existing source and target groups. Alternatively, a client can
remove a StorageSynchronized association from source and target groups. We do not support
modification of group replicas, so this should always be NULL.
• Job
• SettingsState: Reference to the association between the source or group element and an
instance of SynchronizationAspect. This should always be NULL since we do not support
SynchronizationAspect.
• Force: Some operations may cause an inconsistency among the target elements. If true, the
client is not warned and the operation is performed if possible. This should always be NULL
since we do not support this.
• WaitForCopyState
Promote sv ModifyReplicaSynchrnonization
• Operation = Restore from Replica (15)
ModifyListSynchronization
uint32 ReplicationService.ModifyListSynchronization(
[IN, Required] uint16 Operation,
[IN, Required] CIM_Synchronized REF Synchronization[],
[IN, EmbeddedInstance ( "SNIA_ReplicationSettingData" )]
string ReplicationSettingData,
[OUT] CIM_ConcreteJob REF Job,
[IN] boolean Force,
[IN] uint16 WaitForCopyState);
• Operation: This parameter describes the type of modification to be made to the replica and/or
to the related associations.
• Synchronization: An array of references to the replication association describing the
elements/groups relationship that is to be modified. All elements of this array shall have the
same SyncType, the same Mode, and the Operation must be valid for the ReplicationType --
SyncType, Mode, Local/Remote.
• ReplicationSettingData: NULL
• Job
• Force: Some operations may cause an inconsistency among the target elements. If true, the
client is not warned and the operation is performed if possible. This shall always be NULL
since we do not support this.
• WaitForCopyState
This is similar to ModifyReplicaSynchronization, but allows for operation on multiple replica pairs
in one request.
TPD_ModifyGroupReplicaSynchronization
uint32 ReplicationService.TPD_ModifyGroupReplicaSynchronization(
[IN, Required] uint16 Operation,
[IN, Required] TPD_ReplicaGroup REF TargetGroup,
[OUT] CIM_ConcreteJob REF Jobs[]);
uint32 ReplicationService.GetAvailableTargetElements(
[IN, Required] CIM_LogicalElement REF SourceElement,
[IN, Required] uint16 SyncType,
[IN, Required] uint16 Mode,
[IN, EmbeddedInstance ( "SNIA_ReplicationSettingData" )]
string ReplicationSettingData,
[IN] CIM_SettingData REF TargetSettingGoal,
[IN] CIM_ResourcePool REF TargetPools[],
[IN] CIM_ServiceAccessPoint REF TargetAccessPoint,
[OUT] CIM_ConcreteJob REF Job,
[OUT] CIM_LogicalElement REF Candidates[] );
Use to get all of the candidate target elements for the supplied source element. Parameters are:
• SourceElement: The source StorageVolume.
• SyncType: Snapshot or Clone
• Mode: Synchroous or Asynchronous
• ReplicationSettingData: The parameter is useful for requesting a specific combination of thinly
and fully provisioned elements. For us this will be NULL.
• TargetSettingGoal: Desired target StorageSetting. If NULL, settings of the source elements shall
be used. We do not support this so input should be NULL.
• TargetPools[]: The storage pools for the target elements. If specified, this must always be the
DeltaReplicaStoragePool associated with the source volume.
• TargetAccessPoint: Reference to target access point information. If NULL, only local targets
are returned. For us this can only be NULL.
• Job: This will always be NULL.
• Candidates[]: The list of the candidate target StorageVolume found.
GetReplicationRelationships
uint32 ReplicationService.GetReplicationRelationships(
[IN] uint16 Type,
[IN] uint16 SyncType,
[IN] uint16 Mode,
[IN] uint16 Locality,
[IN] uint16 CopyState,
[OUT] CIM_ConcreteJob REF Job,
[OUT] CIM_Synchronized REF Synchronizations[] );
Use to get all of the synchronization relationships known to the processing replication service.
Parameters are:
• Type: The type of synchronization relationships, for example, StorageSynchronized or
GroupSynchronized. If this parameter is not supplied, all such relationships are retrieved.
• SyncType: If this parameter is not supplied, all SyncTypes are retrieved.
ModifyListSynchronization (6)
ModifyReplicaSynchronization (5),
ModifyListSynchronization (6),
GetAvailableTargetElements (8),
GetReplicationRelationship(10),
CreateGroup(12),
DeleteGroup(13),
AddMembers(14),
RemoveMembers(15)
In addition, this class contains a bunch of extrinsic methods. All methods return one of the following
status codes:
• 0: (Job) Completed with no error
• 1: Method not supported
• 4: Failed
• 5: Invalid Parameter
• 4096: Method Parameters Checked - Job Started
Table 95 Alignment of ReplicationServiceCapabilities.SupportedReplicationType and
StorageReplicationCapabilities.SupportedSynchronizationType
SupportedReplicationType SupportedSynchronizationType Notes
ConvertSyncTypeToReplicationType
uint32 ReplicationServiceCapabilities.ConvertSyncTypeToReplicationType(
[IN] uint16 SyncType,
[IN] uint16 Mode,
[IN] uint16 LocalOrRemote,
[OUT] uint16 SupportedReplicationTypes);
Clone (8) Synchronous (2) Local (2) Synchronous Clone Physical Copy
Local (10)
This method will return Not Supported (2) error code for all other combinations not listed in the
table above.
ConvertReplicationTypeToSyncType
uint32 ReplicationServiceCapabilities.ConvertReplicationTypeToSyncType(
[IN] uint16 ReplicationType,
[OUT] uint16 SyncType,
[OUT] uint16 Mode,
[OUT] uint16 LocalOrRemote);
uint32 ReplicationServiceCapabilities.GetSupportedFeatures(
[IN] uint16 ReplicationType,
[OUT] uint16 Features[]);
Synchronous Snapshot Local Replication Groups (2) Elements in a replication group are supported in
(6) a replication operation.
Targets allocated from Exclusive Targets are allocated from exclusive storage pools,
storage pool (10) i.e., from snap space.
Synchronized clone target detaches The clone target element detaches automatically
automatically (18) when the target element becomes synchronized;
otherwise, the client needs to explicitly request a
detach operation.
Asynchronous Mirror Remote “Requires full discovery of target Remote ComputerSystem needs to be discovered
(5) ComputerSystem” (6) first before a remote replication can happen.
“Service suspends source I/O when Provider is able to suspend I/O to source elements
necessary" (7) before splitting the target elements.
"Remote resource requires remote Client is required to interact with two providers:
CIMOM” (17) the provider controlling the source element and
the provider controlling the target element
This method will return "Not Supported" (2) error code for any other ReplicationType not listed in
the table above.
GetSupportedGroupFeatures
uint32 ReplicationServiceCapabilities.GetSupportedGroupFeatures(
[IN] uint16 ReplicationType,
[OUT] uint16 GroupFeatures[]);
For a given ReplicationType, this method returns the supported replication group features.
Table 98 SupportedGroupFeatures for ReplicationType
ReplicationType Features Description
Synchronous Snapshot Local Many-to-many replication (3) One or more elements in the source group and
(6) one or more elements in the target group.
Consistency enabled for all groups By default, all groups are Consistent.
(4)
Source element can be removed from A source element can be removed even when the
group (11) group is associated with another replication group.
Synchronized clone target detaches The clone target group detaches automatically
automatically (16) when the target group becomes synchronized;
otherwise, the client needs to explicitly request a
detach operation.
This method will return Not Supported (2) error code for any other ReplicationType not listed in
the table above.
GetSupportedCopyStates
uint32 ReplicationServiceCapabilities.GetSupportedCopyStates(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedCopyStates[],
[OUT] boolean HostAccessible[]);
For a given ReplicationType, this method returns the supported CopyStates and a parallel array
to indicate whether for a given CopyState the target element is host accessible or not (true or false).
Table 99 SupportedCopyStates for ReplicationType
ReplicationType CopyStates HostAccessible Description
Synchronous Snapshot Local Synchronized True The copy operation is complete. The target
(6) element is an exact replica of the source
element.
Unsynchronized True Not all the source element data has been
copied to the target element.
Synchronized False
Unsynchronized False
Suspended False
Broken False
Inactive False
Unsynchronized True
Suspended True
Broken True
Inactive True
FailedOver True
Skewed True
This method will return Not Supported (2) error code for any other ReplicationType not listed in
the table above.
GetSupportedGroupCopyStates
uint32 ReplicationServiceCapabilities.GetSupportedGroupCopyStates(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedCopyStates[] );
For a given ReplicationType, this method returns the supported replication group CopyStates.
Table 100 SupportedGroupCopyStates for ReplicationType
ReplicationType CopyStates
Unsynchronized
Suspended
Broken
Inactive
FailedOver
Skewed
Mixed
GetSupportedWaitForCopyStates
uint32 ReplicationServiceCapabilities.GetSupportedWaitForCopyStates(
[IN] uint16 ReplicationType,
[IN] unit16 MethodName,
[OUT] uint16 SupportedCopyStates[] );
This method, for a given ReplicationType and method, returns the supported CopyStates that can
be specified in the method's WaitForCopyState parameter.
Synchronous Snapshot Synchronized (4) Synchronized (4) Synchronized (4) Synchronized (4)
Local (6)
This method will return Not Supported (2) error code for any other ReplicationType.
GetSupportedConsistency
uint32 ReplicationServiceCapabilities.GetSupportedConsistency(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedConsistency[] );
uint32 ReplicationServiceCapabilities.GetSupportedOperations(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedOperations[] );
For a given ReplicationType this method returns the supported Operations on a StorageSynchronized
association that can be supplied to the ModifyReplicaSynchronization method.
Table 102 Possible SupportedOperations for Various ReplicationType
ReplicationType Supported Operations
This method will return Not Supported (2) error code for any other ReplicationType.
GetSupportedGroupOperations
uint32 ReplicationServiceCapabilities.GetSupportedGroupOperations(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedOperations[] );
For a given ReplicationType this method returns the supported replication group Operations on a
GroupSynchronized association that can be supplied to the ModifyReplicaSynchronization method.
uint32 ReplicationServiceCapabilities.GetSupportedListOperations(
[IN] uint16 ReplicationType,
[IN] uint16 SynchronizationType,
[OUT] uint16 SupportedOperations[] );
For a given ReplicationType this method returns the supported replication Operations on a list of
associations that can be supplied to the ModifyListSynchronization method. The parameter
SynchronizationType specifies the operations as they apply to a list of StorageSynchronized or
GroupSynchronized. If SynchronizationType is not specified, StorageSynchronized is assumed.
Possible SupportedOperations are the same as that for GetSupportedOperations. However, only
StorageSynchronized (2) is supported for SynchronizationType. This method will return "Not
Supported" (2) error code for any other SynchronizationType or ReplicationType.
GetSupportedSettingsDefineStateOperations
For a given ReplicationType this method returns the supported operations on a SettingsDefineState
association that can be supplied to the ModifySettingsDefineState method.
We do not support SettingsDefineState, so this method will always return "Not Supported" (2)
error code. FYI, SettingsDefineState marks a physical copy clone as a target even if there is no
longer a replication relationship with the source.
GetSupportedThinProvisioningFeatures
uint32 ReplicationServiceCapabilities.GetSupportedThinProvisioningFeatures(
[IN] uint16 ReplicationType,
[OUT] uint16 SupportedThinProvisioningFeatures[] );
For a given ReplicationType this method returns the supported features related to thin provisioning.
Possible SupportedThinProvisioningFeatures are:
1. Thin provisioning is not supported: Feature is unavailable.
2. Zeros written in unused allocated blocks of target: In copying thin to full, the unused blocks
of target will be written with zeros.
3. Unused allocated blocks of target are not initialized: In copying thin to full, the unused blocks
of target will remain uninitialized.
For Asynchronous Snapshot Local and Asynchronous Clone Loca" ReplicationType's, the
SupportedThinProvisioningFeatures shall contain only 2.
For Synchronous Snapshot Local ReplicationType, the SupportedThinProvisioningFeatures shall not
contain anything since the options seem to apply only to physical copy.
GetSupportedMaximum
uint32 ReplicationServiceCapabilities.GetSupportedMaximum(
[IN] uint16 ReplicationType,
[IN] uint16 Component,
[OUT] uint64 MaxValue );
This method accepts a ReplicationType and a component, it then returns a static numeric value
representing the maximum number of the specified component that the service supports. A value
of 0 indicates unlimited components of the given type. In all cases the maximum value is bounded
Number of groups 2400 (equals to max 800 (equals to max Max # of total source MIN(Max # of total
mirrored vv per mirrored vv per or target elements source elements, Max
system, assuming 1 vv system, assuming 1 vv (assuming 1 vv per # of total target
per group) per group) group) elements) (assuming 1
vv per group)
Number of elements 100 100 Max # of base volume Max # of base volume
per source group /2
Number of elements 100 100 Max # of base volume Max # of base volume
per target group /2
Number of total 2400 800 Max # of base volume Max # of base volume
source elements /2
Number of total target 2400 800 Max # of base volume Max # of volume –
elements /2 Max # of base volume
GetDefaultConsistency
uint32 ReplicationServiceCapabilities.GetDefaultConsistency(
[IN] uint16 ReplicationType,
[OUT] uint16 DefaultConsistency );
This method for a given ReplicationType, returns the default consistency value for the replication
groups.
We will always return Sequentially Consistent (2) in DefaultConsistency parameter for all supported
ReplicationTypes.
GetDefaultGroupPersistency
uint32 ReplicationServiceCapabilities.GetDefaultGroupPersistency(
[OUT] uint16 DefaultGroupPersistency );
This method returns the default persistency for a newly created group.
We will always return Persistent (2) in DefaultGroupPersistency parameter for all supported
ReplicationTypes.
[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.." },
Values { "Success", "Not Supported", "Unknown", "Timeout",
"Failed", "Invalid Parameter", "In Use", "DMTF Reserved",
"Vendor Specific" }]
uint32 GetSupportedReplicationSettingData(
[IN, Description (
"A value representing the ReplicationType." ),
ModelCorrespondence {
"CIM_ReplicationServiceCapabilities.SupportedReplicationTypes" }]
uint16 ReplicationType,
[IN, Description (
"A value representing the property name." ),
ValueMap { "2", "3", "4", "5", "6", "7", "8", "9",
"..", "0x8000.." },
Values { "ConsistentPointInTime",
"DesiredCopyMethodology", "Multihop",
"OnGroupOrListError", "UnequalGroupsAction",
"TargetElementSupplier", "ThinProvisioningPolicy",
"Pairing", "DMTF Reserved", "Vendor Specific" }]
uint16 PropertyName,
[OUT, Description (
"An array containing the supported values that can "
"be supplied in an instance of a "
"ReplicationSettingData. Refer to the class "
"ReplicationSettingData for the possible values for "
"each property. For boolean data, use the following "
"data mapping: 2=\"false\", 3=\"true\"." ),
ModelCorrespondence {
"CIM_ReplicationSettingData.ConsistentPointInTime",
"CIM_ReplicationSettingData.DesiredCopyMethodology",
"CIM_ReplicationSettingData.Multihop",
"CIM_ReplicationSettingData.OnGroupOrListError",
"CIM_ReplicationSettingData.Pairing",
"CIM_ReplicationSettingData.UnequalGroupsAction",
"CIM_ReplicationSettingData.TargetElementSupplier",
"CIM_ReplicationSettingData.ThinProvisioningPolicy" }]
uint16 SupportedValues[]);
This method, for a given ReplicationType, returns an array of supported settings that can be used
in an instance of the ReplicationSettingData class. See the MOF for the ReplicationSettingData
class for the value map of the properties.
Multihop (4) 1 1 1 1
This property applies
to multihop copy
operation. It specifies
the number of hops
the starting source (or
group) element is
expected to be
copied.
UnequalGroupsAction Return an Error (2) Return an Error (2) Return an Error (2) Return an Error (2)
(6)
Indicates what should
happen if the number
of elements in source
and target groups are
not the same. The
default is to return an
error, unless
one-to-many
replication is
supported and there is
only one source and
more than one target.
TargetElementSupplier Use Existing (1) Use Existing (1) Create New (2) Create New (2)
(7)
If target elements are
not supplied, this
property indicates
where the target
elements should come
from.
Pairing (9) Exact order (3) Exact order (3) Exact order (3) Exact order (3)
Controls how source
and target elements
are paired.
This method will return Not Supported (2) error code for any other ReplicationType not listed in
the table above.
GetDefaultReplicationSettingData
uint32 ReplicationServiceCapabilities.GetDefaultReplicationSettingData(
[IN] uint16 ReplicationType,
[OUT, EmbeddedObject]
string DefaultInstance );
This method, for a given ReplicationType, returns the default ReplicationSettingData as an instance.
The output DefaultInstance will be constructed according to the table in the section on
GetSupportedReplicationSettingData.
TPD_RemoteStorageSynchronized
TPD_RemoteStorageSynchronized, sub-classed from CIM_StorageSynchronized, represents the
remote replication association between each volume pair in the remote replication group pairs.
The object path of the StorageVolume or ReplicationEntity of the peer system does not have a valid
hostname, as neither the hostname nor IP address of the peer system is known; instead, WWN of
the peer system is used.
WhenSynced When remote copy group is last synced. This property is NULL
for synchronous mode.
UndiscoveredElement This property specifies whether the source, the target, or both
elements involved in a copy operation are undiscovered.
Possbile values are:
• SystemElement (2)
• SyncedElement (3)
If either SystemElement or SyncedElement is undiscovered, the
corresponding property of the association will have object
path to a ReplicationEntity instead of StorageVolume. If neither
end is undiscovered, then this property is NULL.
SyncPolicy Specifies the policy of the Remote Copy volume groups for
dealing with I/O failure and error handling of the replication.
Valid values are:
• no_fail_wrt_on_err - Specifies that if Remote Copy is
started for the volume group and a write to the secondary
system fails, then the Remote Copy operation is stopped
and an I/O error is not returned to the host (default). This
allows the application writing the data to continue, but
makes the secondary volumes out of date with the primary
volumes.
• auto_recover - Specifies that if the Remote Copy is
stopped as a result of the Remote Copy links going down,
the group is restarted automatically after the links come
back up. If this policy is enabled for a group while the
group is stopped after link failures, it will be only be started
when the links come up for the failed target. If the links are
already up at the time the policy is set then the group will
not be restarted at that time.
• no_auto_recover - Specifies that if the Remote Copy is
stopped as a result of the Remote Copy links going down,
the group must be restarted manually after the links come
back up (default).
• over_per_alert - If a synchronization of a periodic
Remote Copy group takes longer to complete than its
synchronization period then an alert will be generated. This
is the default behavior.
• no_over_per_alert - If a synchronization of a periodic
Remote Copy group takes longer to complete than its
synchronization period then an alert will not be generated.
setrcopygroup recover
is issued on the
secondary 3PAR
array:
TPD_ReplicationEntity
Under certain circumstances after the remote replication link goes down, the remote StorageVolume
WWN cannot be calculated. When this happens, the provider will not be able to construct a valid
object path for the remote StorageVolume. Instead, SystemElement or the SyncedElement in question
will contain a reference to a ReplicationEntity, with an InstanceID of 3PAR:<remote volume
name>, and the UndiscoveredElement property will be set to either SystemElement or SyncedElement.
Similiar to remote StorageVolume, this ReplicationEntity cannot be retrieved via
EnumerateInstances/EnumerateInstanceNames.GetInstance.
SyncedElement. Similar to remote StorageVolume, this ReplicationEntity cannot be retrieved via
EnumerateInstances/EnumerateInstanceNames.GetInstance.
ReplicationEntity cannot be discovered via EnumerateInstances, EnumerateInstanceNames nor
GetInstance. It will appear as an instance as a result of an Associators request, and will have the
following value:
Table 108 Relevant Properties of TPD_ReplicationEntity
Property Description
OtherTypeDescription NULL
Since there is no full-blown support for ReplicationEntity, in the replication service capabilities the
SupportedFeatures property will still include “Requires full discovery of target ComputerSystem“
which indicates that the service does not support undiscovered resources.
TPD_RemoteReplicationGroup
This corresponds to the remote replication group, sub-classed from CIM_ReplicationGroup.
Table 109 Relevant Properties of TPD_RemoteReplicationGroup
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.
TPD_RemoteGroupSynchronized
This is the synchronization association between the remote copy group pairs, sub-classed from
CIM_GroupSynchronized. The RemoteReplicationGroup of the peer system cannot be retrieved
via EnumerateInstances, EnumerateInstanceNames or GetInstance. The object path of the
RemoteReplicationGroup of the peer system will not have a valid hostname, as neither the hostname
nor IP address of the peer system is known to the local provider; instead, target name of the peer
system will be used. Target name is an arbitrary name given to the peer system when a user creates
a remote copy target. Consult Remote Copy User s Guide for details.
Table 110 Relevant Properties of RemoteStorageSynchronized
Property Description
WhenSynced When rcopy group is last synced. This property is NULL for
synchronous mode.
• 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.
ConsistencyType Indicates the consistency type used by the source and its
associated target group. This is always Sequential Consistency
(2).
TPD_OrderedMemberOfRemoteReplicationGroup
This is the association between RemoteReplicationGroup and a member StorageVolume, sub-classed
from CIM_OrderedMemberOfCollection.
Property Description
Please note that this association exists only for the RemoteReplicationGroup residing on the local
array.
Property Description
Please note that this association exists only for the RemoteReplicationGroup residing on the local
array.
TPD_HostedRemoteReplicationGroup
This is the association between ComputerSystem and the RemoteReplicationGroup, sub-classed
from CIM_HostedCollection.
Property Description
Please note that this association exists only for the RemoteReplicationGroup residing on the local
array.
TPD_SAPAvailableForRemoteReplicaVolume
This is the association between StorageVolume and the SCSIProtocolEndpoint, sub-classed from
CIM_SAPAvailableForElement.The endpoints denotes the port used for remote replication.
Property Description
Please note that this association exists only for the StorageVolumes in a RemoteReplicationGroup
that are residing on the local array.
TPD_SAPAvailableForRemoteReplicationGroup
This is the association between RemoteReplicationGroup and the SCSIProtocolEndpoint, sub-classed
from CIM_SAPAvailableForElement.The endpoints denotes the port used for remote replication.
Property Description
Please note that this association exists only for the RemoteReplicationGroup residing on the local
array.
Thin Provisioning
The CIM Server supports indication subscriptions for various thin provisioning related alert
indications. Clients may send the following query string to the CIM Server to receive all of the alert
indications:
As an alternative, the client can send any of the following to choose the specific indication(s) to
receive:
OperationalStatus Overall status of the CPU. Refer to SMI-S for possible values
of this property.
OperationalStatus Overall status of the CPU. Refer to SMI-S for possible values
of this property.
OperationalStatus Overall status of the IDE Drive. Refer to SMI-S for possible
values of this property.
UML Diagram
Figure 11 controller node Subsystem
OperationalStatus Overall status of the storage system. Refer to the SMI-S for
possible values of this property.
Position The position of the drive cage in the storage system (i.e.,
cage number).
OperationalStatus Overall status of the drive cage. Refer to SMI-S for possible
values for this property.
OperationalStatus Overall status of the disk drive. Refer to SMI-S for possible
values of this property.
Supported Methods
Table 125 Supported Methods for TPD_StorageSystem
Method Description
UML Diagram
Figure 12 UML Diagram
OperationalStatus Overall status of the Fan. Please refer to SMI-S for possible
values of this property.
Supported Methods
Table 133 Supported Methods for TPD_StorageSystem
Method Description
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.
Supported Methods
Table 143 Supported Methods for TPD_StorageSystem
Method Description
Position The position of the drive cage in the storage system (such
as the cage number).
Supported Methods
Table 152 Supported Methods for TPD_StorageSystem
Method Description
UML Diagram
Figure 15 Disk Enclosure Subsystem
Supported Methods
Table 160 Supported Methods for TPD_StorageSystem
Method Description
CIM Classes
The key classes are as follows:
Class Description
Property Description
CurrentUserDomains Domains that the current user belongs to. If the user is not
a domain user, value will show 'all'.
Property Description
Supported Methods
Methods for TPD_StorageHardwareIDCollection
Method Description
3PAR_InterOp.mof
//%////////////////////////////////////////////////////////////////////////
//
//
// Copyright 2005-2006 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_InterOp.mof
//
// Purpose : This MOF contains 3PAR classes that will be loaded
// into root/PG_InterOp namespace.
//
// Date created: Apr./15/2005
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// RegisteredProfile
// ==================================================================
[Description (
"RegisteredProfile tells clients what profiles 3PAR InServ Storage "
"Server supports. ")]
class TPD_RegisteredProfile : CIM_RegisteredProfile {
};
// ==================================================================
// RegisteredSubProfile
// ==================================================================
[Description (
"A RegisteredSubProfile subclasses RegisteredProfile to "
"indicate that a scoping profile is required to provide "
"context. The latter is specified by the mandatory association, "
"SubProfileRequiresProfile.")]
class TPD_RegisteredSubProfile : CIM_RegisteredSubProfile {
};
// ==================================================================
// SubProfileRequiresProfile - association between RegisteredProfile and
// RegisteredSubProfile
// ==================================================================
[Association,
Description (
"A subprofile requires another RegisteredProfile for context. "
"This association mandates the scoping relationship between a "
"subprofile and its scoping profile.")]
class TPD_SubProfileRequiresProfile : CIM_SubProfileRequiresProfile {
// ==================================================================
// RegisteredProfile and ComputerSystem association
// ==================================================================
[Association, Description (
"The CIM_ElementConformsToProfile association defines the "
"RegisteredProfiles to which the referenced ManagedElement is "
"conformant. This association specifically ties RegisteredProfile "
"with 3PAR InServ Storage Server (TPD_StorageSystem, subclass of "
"CIM_ComputerSystem) if the profile is Array, and with the "
"Object Manager if the profile is Server.")]
class TPD_ElementConformsToProfile : CIM_ElementConformsToProfile {
// ==================================================================
// ObjectManager
// ==================================================================
[Description (
"TPD_ObjectManager defines the capabilities of the 3PAR InServ "
"Storage System CIM Server in which this ObjectManager class "
"resides. Details related to communicating with the ObjectManager, "
"and the Manager's basic capabilities, are stored in instances of the "
"associated TPD_CIMXMLCommunicationMechanism class available through "
"the TPD_CommMechanismForManager association. ")]
class TPD_ObjectManager : CIM_ObjectManager {
};
// ==================================================================
// TPD_HostedOMService: Association between CIM_System and TPD_ObjectManager
// ==================================================================
[Association,
Description (
"TPD_HostedOMService is an association between TPD_ObjectManager and the "
"System on which the functionality resides. The cardinality of "
"this association is 1-to-many. A System may host many "
"Services. Services are weak with respect to their hosting "
"System. Heuristic: A Service is hosted on the System where the "
"LogicalDevices or SoftwareFeatures that implement the Service "
"are located. The model does not represent Services hosted "
"across multiple systems. This is modeled as an "
"ApplicationSystem that acts as an aggregation point for "
"Services, that are each located on a single host.")]
class TPD_HostedOMService : CIM_HostedService {
3PAR_InterOp.mof 147
// ==================================================================
// Namespace
// ==================================================================
[Description (
"Namespace provides a domain (in other words, a container), in "
"which the instances [of a class] are guaranteed to be unique "
"per the KEY qualifier definitions. It is named relative to the "
"TPD_ObjectManager implementation that provides such a domain.")]
class TPD_Namespace : CIM_Namespace {
};
// ==================================================================
// NamespaceInManager - association between Namespace and Object Mgr
// ==================================================================
[Association,
Description (
"NamespaceInManager is an association describing the Namespaces "
"hosted by the TPD_ObjectManager.")]
class TPD_NamespaceInManager: CIM_NamespaceInManager {
// ==================================================================
// CIMXMLCommunicationMechanism
// ==================================================================
[Description (
"This class specializes ObjectManagerCommunicationMechanism, "
"adding properties specific to the CIM-XML protocol (XML "
"encoding and CIM Operations) supported by the 3PAR CIM "
"server Object Manager.")]
class TPD_CIMXMLCommunicationMechanism : CIM_CIMXMLCommunicationMechanism {
[Description ( "Is this link encrypted or not. http or https. ")]
String namespaceType;
[Description ( "NamespaceType definition. Note that namespaceType"
"is the official name of this field in the CIM specification "
"Object Name definition."),
ValueMap {"0", "2", "3", "4..100" },
Values { "Unknown", "http", "https", "Pegasus Reserved" }]
Uint16 namespaceAccessProtocol;
[Description ( "IP Address for this comm mechanism. This MUST "
"BE the complete address so that the CIM Server can be "
"addressed from the network. It must include the port "
"number unless the DMTF defined default ports are used." )]
String IPAddress;
};
// ==================================================================
// TPD_CommMechanismForManager - Association between TPD_ObjectManager
// and TPD_CIMXMLCommunicationMechanism
// ==================================================================
[Association,
Description (
"CommMechanismForManager is an association between an "
"ObjectManager and an TPD_CIMXMLCommunicationMechanism "
"class. The latter describes a possible encoding/protocol/ set "
"of operations for accessing the referenced ObjectManager.")]
class TPD_CommMechanismForManager : CIM_CommMechanismForManager {
// ==================================================================
// TPD_HostedCIMXMLCommMechanism - Association between TPD_StorageSystem
// and TPD_CIMXMLCommunicationMechanism
// ==================================================================
[Association,
Description (
"HostedCIMXMLCommMechanism is an association between a Service "
"AccessPoint and the System on which it is provided. The "
"cardinality of this association is 1-to-many and is weak with "
"respect to the System. Each System may host many "
"ServiceAccessPoints. Heuristic: If the implementation of the "
"ServiceAccessPoint is modeled, it must be implemented by a "
"Device or SoftwareFeature that is part of the System hosting "
"the ServiceAccessPoint.")]
class TPD_HostedCIMXMLCommMechanism : CIM_HostedAccessPoint {
// ==================================================================
// 3PAR ObjMgrSoftwareIdentity
// ==================================================================
[Description (
"3PAR ObjMgrSoftwareIdentity describes the Object Manager"
"software used to instrument the various profiles and subprofiles.")]
class TPD_ObjMgrSoftwareIdentity : CIM_SoftwareIdentity
{
};
// ==================================================================
// 3PAR Profiles and Subprofiles software identity
// ==================================================================
[Association,
Description (
"3PAR ObjMgrSoftwareIdentity and RegisteredProfile"
"and RegisteredSubProfile mapping")]
class TPD_ProfileSoftwareIdentity : CIM_ElementSoftwareIdentity {
3PAR_InterOp.mof 149
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.mof
//
// Purpose : This MOF contains 3PAR classes that will be loaded
// into root/tpd namespace.
//
// Date created: Apr./15/2005
//
///////////////////////////////////////////////////////////////////////////
#pragma include ("SNIA_StoragePool.mof")
// ==================================================================
// 3PAR SCSIController
// ==================================================================
[Description (
"3PAR SCSI ProtocolController ")]
class TPD_SCSIController: CIM_SCSIProtocolController
{
};
// ==================================================================
// 3PAR StoragePool
// ==================================================================
[Description (
"3PAR StoragePool ")]
class TPD_StoragePool: SNIA_StoragePool
{
[Description (
"Type of disk drives that are in this pool. Not applicable "
"to primordial pool."),
ValueMap {"0", "1", "2", "4"},
Values {"Unknown", "FC", "Nearline", "SSD"} ]
uint16 DiskDeviceType;
};
// ==================================================================
// 3PAR DynamicStoragePool:
// The space for this pool is dynamically allocated on demand.
// ==================================================================
[Description (
"3PAR DynamicStoragePool. The space for this pool is dynamically"
" allocated on demand. When the pool is initially created, a minimum"
" size of disk space is allocated. More space is allocated on demand"
" until it reaches the maximum size (SpaceLimit). Thin-provisioned"
" StorageVolume draw space from this pool." )]
class TPD_DynamicStoragePool: SNIA_StoragePool
{
[Description (
"Type of disk drives that are in this pool. Not applicable "
"to primordial pool."),
ValueMap {"0", "1", "2", "4"},
[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. "),
Units ( "Bytes" )]
uint64 ConsumedSnapDataSpacePlusMetaData;
[Description (
"This is the nominal number of bytes allocated on disk for Snapshot "
"admin (SA) of this pool, not including RAID overhead."),
Units ( "Bytes" )]
uint64 ConsumedSnapAdminSpace;
[Description (
"This is the actual number of bytes allocated on disk for Snapshot "
"admin (SA) space of this pool, including RAID overhead. "),
Units ( "Bytes" )]
uint64 ConsumedSnapAdminSpacePlusMetaData;
[Description (
"This is the number of bytes allocated on disk for "
"this pool, not including RAID overhead. "),
Units ( "Bytes" )]
uint64 ConsumedSpace;
[Description (
"This is the current number of bytes being used by all "
"StorageVolumes and DeltaReplicaStoragePool (RAID "
"overhead already taken into account) allocated from "
"this pool. For example, a RAID-10 DynamicStoragePool with 50 GB "
"being allocated to all volumes. The CurrentSpaceConsumed is 50 GB."),
Units ( "Bytes" )]
uint64 CurrentSpaceConsumed;
[Description (
"Describe the RAID type of the pool. This value makes it easy"
" for traversing CapabilitiesOfStoragePool association."),
ValueMap {"0", "10", "50", "60"},
Values {"RAID0", "RAID10", "RAID50", "RAID60"} ]
uint16 RaidType;
[Description (
"Issue warning alert when space allocation exceeds this amount."
"A size of 0 means no warning limit is enforced. Default is 0."),
Units( "Bytes" )]
uint64 SnapDataSpaceWarningLimit = 0;
[Description (
"Name of the administrative domain that this pool belongs "
"to.\n")]
String Domain;
};
3PAR_TPD.mof 151
// ==================================================================
// 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. If the BlockSize is 1, this "
"property is the total size of the Extent." ),
MappingStrings { "MIF.DMTF|Host Storage|001.5",
"MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize" }]
uint64 NumberOfRawBlocks;
[Description (
"Describe the RAID type of the volume. This value makes it easy"
" for traversing ElementSettingData association."),
ValueMap {"0", "10", "50", "60"},
Values {"RAID0", "RAID10", "RAID50", "RAID60"} ]
uint16 RaidType;
[Description (
"Volume overall state. Possible value is a combination of following states: "
"0x00000000, 0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010, "
"0x00000020, 0x00000040, 0x00000080, 0x00000100, 0x00000200, 0x00000400, "
"0x00000800, 0x00001000"),
BitMap { "0","1","2","3","4","5","6","7","8","9","10","11","12","13" },
BitValues {"Unknown", "Started", "Not Started", "Auto-Check",
"Checking", "Need Check", "Need Disk", "Promoting",
"Copy Failed", "Stale", "Copying", "Admin Failed", "Preserved",
"Meta data corrupted"} ]
uint32 OtherOperationalStatus;
[Description (
"Describe the type of the volume."),
ValueMap {"0", "1", "2", "3", "4"},
Values {"Unknown", "Base", "Physical Copy", "Virtual Copy", "Remote Copy"} ]
uint16 VolumeType;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Raw Size Admin. The total size "
"can be calculated by multiplying BlockSize by RawAdminBlocks.")]
uint64 RawAdminBlocks;
[Description (
"The maximum number of blocks, of size BlockSize, which are "
"available for consumption in Admin space. The total size "
"can be calculated by multiplying BlockSize by ConsumableAdminBlocks.")]
uint64 ConsumableAdminBlocks;
[Description (
"Total number of logically contiguous blocks, of size Block "
"Size, which form Raw Size Copy. The total size "
"can be calculated by multiplying BlockSize by RawCopyBlocks.")]
uint64 RawCopyBlocks;
[Description (
"The maximum number of blocks, of size BlockSize, which are "
"available for consumption in Copy space. The total size "
"can be calculated by multiplying BlockSize by ConsumableCopyBlocks.")]
uint64 ConsumableCopyBlocks;
[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'.")]
uint64 UsedSnapshotDataSpaceBlocks;
[Description (
"The date this volume was created.")]
datetime DateCreated;
[Description (
"Master node ID.") ]
uint16 MasterNode;
[Description (
"Backup 1 node ID.") ]
uint16 BackupNode1;
[Description (
"Backup 2 node ID.") ]
uint16 BackupNode2;
[Description (
"Parent volume ID.") ]
uint32 ParentID;
[Description (
"Volume policy bits used to store policies information. "
"The available policies are: "
"DisallowStaleSnapshot - When copy-on-write fails, don't write to r/w "
" base so that r/o snapshots remain valid/consistent with r/w "
" base. This means failures to update snapshot will be "
" considered a failure to write to the base volume as well. "
"AllowStaleSnapshot - When copy-on-write fails, allow write to r/w base "
" to succeed, but snapshot becomes invalid or stale. This means "
" failures to update snapshot will not affect the write to the "
" base volume, but the snapshot will then be considered invalid. "
" This is the default setting. "
"System - Volume is intended to be used for internal system purposes."
"NoSystem - Volume is not intended to be used for internal system "
" purposes."
"TPZeroFill - For Thin Provisioned volumes, if a host write results in "
" allocation of a new data page that is only partially "
" filled by the host write, then do a zero-fill on the "
" unwritten portion of the page to ensure that the host can "
" never read old data from deleted volumes or snapshots. "
" Current allocation page size is 16kb. This is the "
" default setting. "
"TPNoZeroFill - Bypass the zero-fill stage on allocation of partially "
" written data pages. This is a performance improvement "
" setting for Thin Provisioned volumes. "
"OneHost - This constrains the export of a volume to one host or "
" one host cluster (when cluster names may be used as a "
" host name). Unless the volume is under the complete "
" control of a cluster aware application, multiple hosts "
" (with NoOneHost policy) will corrupt each other's data. "
"NoOneHost - This policy should only be used when exporting a volume to "
" multiple hosts for use by a cluster-aware application, "
" or if your shop uses 'port presents' VLUNs. "
" This is the default policy setting."
3PAR_TPD.mof 153
"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."
"Possible value is a combination of following values: "
" 0x80000000 - DisallowStaleSnapshot"
" 0x40000000 - AllowStaleSnapshot"
" 0x20000000 - System"
" 0x10000000 - NoSystem"
" 0x08000000 - TPZeroFill"
" 0x04000000 - TPNoZeroFill"
" 0x02000000 - OneHost"
" 0x01000000 - NoOneHost"
" 0x00800000 - Cache"
" 0x00400000 - NoCache"
" 0x00200000 - ZeroDetection"
" 0x00100000 - NoZeroDetection"),
BitMap { "31","30","29","28","27","26","25","24","23","22","21","20" },
BitValues {"DisallowStaleSnapshot", "AllowStaleSnapshot",
"System", "NoSystem", "TPZeroFill", "TPNoZeroFill",
"OneHost", "NoOneHost", "Cache", "NoCache", "ZeroDetection",
"NoZeroDetection"}]
uint32 Policy;
[Description (
"Define the VV geometry sectors_per_track value that is "
"reported to the hosts via the SCSI mode pages. The valid "
"range is from 4 to 8192 and the default value is 304.\n"),
MinValue ( 4 ), MaxValue ( 8192 )]
uint32 GeometrySectorsPerTrack = 304;
[ Description (
"Define the VV geometry heads_per_cylinder value that is "
"reported to the hosts via the SCSI mode pages. The valid "
"range is from 1 to 1024 and the default value is 8.\n"),
MinValue ( 1 ), MaxValue ( 1024 )]
uint32 GeometryHeadsPerCylinder = 8;
[ Description (
"Defines the sector size presented to the host for this virtual volume. "
"This must be a power of 2 from 512 to 16384, so the valid inputs are "
"512, 1024, 2048, 4096, 8192, and 16384. The default size is 512.\n"),
ValueMap {"512", "1024", "2048", "4096", "8192", "16384"},
Values {"512", "1024", "2048", "4096", "8192", "16384"} ]
uint32 GeometrySectorSize = 512;
[Description (
"Describes the preferred availability of the volume. "
"This value might be different from CurrentAvailability."),
ValueMap {"0", "8", "9", "10", "11", "12"},
Values {"Unknown", "Port", "Cage", "Magazine", "Disk", "Chunklet"} ]
uint16 PreferredAvailability;
[Description (
"Describes the current availability of the volume. "
"This value might be different from PreferredAvailability."),
ValueMap {"0", "8", "9", "10", "11", "12"},
Values {"Unknown", "Port", "Cage", "Magazine", "Disk", "Chunklet"} ]
uint16 CurrentAvailability;
[Description (
"Describes the export state of the volume."),
ValueMap {"0", "1", "2"},
Values {"None", "Active", "Template"} ]
uint16 ExportState;
[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. The SD space of the volume is prevented "
"from growing beyond the specified percentage of the volume "
"size."),
Units ( "Percent" )]
uint32 SnapSpaceAllocationLimit;
[Description (
"Allocation warning. Generate a warning alert when user space "
"of the volume exceeds the specified percentage of the volume "
"size. Applicable only to a thin-provisioned volume."),
Units ( "Percent" )]
uint32 UserSpaceAllocationWarning;
[Description (
"Allocation limit. The user space of the volume is prevented "
"from growing beyong the specified percentage of the volume "
"size. Applicable only to a thin-provisioned volume."),
Units ( "Percent" )]
uint32 UserSpaceAllocationLimit;
[Description (
"The DynamicStoragePool (DSP) the snapshot data (SD) "
"are provisioned from.\n")]
String SnapDSPName;
[Description (
"The DynamicStoragePool (DSP) the user space "
"is provisioned from.\n")]
String UserDSPName;
[Description (
"The number of user blocks that are actually allocated to a "
"thin-provisioned volume. "
"This is applicable only for a thin-provisioned volume.")]
uint64 ProvisionedConsumableBlocks;
[Description (
"Name of the administrative domain that this volume belongs "
"to.\n")]
String Domain;
[Description (
"Number of chunklets in a set. "
"For RAID 0 volume, this is always 1. "
"For RAID 10 volume, this is equal to StorageSetting.DataRedundancy. "
"Minimum value for RAID 10 volume is 2, maximum value is 4. "
"For RAID 50 volume, this is also known as the parity "
"set size."),
MinValue ( 1 ) ]
uint16 SetSize;
[Description (
3PAR_TPD.mof 155
"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. "
"Value can be one of the following:"
" Full Fully provisioned VV, either with no Snp (snapshot)"
" space or with statically allocated Snp space."
" TPVV Thin provisioned VV, with space for the base volume"
" allocated from the Usr space that is associated with"
" the UsrCPG. Snapshots allocate space from the Snp"
" space associated with the SnpCPG (if any)."
" Peer Volume reserved for data migration from a remote array."
" Unknown unknown type."),
ValueMap {"0", "1", "4", "0xffff"},
Values {"Full", "TPVV", "Peer", "Unknown"} ]
uint16 ProvisioningType;
[Description (
"Bits showing the activities of the volume."
"Meaning of the bits are:"
" Promoting - volume is being promoted "
" Copying - volume is the target of a physical copy "
" Tuning - volume is being tuned "
" Closing - volume is being shutdown "
" Removing - volume is being removed "
" Creating - volume is being created "
" Copy Source - volume is the source of a physical copy "
" Removing Expired - retrying a volume removal "
" Resyncing - volume is currently the target of a resync copy "
" Importing - volume is importing "
"Possible value is a combination of following values: "
" 0x00100000 - Importing"
" 0x00020000 - Resyncing"
" 0x00010000 - Removing Expired"
" 0x00004000 - Copy Source"
" 0x00002000 - Creating"
" 0x00001000 - Removing"
" 0x00000800 - Closing"
" 0x00000400 - Tuning"
" 0x00000200 - Copying"
" 0x00000100 - Promoting"),
BitMap { "20","17","16","14","13","12","11","10","9", "8" },
BitValues {"Importing", "Resyncing",
"Removing Expired", "Copy Source", "Creating", "Removing",
"Closing", "Tuning", "Copying", "Promoting"}]
uint32 Activity;
};
// ==================================================================
// 3PAR HostedStoragePool
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR HostedStoragePool (association between StoragePool and "
"StorageSystem) ")]
// ==================================================================
// 3PAR AllocatedFromStoragePool
// ==================================================================
[Association,
Description (
"TPD_AllocatedFromStoragePool is a superclass association describing how "
"volumes or pools are allocated from underlying StoragePools.")]
class TPD_AllocatedFromStoragePool: CIM_AllocatedFromStoragePool
{
};
// ==================================================================
// 3PAR ConcretePoolAllocatedFromPrimordialPool
// ==================================================================
[Association,
Description (
"TPD_ConcretePoolAllocatedFromPrimordialPool is an association between "
"concrete StoragePool and the primordial StoragePool from which "
"the capacity of the concrete pool is allocated.")]
class TPD_ConcretePoolAllocatedFromPrimordialPool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
Description ( "The primordial StoragePool." )]
TPD_StoragePool REF Antecedent;
[Override ( "Dependent" ),
Description ( "The subsidiary concrete StoragePool." )]
TPD_StoragePool REF Dependent;
};
// ==================================================================
// 3PAR DynamicPoolAllocatedFromConcretePool
// ==================================================================
[Association,
Description (
"TPD_DynamicPoolAllocatedFromConcretePool is an association between "
"DynamicStoragePool and the concrete StoragePool from which the "
"the capacity of DynamicStoragePool is allocated.")]
class TPD_DynamicPoolAllocatedFromConcretePool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
Description ( "The concrete StoragePool." )]
TPD_StoragePool REF Antecedent;
[Override ( "Dependent" ),
Description ( "The subsidiary DynamicStoragePool." )]
TPD_DynamicStoragePool REF Dependent;
};
3PAR_TPD.mof 157
"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." )]
TPD_DeltaReplicaStoragePool REF Dependent;
};
// ==================================================================
// 3PAR DeltaReplicaPoolAllocatedFromDynamicPool
// ==================================================================
[Association,
Description (
"TPD_DeltaReplicaPoolAllocatedFromDynamicPool is an association between "
"DeltaReplicaStoragePool and the DynamicStoragePool from which the "
"the capacity of DeltaReplicaStoragePool is allocated.")]
class TPD_DeltaReplicaPoolAllocatedFromDynamicPool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
Description ( "The DynamicStoragePool." )]
TPD_DynamicStoragePool REF Antecedent;
[Override ( "Dependent" ),
Description ( "The subsidiary DeltaReplicaStoragePool." )]
TPD_DeltaReplicaStoragePool REF Dependent;
};
// ==================================================================
// 3PAR VolumeAllocatedFromConcretePool
// ==================================================================
[Association,
Description (
"TPD_VolumeAllocatedFromConcretePool is an association between "
"StorageVolume and the concrete StoragePool from which the "
"the capacity of StorageVolume is allocated.")]
class TPD_VolumeAllocatedFromConcretePool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
Description ( "The concrete StoragePool." )]
TPD_StoragePool REF Antecedent;
[Override ( "Dependent" ),
Description ( "The subsidiary StorageVolume." )]
TPD_StorageVolume REF Dependent;
};
// ==================================================================
// 3PAR VolumeAllocatedFromDynamicPool
// ==================================================================
[Association,
Description (
"TPD_VolumeAllocatedFromDynamicPool is an association between "
"StorageVolume and the DynamicStoragePool from which the "
"the capacity of StorageVolume is allocated.")]
class TPD_VolumeAllocatedFromDynamicPool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
[Override ( "Dependent" ),
Description ( "The subsidiary StorageVolume." )]
TPD_StorageVolume REF Dependent;
};
// ==================================================================
// 3PAR VolumeAllocatedFromDeltaReplicaPool
// ==================================================================
[Association,
Description (
"TPD_VolumeAllocatedFromDeltaReplicaPool is an association between "
"a snapshot StorageVolume and the DeltaReplicaStoragePool from which the "
"the capacity of snapshot volume is allocated.")]
class TPD_VolumeAllocatedFromDeltaReplicaPool : TPD_AllocatedFromStoragePool
{
[Override ( "Antecedent" ),
Description ( "The DeltaReplicaStoragePool." )]
TPD_DeltaReplicaStoragePool REF Antecedent;
[Override ( "Dependent" ),
Description ( "The subsidiary snapshot StorageVolume." )]
TPD_StorageVolume REF Dependent;
};
// ==================================================================
// 3PAR StorageSetting
// ==================================================================
[Description (
"3PAR parent StorageSetting class for TPD_StorageSetting and "
"TPD_VolumeSetting.")]
class TPD_TopLevelStorageSetting : SNIA_StorageSetting
{
[Write, Description (
"The number of data chunklets in a RAID 50 or RAID 60 parity set. "
"The system default is 4 chunklets: 3 for data and 1 for "
"parity (3+1).\n"
"This is meaningless for RAID 0 or RAID 10 volumes."),
MinValue ( 3 ), MaxValue ( 9 ) ]
uint16 ParitySetSize;
[Write, Description (
"Base ID of the volume. If NULL, the next available "
"id will be used."),
MinValue ( 1 ) ]
uint32 BaseID;
[Write, Description (
"Whether a RAID 10 or RAID 50 volume supports a failure "
"of one port pair, one cage or one magazine. For RAID 10 "
"and RAID 50, the default for user, snap admin and snap "
"data areas are cage. For RAID 0, the default for the "
"snap admin area is cage.\n"),
ValueMap { "8", "9", "10" },
Values { "Port", "Cage", "Magazine" }]
uint16 HighAvailability;
[Write, Description (
"Chunklet location preference. Allows chunklets to "
"be placed physically close to other chunklets with "
"the same location preference.\n"
" First - attempt to use the lowest numbered\n"
" available chunklets.\n"
" Last - attempt to use the highest numbered\n"
3PAR_TPD.mof 159
" 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.\n"),
Units ( "Bytes" )]
uint64 SnapVolumeSize;
[Write, Description (
"Size for the snap volume in percentage of volume user "
"size.\n"
"The default value is 0.\n"
"If DSPName is specified, this value should be 0.\n"
"Only one of SnapVolumePercentage and SnapVolumeSize "
"can be set.\n")]
uint16 SnapVolumePercentage;
[Write, Description (
"Size for the admin volume in bytes (maximum 1073741568). "
"The default value is not set.\n"
"This property is valid only in a grow volume operation."),
Units ( "Bytes" )]
uint64 AdminVolumeSize;
[Description (
"Snapshot space allocation warning. Generate a warning alert "
"when SD space of the volume exceeds the specified percentage "
"of the volume size. This property can be set independent of "
"SpaceLimit since, unlike SpaceLimitWarningThreshold, this is "
"a percentage of the volume size and not of SpaceLimit. If "
"this is set, then SpaceLimitWarningThreshold is ignored."),
Units ( "Percent" )]
uint32 SnapSpaceAllocationWarning;
[Description (
"User space allocation warning. Generate a warning alert "
"when user space of the volume exceeds the specified percentage "
"of the volume size. This property can be set independent of "
"UserSpaceLimit since, unlike UserSpaceLimitWarningThreshold, this is "
"a percentage of the volume size and not of UserSpaceLimit. If "
"this is set, then UserSpaceLimitWarningThreshold is ignored. "
"Applicable only to thin provisioned volumes."),
Units ( "Percent" )]
uint32 UserSpaceAllocationWarning;
[Description (
"UserSpaceLimit is the consumption limit for the allocated "
"user space of the associated StorageVolumes. Please note "
"that SpaceLimit refers to the consumption limit of the "
"allocated space of a DynamicStoragePool or the snap space "
"(DeltaReplicaStoragePool) of the associated StorageVolumes. "
"Applicable only to thin provisioned volumes. "
"If UserSpaceLimit = 0 (the default) then no limits are asserted "
"on the amount of space consumed."),
Units ( "Bytes" )]
uint64 UserSpaceLimit = 0;
[Description (
"If the associated storage volume may dynamically consume "
[Write, Description (
"The DynamicStoragePool (DSP) the snapshot data (SD) "
"are provisioned from.\n")]
String SnapDSPName;
[Write, Description (
"The DynamicStoragePool (DSP) the user space "
"is provisioned from.\n")]
String UserDSPName;
[Write, Description (
"If TRUE, the volume or pool is thinly provisioned.") ]
boolean ThinlyProvisioned;
[Write, Description (
"Define volume policy. The available policies are: "
"DisallowStaleSnapshot - When copy-on-write fails, don't write to r/w "
" base so that r/o snapshots remain valid/consistent with r/w "
" base. This means failures to update snapshot will be "
" considered a failure to write to the base volume as well. "
"AllowStaleSnapshot - When copy-on-write fails, allow write to r/w base "
" to succeed, but snapshot becomes invalid or stale. This means "
" failures to update snapshot will not affect the write to the "
" base volume, but the snapshot will then be considered invalid. "
" This is the default setting. "
"System - Volume is intended to be used for internal system purposes."
"NoSystem - The volume is not intended to be used for internal system "
" purposes."
"TPZeroFill - For Thin Provisioned volumes, if a host write results in "
" allocation of a new data page that is only partially "
" filled by the host write, then do a zero-fill on the "
" unwritten portion of the page to ensure that the host can "
" never read old data from deleted volumes or snapshots. "
" Current allocation page size is 16kb. This is the "
" default setting. "
"TPNoZeroFill - Bypass the zero-fill stage on allocation of partially "
" written data pages. This is a performance improvement "
" setting for Thin Provisioned volumes. "
"OneHost - This constrains the export of a volume to one host or "
" one host cluster (when cluster names may be used as a "
" host name). Unless the volume is under the complete "
" control of a cluster aware application, multiple hosts "
" (with NoOneHost policy) will corrupt each other's data. "
"NoOneHost - This policy should only be used when exporting a volume to "
" multiple hosts for use by a cluster-aware application, "
" or if your shop uses 'port presents' VLUNs. "
" This is the default policy setting."
"ZeroDetect - Check If incoming data is zero. If so, reclaim the space."
"NoZeroDetect - No need to check if incoming data is zero."
"Possible value is a combination of following values: "
" 0x80000000 - DisallowStaleSnapshot"
" 0x40000000 - AllowStaleSnapshot"
" 0x20000000 - System"
3PAR_TPD.mof 161
" 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 value that is "
"reported to the hosts via the SCSI mode pages. The valid "
"range is from 4 to 8192 and the default value is 304.\n"),
MinValue ( 4 ), MaxValue ( 8192 )]
uint32 GeometrySectorsPerTrack;
[Write, Description (
"Define the VV geometry heads_per_cylinder value that is "
"reported to the hosts via the SCSI mode pages. The valid "
"range is from 1 to 1024 and the default value is 8.\n"),
MinValue ( 1 ), MaxValue ( 1024 )]
uint32 GeometryHeadsPerCylinder;
[Write, Description (
"Defines the sector size presented to the host for this virtual volume. "
"This must be a power of 2 from 512 to 16384, so the valid inputs are "
"512, 1024, 2048, 4096, 8192, and 16384. The default size is 512.\n"),
ValueMap {"512", "1024", "2048", "4096", "8192", "16384"},
Values {"512", "1024", "2048", "4096", "8192", "16384"} ]
uint32 GeometrySectorSize;
[Write, Description (
"Specifies the node number, the list of node numbers or "
"the range of node numbers 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. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"
ArrayType ( "Indexed" ),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
String DiskPrimPathNodes[];
[Write, Description (
[Write, Description (
"Specifies the port number, the list of port numbers or "
"the range of port numbers 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. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"
ArrayType ( "Indexed" ),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
String DiskPrimPathPorts[];
[Write, Description (
"Specifies the cage number, the list of cage numbers or "
"the range of cage numbers the disks must be in.\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. \n"
"The string must be in one of the following formats:\n"
3PAR_TPD.mof 163
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - 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.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
String DiskCages[];
[Write, Description (
"Specifies the magazine number, the list of magazine numbers or "
"the range of magazine numbers the disks must be in. The '1.' "
"or '0.' that indicates the side of the cage is omitted.\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. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"
ArrayType ( "Indexed" ),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
String DiskMagazines[];
[Write, Description (
"Specifies the magazine position, the list of magazine positions or "
"the range of magazine positions the disks must be in.\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. \n"
"The string must be in one of the following formats:\n"
" <nb> - nb is an integer\n"
" <nb>,<nb> - a list of integers\n"
" <nb>-<nb> - a range of integers\n"
ArrayType ( "Indexed" ),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskCages",
[Write, Description (
"The total number of chunklets in the disk must be "
"greater than this value.\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"
"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.DiskIDs",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
sint32 DiskTotalChunkletGT[];
[Write, Description (
"The total number of chunklets in the disk must be "
"less than this value.\n"
"Each element in this array represents one instance of "
"pattern for candidate disks; multiple array element adds "
3PAR_TPD.mof 165
"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.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
sint32 DiskTotalChunkletLT[];
[Write, Description (
"The total number of free or initializing chunklets in "
"the disk must be greater than this value.\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"
"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.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
sint32 DiskFreeChunkletGT[];
[Write, Description (
"The total number of free or initializing chunklets in "
"the disk must be less than this value.\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"
"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.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskCages",
[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. \n"
"The string must be in one of the following formats:\n"
" <model> -the disk drive model/n"
" <model>,<model> -a list of disk drive models/n")
ArrayType ( "Indexed" ),
ModelCorrespondence (
"TPD_DiskDrivePackage.Model",
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskRPM",
"TPD_TopLevelStorageSetting.DiskCages" }]
String DiskPackageModels[];
[Write, Description (
"The disk must be of the specified RPM, which could either mean "
"Revolution Per Minute in the case of FC or NL drives, or "
"Relative Performance Metric in the case of SSD.\n"),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskCages",
"TPD_TopLevelStorageSetting.DiskFreeChunkletGT",
"TPD_TopLevelStorageSetting.DiskFreeChunkletLT",
"TPD_TopLevelStorageSetting.DiskPackageModels" }]
sint32 DiskRPM[];
[Write, Description (
"Name of the administrative domain that the volume will "
"belong to. Default is blank which means all.\n"),
MaxLen ( 31 )]
String Domain;
[Write, Description (
"The goal amount of disk space created on each auto-grow. If this value "
"is non-zero it must be 8192 or bigger. A size of 0 disables the "
"auto-grow feature.\n"
"The default auto-grow size is fixed at 32G but the minimum "
"auto-grow is a function of the number of online nodes in the "
"system:"
" Number of Nodes Default Minimum "
" 1-2 32G 8G "
" 3-4 64G 16G "
" 5-6 96G 24G "
3PAR_TPD.mof 167
" 7-8 128G 32G "
"Applicable only if TemplateType equals to 3, "
"\"DynamicStoragePool\"."),
Units("Bytes")]
uint64 AllocationUnit;
[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. 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 AllocationUnitMin;
[Write, Description (
"Issue warning alert when space allocation for a DynamicStoragePool "
"exceeds this amount."
"A size of 0 means no warning limit is enforced. Default is 0."
"Applicable only if TemplateType equals to 3, "
"\"DynamicStoragePool\"."),
Units( "Bytes" )]
uint64 DSPSnapSpaceGrowWarning;
[Write, Description (
"If true, properties that are not specified in the template "
"will be treated as read-only and cannot be overridden "
"by the properties in Goal parameter when invoking the "
"TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, properties that are not specified in the template "
"can be overridden by the properties in Goal parameter when "
"invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\".")]
boolean TemplateDefaultReadOnly;
[Write, Description (
"Element type that this template can be used to create."
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ValueMap { "1", "2" },
Values { "StorageVolume",
"DynamicStoragePool"}]
uint16 TemplateType;
[Write, Description (
"The kind of volumes that can be created by this template."
"Default is 3, \"Any\".\n"
"Applicable only if TemplateType equals to 1, \"StorageVolume\", "
"and ChangeableType equals to 2, \"Changeable-Persistent\"."),
ValueMap { "1", "2", "3" },
Values { "Thin Provisioned StorageVolume",
"Common Provisioned Virtual Volumes",
"Any" }]
uint16 TemplateForVolumeType;
[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\"."),
ValueMap { "1", "2", "4"},
Values { "FC", "NL", "SSD"}]
uint16 TemplateVolumeDeviceType;
[Write, Description (
"RAID type of the volume. Used only as a template property. "
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ValueMap {"0", "10", "50", "60"},
Values {"RAID0", "RAID10", "RAID50", "RAID60"} ]
uint16 TemplateVolumeRaidType;
[Write, Description (
"Percent of the volume size the SD space of the volume "
"can grow to. "
"SpaceLimit = vol size * (1 + percent/100)"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\".")]
uint16 TemplateSnapSpaceAllocationLimit;
[Write, Description (
"Percent of the volume size the user space of the volume "
"can grow to. "
"UserSpaceLimit = vol size * (1 + percent/100)"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\", and only to thin provisioned "
"volumes.")]
uint16 TemplateUserSpaceAllocationLimit;
[Write, Description (
"If true, TemplateForVolumeType 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, TemplateForVolumeType 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\"."),
ModelCorrespondence {
"TemplateForVolumeType"}]
boolean TemplateForVolumeTypeReadOnly;
[Write, Description (
"If true, RAID type of the volume (combination of DataRedundancyGoal "
"and PackageRedundancyGoal values) in this template are cannot be "
"overriden by the properties in Goal parameter when invoking the "
"TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, RAID type of the volume (combination of DataRedundancyGoal "
"and PackageRedundancyGoal values) in this template can be "
"overriden by the corresponding properties in the Goal parameter "
3PAR_TPD.mof 169
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ModelCorrespondence {
"DataRedundancyGoal",
"PackageRedundancyGoal"}]
boolean TemplateRAIDReadOnly;
[Write, Description (
"If true, DataRedundancyGoal (RAID-10) or ParitySetSize (RAID-50/RAID-60) "
"values in this template are read-only and cannot be overriden "
"by the properties in the Goal parameter when invoking the "
"TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, DataRedundancyGoal (RAID-10) or ParitySetSize (RAID-50/RAID-60) "
"in this template can be overriden by the corresponding "
"properties in the Goal parameter when invoking the "
"TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ModelCorrespondence {
"DataRedundancyGoal",
"ParitySetSize"}]
boolean TemplateSetSizeReadOnly;
[Write, Description (
"If true, ExtentStripeLength value in this template is read-only "
"and cannot be overriden by the corresponding property in "
"the Goal parameter when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, ExtentStripeLength value in this template can be "
"overriden by the corresponding property in the Goal parameter "
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ModelCorrespondence {
"ExtentStripeLength"}]
boolean TemplateRowSizeReadOnly;
[Write, Description (
"If true, UserDataStripeDepth 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, UserDataStripeDepth 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\"."),
ModelCorrespondence {
"UserDataStripeDepth"}]
boolean TemplateStepSizeReadOnly;
[Write, Description (
"If true, HighAvailability 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."
[Write, Description (
"If true, ChunkletLocationPreference 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, ChunkletLocationPreference 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\"."),
ModelCorrespondence {
"ChunkletLocationPreference"}]
boolean TemplateChunkletLocationPreferenceReadOnly;
[Write, Description (
"If true, Domain value in this template is read-only "
"and cannot be overriden by the corresponding property in "
"the Goal parameter when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, Domain value in this template can be "
"overriden by the corresponding property in the Goal parameter "
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ModelCorrespondence {
"Domain"}]
boolean TemplateDomainReadOnly;
[Write, Description (
"If true, all the pattern values in this template are read-only "
"and cannot be overriden by the corresponding properties in "
"the Goal parameter when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, all the pattern values in this template can be "
"overriden by the corresponding properties in the Goal parameter "
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Consult ModelCorrespondence for the list of pattern properties."
"Note that this applies to all sets of pattern specified.\n"
"Default is true.\n"
"Applicable only if ChangeableType equals to 2, "
"\"Changeable-Persistent\"."),
ModelCorrespondence {
"TPD_TopLevelStorageSetting.DiskPrimPathPCISlots",
"TPD_TopLevelStorageSetting.DiskPrimPathPorts",
"TPD_TopLevelStorageSetting.DiskPrimPathNodes",
"TPD_TopLevelStorageSetting.DiskMagazines",
"TPD_TopLevelStorageSetting.DiskMagPositions",
"TPD_TopLevelStorageSetting.DiskIDs",
"TPD_TopLevelStorageSetting.DiskTotalChunkletGT",
"TPD_TopLevelStorageSetting.DiskTotalChunkletLT",
3PAR_TPD.mof 171
"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."
"If false, SnapDSPName 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\"."),
ModelCorrespondence {
"SnapDSPName"}]
boolean TemplateSnapDSPNameReadOnly;
[Write, Description (
"If true, UserDSPName 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, UserDSPName 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\"."),
ModelCorrespondence {
"SnapDSPName"}]
boolean TemplateUserDSPNameReadOnly;
[Write, Description (
"If true, TemplateVolumeSize value in this template is read-only "
"and cannot be overriden by the value in the Size parameter "
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, TemplateVolumeSize value in this template can be "
"overriden by the Size 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\"."),
ModelCorrespondence {
"TemplateVolumeSize"}]
boolean TemplateVolumeSizeReadOnly;
[Write, Description (
"If true, SnapVolumeSize 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, SnapVolumeSize 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\"."),
[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, DeltaReservationGoal 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\"."),
ModelCorrespondence {
"DeltaReservationGoal"}]
boolean TemplatePctReadOnly;
[Write, Description (
"If true, SpaceLimitWarningThreshold value of the snap space of a "
"StorageVolume or LowSpaceWarningThreshold in a DynamicStoragePool "
"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, SpaceLimitWarningThreshold value of the snap space of a "
"StorageVolume or LowSpaceWarningThreshold in a DynamicStoragePool "
"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\", "
"or 3, \"Common Provisioning Groups\", and ChangeableType equals "
"to 2, \"Changeable-Persistent\"."),
ModelCorrespondence {
"SpaceLimitWarningThreshold", "LowSpaceWarningThreshold" }]
boolean TemplateSnapSpaceAllocationWarningReadOnly;
[Write, Description (
"If true, UserSpaceAllocationWarning or UserSpaceLimitWarningThreshold "
"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, UserSpaceAllocationWarning or UserSpaceLimitWarningThreshold "
"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\", "
"TemplateForVolumeType equals to 1, \"Thin Provisioned StorageVolumes\", "
"and ChangeableType equals to 2, \"Changeable-Persistent\"."),
ModelCorrespondence {
"UserSpaceLimitWarningThreshold", "UserSpaceAllocationWarning" }]
boolean TemplateUserSpaceAllocationWarningReadOnly;
[Write, Description (
"If true, SpaceLimit or TemplateSnapSpaceAllocationLimit 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."
3PAR_TPD.mof 173
"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\"."),
ModelCorrespondence {
"SpaceLimit", "TemplateSnapSpaceAllocationLimit" }]
boolean TemplateSnapSpaceAllocationLimitReadOnly;
[Write, Description (
"If true, TemplateUserSpaceAllocationLimit or UserSpaceLimit 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, TemplateUserSpaceAllocationLimit or UserSpaceLimit 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\", "
"TemplateForVolumeType equals to 1, \"Thin Provisioned StorageVolumes\", "
"and ChangeableType equals to 2, \"Changeable-Persistent\"."),
ModelCorrespondence {
"UserSpaceLimit", "TemplateUserSpaceAllocationLimit"}]
boolean TemplateUserSpaceAllocationLimitReadOnly;
[Write, Description (
"If true, Policy value in this template is read-only "
"and cannot be overriden by the corresponding property in "
"the Goal parameter when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"If false, Policy value in this template can be "
"overriden by the corresponding property in the Goal parameter "
"when invoking the TPD_StorageConfigurationService."
"CreateStorageVolumeFromStoragePoolWithTemplate method."
"Default is true.\n"
"Applicable only if TemplateType equals to 1, \"Virtual Volumes\", "
"and ChangeableType equals to 2, \"Changeable-Persistent\"."),
ModelCorrespondence {
"Policy"}]
boolean TemplatePolicyReadOnly;
[Write, Description (
"If true, AllocationUnit value in this template is read-only "
"and cannot be overriden during the creation of DSP."
"If false, AllocationUnit value in this template can be "
"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\"."),
ModelCorrespondence {
"AllocationUnit"}]
boolean TemplateAllocationUnitReadOnly;
[Write, Description (
"If true, DSPSnapSpaceGrowWarning or SpaceLimitWarningThreshold "
"value in this template is read-only "
"and cannot be overriden during the creation of DSP."
"If false, DSPSnapSpaceGrowWarning or SpaceLimitWarningThreshold "
"value in this template can be "
[Write, Description (
"If true, GeometrySectorsPerTrack 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, GeometrySectorsPerTrack 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\"."),
ModelCorrespondence {
"GeometrySectorsPerTrack"}]
boolean TemplateGeometrySectorsPerTrackReadOnly;
[Write, Description (
"If true, GeometryHeadsPerCylinder 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, GeometryHeadsPerCylinder 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\"."),
ModelCorrespondence {
"GeometryHeadsPerCylinder"}]
boolean TemplateGeometryHeadsPerCylinderReadOnly;
[Write, Description (
"If true, GeometrySectorSize 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, GeometrySectorSize 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\"."),
ModelCorrespondence {
"GeometrySectorSize"}]
boolean TemplateGeometrySectorSizeReadOnly;
[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;
};
// ==================================================================
3PAR_TPD.mof 175
// 3PAR StorageSetting
// ==================================================================
[Description (
"3PAR StorageSetting.")]
class TPD_StorageSetting : TPD_TopLevelStorageSetting
{
};
// ==================================================================
// 3PAR StorageSetting
// ==================================================================
[Description (
"3PAR StorageSetting that describes the current setting of a StorageVolume.")]
class TPD_VolumeSetting : TPD_TopLevelStorageSetting
{
};
// ==================================================================
// 3PAR ElementSettingData
// ==================================================================
[Association,
Description (
"TPD_ElementSettingData is an association between "
"StorageVolume and StorageSetting."
"This association is used to figure out the desired setting "
"data is used when the volume is created.") ]
class TPD_ElementSettingData: CIM_ElementSettingData
{
[Override ( "ManagedElement" ), Description (
"The StorageVolume.")]
TPD_StorageVolume REF ManagedElement;
// ==================================================================
// 3PAR StorageConfigurationService
// ==================================================================
[Description
("The StorageConfigurationService provides methods that allow "
"a client to create, modify and delete storage pools and "
"volumes.")]
class TPD_StorageConfigurationService : SNIA_StorageConfigurationService
{
[Override ("CreateOrModifyStoragePool"), Description (
"Starts a job to create (or modify) a StoragePool. The "
"StoragePool will be (or must be) scoped to the same System "
"as this Service. One of the parameters for this method is "
"Size. As an input parameter, Size specifies the desired "
"size of the pool. As an output parameter, it specifies the "
"size achieved. Space is taken from either or both of the "
"specified input StoragePools and StorageExtents (InPools "
"and InExtents). The capability requirements that the Pool "
"must support are defined using the Goal parameter. If the "
"requested pool size cannot be created, no action will be "
"taken, the Return Value will be 4097/0x1001, and the output "
"value of Size will be set to the nearest possible size. If "
"0 is returned, then the task completed successfully and the "
"use of ConcreteJob was not required. If the task will take "
"some time to complete, a ConcreteJob will be created and "
"its reference returned in the output parameter Job. "
"For 3PAR InServ provider, only TPD_DynamicStoragePool "
"can be created from a concrete pool."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
3PAR_TPD.mof 177
"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. The value will be stored in the 'ElementName' "
"property for the created element. If not NULL, this "
"parameter will supply a new name when modifying an "
"existing element.")]
string ElementName,
[IN, Description (
"Enumeration indicating the type of element being created "
"or modified. If the input parameter TheElement is "
"specified when the operation is a 'modify', this type "
"value must match the type of that instance."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"..", "32768..65535" },
Values { "Unknown", "Reserved", "StorageVolume",
"StorageExtent", "LogicalDisk",
"ThinlyProvisionedStorageVolume",
"ThinlyProvisionedLogicalDisk",
"ThinlyProvisionedAllocatedStoragePool",
"ThinlyProvisionedQuotaStoragePool",
"ThinlyProvisionedLimitlessStoragePool",
"DMTF Reserved","Vendor Specific" }]
uint16 ElementType,
[IN ( false ), OUT, Description (
"Reference to the job (may be null if job completed).")]
CIM_ConcreteJob REF Job,
[IN, Description (
"The requirements for the element to maintain. If set to "
"a null value, the default configuration from the source "
"pool will be used. This parameter should be a reference "
"to a Setting or Profile appropriate to the element being "
"created. If not NULL, this parameter will supply a new "
"Goal when modifying an existing element.")]
CIM_ManagedElement REF Goal,
[IN, OUT, Description (
"As an input parameter Size specifies the desired size. "
"If not NULL, this parameter will supply a new size when "
"modifying an existing element. As an output parameter "
"Size specifies the size achieved."),
Units ( "Bytes" )]
uint64 Size,
[IN, Description (
"The Pool from which to create the element. This "
"parameter must be set to null if the input parameter "
"TheElement is specified (in the case of a 'modify' "
"operation).")]
CIM_StoragePool REF InPool,
[IN, OUT, Description (
"As an input parameter: if null, creates a new element. "
"If not null, then the method modifies the specified "
"element. As an output parameter, it is a reference to "
"the resulting element.")]
CIM_LogicalElement REF TheElement,
[OUT, Description (
"A descriptive text of the result of the operation.")]
string ResultDescription);
[Description (
3PAR_TPD.mof 179
"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. The "
"second element, if present, contains reference to a "
"StoragePool from which the snap space of the StorageVolume "
"is allocated.")]
string InPools[],
[IN, OUT, Description (
"As an input parameter: if null, creates a new element. "
"If not null, then the method modifies the specified "
"element. As an output parameter, it is a reference to "
"the resulting element.")]
CIM_LogicalElement REF TheElement,
[OUT, Description (
"A descriptive text of the result of the operation.")]
string ResultDescription);
[Description (
"Start a job to create a specified StorageVolume from a "
"StoragePool using a persistent StorageSetting as a template, which reference
"
"is specified in Template. The Template parameter must be specified and
cannot "
"be NULL. Goal is an embedded instance string of a StorageSetting. This "
"contains properties which values should override those in Template. "
"Another one of the parameters is Size. As an input parameter, Size "
"specifies the desired size of the element. As an output parameter, "
"it specifies the size achieved. Space is taken from the input "
"StoragePool. The desired settings for the element are specified by the Goal
"
"parameter. If the requested size cannot be created, no "
"action will be taken, and the Return Value will be "
"4097/0x1001. Also, the output value of Size is set to the "
"nearest possible size. If Size is not specified, then the "
"Size property in Template is used. If 0 is returned, the function "
"completed successfully and no ConcreteJob instance was "
"required. If 4096/0x1000 is returned, a ConcreteJob will be "
"started to create the element. The Job's reference will be "
"returned in the output parameter Job."),
ValueMap { "0", "1", "2","4", "4096",
"4097", "32768", "32769", "32770" },
Values { "Job Completed with No Error", "Not Supported",
"Unknown", "Failed", "Invalid Parameter",
"Size Not Supported", "Cannot override template parameters",
"Size in Goal and Template are both NULL",
"Template does not exist" }]
uint32 CreateStorageVolumeFromStoragePoolWithTemplate(
[IN, Description (
"A end user relevant name for the element being created. "
"If NULL, then a system supplied default name can be "
"used. The value will be stored in the 'ElementName' "
"property for the created element. If not NULL, this "
"parameter will supply a new name when modifying an "
"existing element.")]
string ElementName,
[IN, Description (
"A reference to an existing instance of persistent "
"TPD_StorageSetting to be used as the template for "
"creation. This must be specified and cannot "
[Description (
"3PAR specific method to remove one or more StorageVolumes. "
"This method allows for multiple volumes to be removed "
"in one call. The freed space is returned to the source "
"StoragePool. If 0 is returned, the function completed "
"successfully."
"Return code of Partial Success (32768) means that only "
"some, but not all, of the StorageVolumes are successfully "
"removed."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "32768" },
Values { "Job Completed with No Error", "Not Supported",
"Unknown", "Timeout", "Failed", "Invalid Parameter",
"In Use", "Partial Success" }]
uint32 TPD_ReturnToStoragePool(
[IN, Description (
"If true, operation will not block until the StorageVolume "
"is removed. Removal of StorageVolume is performed in "
"the background. Only snapshot StorageVolume of CopyType "
"UnSyncAssoc and ReplicaType of After Delta can be removed "
"with this option; attempt to remove StorageVolume of "
"any other type results in an error. Default is false")]
boolean NoWait,
[IN, Description (
"References to one or more StorageVolumes to return to the StoragePool.")]
[Description (
"Start a job to update the actual space used by delta "
"snapshot volumes. This will cause the system to start updating "
"the actual space allocated from TPD_DeltaReplicaStoragePool to "
3PAR_TPD.mof 181
"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. If NULL, then update all delta snapshots "
"in the system.")]
TPD_StorageVolume REF SnapshotVolumes[],
[IN ( false ), OUT, Description (
"Reference to the job created.")]
TPD_ConcreteJob REF Job);
// ==================================================================
// 3PAR StorageConfigurationCapabilities
// ==================================================================
[Description
("3PAR StorageConfigurationCapabilities describes the storage "
"elements and methods supported by StorageConfigurationService.")]
class TPD_StorageConfigurationCapabilities :
SNIA_StorageConfigurationCapabilities
{
[Override ( "SupportedStorageElementFeatures" ),
Description (
"Enumeration indicating features supported by the Storage "
"Element methods." ),
ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "..",
"0x8000..0xFFFF" },
Values { "StorageExtent Creation", "StorageVolume Creation",
"StorageExtent Modification",
"StorageVolume Modification", "Single InPool",
"Multiple InPools", "LogicalDisk Creation",
"LogicalDisk Modification", "InElements",
"Storage Element QoS Change",
"Storage Element Capacity Expansion",
"Storage Element Capacity Reduction",
"StorageVolume To StoragePool Relocation",
"StoragePool To StoragePool Relocation",
"StorageVolume To StorageExtent Relocation",
"StoragePool To StorageExtent Relocation",
"LogicalDisk To StorageExtent Relocation",
"DMTF Reserved", "Vendor Specific" },
ModelCorrespondence {
"CIM_StorageConfigurationService.CreateOrModifyElementFromStoragePool.ElementType",
"CIM_StorageConfigurationService.CreateOrModifyElementFromStoragePool.InPool",
"CIM_StorageConfigurationService",
"CreateOrModifyElementFromElements.InElements",
"CIM_StorageConfigurationService.CreateElementsFromStoragePool.ElementType"
}]
uint16 SupportedStorageElementFeatures[];
};
// ==================================================================
// 3PAR StoragePoolConfigurationCapabilities
// ==================================================================
[Description
("3PAR StoragePoolConfigurationCapabilities describes the storage "
"elements and methods supported by a StoragePool.")]
class TPD_StoragePoolConfigurationCapabilities :
SNIA_StorageConfigurationCapabilities
{
};
3PAR_TPD.mof 183
// ==================================================================
// 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.") ]
class TPD_CapabilitiesOfStorageConfigurationService: CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"The StorageConfigurationService.")]
TPD_StorageConfigurationService REF ManagedElement;
// ==================================================================
// 3PAR CapabilitiesOfStoragePoolConfiguration
// ==================================================================
[Association,
Description (
"TPD_CapabilitiesOfStoragePoolConfiguration is an association "
"between StoragePoolConfigurationCapabilities and "
"StoragePool. This association is used to query "
"the features and functions supported by "
"StoragePool.") ]
class TPD_CapabilitiesOfStoragePoolConfiguration: CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"The StoragePool.")]
CIM_StoragePool REF ManagedElement;
// ==================================================================
// 3PAR System and ControllerConfigurationService association.
// ==================================================================
[Association,
Description (
"TPD_HostedStorageConfigurationService is an association "
"between TPD_StorageSystem and TPD_StorageConfigurationService. "
"The cardinality of this association is 1-to-1. A System may "
"host only one StorageConfigurationService. ")]
class TPD_HostedStorageConfigurationService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
3PAR_TPD.mof 185
[Description ("VLUN Change Notification (VCN) support."),
ValueMap {"0", "1", "2"},
Values {"Unknown", "Enable", "Disable"} ]
uint16 VCN;
// ==================================================================
// 3PAR FCAL Port
// ==================================================================
// [Description ("3PAR InServ FCAL Port ")]
// class TPD_FCALPort : CIM_FCPort
//{
// [Description (" "),
// ValueMap {"0", "1", "2", "4", "7", "8",
// "9", "10", "11"},
// Values {"config wait", "alpa wait", "login wait", "loss sync",
// "nonparticipate", "core dump", "offline",
// "fw dead", "link idle for reset"} ]
// uint16 OtherOperationalStatus;
// ==================================================================
// 3PAR SCSI Protocol Controller And FCPort association
// ==================================================================
[Association,
Description (
"3PAR InServ SCSI protocol controller and FC port"
" association. ")]
class TPD_ControllerForPort : CIM_ProtocolControllerForPort
{
[Override ("Antecedent"),
Description ("The SCSI Protocol Controller.") ]
TPD_SCSIController REF Antecedent;
// ==================================================================
// 3PAR SCSI Protocol Controller And StorageVolume association
// ==================================================================
[Association,
Description (
"3PAR InServ SCSI protocol controller and storage volume "
"association. ")]
class TPD_ControllerForUnit : CIM_ProtocolControllerForUnit
{
[Override ("Antecedent"),
Description ("The SCSI Protocol Controller.") ]
TPD_SCSIController REF Antecedent;
// ==================================================================
// 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. ")]
class TPD_SCSIProtocolFCEndpoint : CIM_SCSIProtocolEndpoint
{
[Description ("Connection mode, can be one of: "
" Disk - disk connection "
" Host - host connection "
" RCFC - RCFC connection "
" Peer - data migration connection."),
ValueMap {"0", "1", "2", "3"},
Values {"Disk", "Host", "RCFC", "Peer"} ]
uint16 ConnectionMode;
};
// ==================================================================
// 3PAR SCSIProtocolEndpoint on FC-AL card (connects to initiator
// endpoint on the node controller)
// ==================================================================
//[Description
// ("3PAR InServ SCSIProtocolEndpoint that resides on the "
// "FC-AL card. This endpoint is connected to the initiator FC "
// "endpoint the node controller.")]
//class TPD_SCSIProtocolFCALEndpoint : CIM_SCSIProtocolEndpoint
//{
//};
// ==================================================================
// 3PAR SCSIProtocolController And SCSIProtocolEndpoint association.
// NOTE: In SMI-S 1.1, this association replaces ControllerForPort
// association (SMI-S 1.02).
// ==================================================================
[Association,
Description (
"3PAR InServ SCSI protocol controller and the front end "
"target SCSIProtocolEndpoint association. ")]
class TPD_SAPAvailableForElement : CIM_SAPAvailableForElement
{
[Override ("AvailableSAP"), Description (
"The SCSIProtocolEndpoint (front end port).") ]
TPD_SCSIProtocolFCEndpoint REF AvailableSAP;
// ===================================================================
// DeviceSAPImplementation - association between SCSIEndpoint and
// FCPort
// ===================================================================
[Association,
Description (
"An association between a 3PAR SCSI protocol endpoint and its "
"implementation on FC port.")]
class TPD_FCPortSCSIEndpointImplementation: CIM_DeviceSAPImplementation {
3PAR_TPD.mof 187
// CIM_FCPort REF Antecedent; -- reenable this line if we support
TPD_SCSIInitTargetLUPath
// ==================================================================
// ControllerConfigurationService
// ==================================================================
[Description
("The ControllerConfigurationService provides methods that allow "
"a client to export and delete VLUNs in an InServ.")]
class TPD_ControllerConfigurationService : CIM_ControllerConfigurationService
{
[Override ("ExposePaths"), Description (
"3PAR version of the ExposePaths operation, adding an extra "
"property ResultDescription to better describe the result "
"of the expose path operation. \n"
"\n"
"Expose a list of SCSI logical units (such as RAID volumes "
"or tape drives) to a list of initiators through a list of "
"target ports, through one or more SCSIProtocolControllers "
"(SPCs). \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 - 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 create at least one SPC that satisfies "
"the request. Since "
"CIM_ProtocolControllerMaskingCapabilities.OneHardwareIDPerView "
"for the 3PAR InServ is true, more than one SPC could be created "
"if more than one initiatorID was passed in. If an SPC is "
"passed in, then the instrumentation attempts to add the new "
"paths to the existing SPC. \n"
"\n"
"For creating an SPC, all parameters, except ProtocolControllers, "
"MUST be specified since SPCAllowsNoLUs, SPCAllowsNoTargets and "
"SPCAllowsNoInitiators properties are all false, and "
"ClientSelectableDeviceNumbers property is true, for a 3PAR "
"InServ array. \n"
"\n"
"The LUNames, DeviceNumbers, and DeviceAccesses parameters "
"are mutually indexed arrays - any element in DeviceNumbers "
"or DeviceAccesses will set a property relative to the "
"LogicalDevice instance named in the corresponding element "
"of LUNames. LUNames, DeviceNumbers and DeviceAccesses MUST "
"have the same number of elements. If these conditions are "
"not met, the instrumentation MUST return a 'Invalid Parameter' "
"status or a CIM_Error. \n"
"\n"
"For modifying an SPC, the 3PAR InServ array supports only "
"the Add LUs to a view use case."
"Add LUs to a view requires that the LUNames and DeviceNumbers "
"parameters not be null and that the InitiatorIDs and 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. Otherwise, if this "
"parameter is null, all LU numbers are assigned by the "
"hardware or instrumentation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
3PAR_TPD.mof 189
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..15999", "16000.." },
Values { "Unknown", "Read Write", "Read-Only", "No Access",
"DMTF Reserved", "Vendor Reserved" },
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceAccess" }]
uint16 DeviceAccesses[],
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean Override,
[IN, Description (
"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). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of each "
"expose path operation.")]
string ResultDescriptions[]);
[IN, Description (
"IDs of initiator ports. See the method description for "
"conditions where this MAY be null."),
ModelCorrespondence { "CIM_StorageHardwareID.StorageID" }]
string InitiatorPortIDs[],
[IN, Description (
"IDs of target ports. See the method description for "
"conditions where this MAY be null."),
ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }]
string TargetPortIDs[],
[IN, Description (
3PAR_TPD.mof 191
"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.DeviceNumber"}]
string DeviceNumbers[],
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide path operation.")]
string ResultDescriptions[]);
[Deprecated { "ExposePaths" },
Override ("ExposeDefaultLUs"), Description (
"3PAR version of the ExposeDefaultLUs operation, adding an extra "
"property ResultDescription to better describe the result "
"of the expose logical units operation. \n"
"This method is deprecated in favor of ExposePaths; port-present "
"vluns are created via ExposePaths by setting InitiatorPortIDs to "
"NULL.\n"
"Expose a list of SCSI logical units (such as RAID volumes "
"or tape drives) through a 'default view' "
"SCSIProtocolController (SPC) through a list of target "
"ports. The 'default view' SPC exposes logical units to all "
"initiators. This SPC is identified by an association to a "
"StorageHardwareID with Name property set to the empty "
"string. \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. "
"TargetPortIDs - the names of the target ports to use. "
"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 "
3PAR_TPD.mof 193
"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. Otherwise, if this "
"parameter is null, all LU numbers are assigned by the "
"hardware or instrumentation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
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 all "
"initiators, but does not grant read or write access. If "
"the LUNames parameter is not null then this parameter "
"MUST be specified."),
ValueMap { "0", "2", "3", "4", "5..15999", "16000.." },
Values { "Unknown", "Read Write", "Read-Only", "No Access",
"DMTF Reserved", "Vendor Reserved" },
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceAccess" }]
uint16 DeviceAccesses[],
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean Override,
[IN, Description (
"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). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
[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."
"\n"
"Hide a list of SCSI logical units (such as RAID volumes or "
"tape drives) through a list of target ports on a default "
"view 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. "
"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. \n"
"\n"
"The LUNames and the optional DeviceNumbers parameters "
"are mutually indexed arrays - any element in DeviceNumbers "
"will set a property relative to the "
"LogicalDevice instance named in the corresponding element "
"of LUNames. DeviceNumbers MUST be null (the provider will "
"deduce the DeviceNumbers of all the LU's in LUNames) or have "
"the same number of elements as LUNames. If these conditions "
"are not met, the instrumentation MUST return a 'Invalid Parameter' "
"status or a CIM_Error. \n"
"\n"
"When hiding logical units, 3PAR InServ array supports only "
"the Remove LUs from a default view use case. "
"Remove LUs from a default view requires that the "
"LUNames parameter not be null and that the TargetPortIDs "
"parameters be null. \n"
"\n"
"The SPC is automatically deleted when the last logical unit "
"is removed since SPCAllowsNoLUs is false."),
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096",
"4097", "4098", "4099", "4100..32767", "32768..65535" },
Values { "Success", "Not Supported", "Unspecified Error",
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
"Method Parameters Checked - Job Started",
"Invalid logical unit ID", "Invalid target port ID",
"Maximum Map Count Error", "Method Reserved",
"Vendor Specific" }]
uint32 HideDefaultLUs (
[IN ( false ), OUT, Description (
"Reference to the job if 'Method Parameters Checked - Job "
"Started' is returned (MAY be null if job completed).")]
CIM_ConcreteJob REF Job,
3PAR_TPD.mof 195
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. Use of this parameter is optional, "
"but its use will enhance efficiency of the HideDefaultLUs "
"operation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber" }]
string DeviceNumbers[],
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide default LU operation.")]
string ResultDescriptions[]);
[Description (
"Expose a list of SCSI logical units (such as RAID volumes "
"or tape drives) to a list of StorageHardwareIDCollections "
"(host names), through a list of target ports if specified. "
"If target port ids are not specified, the logical units "
"will be visible to all InitiatorPortIDs that are member "
"of the StorageHardwareIDCollections (host see vluns). If "
"target ports are specified, the logical units will be visible "
"to InitiatorPortIDs that are member of the "
"StorageHardwareIDCollections and that are connected to/zoned with "
"the target ports (matched set vluns).\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. "
"HostNames - the names of the StorageHardwareIDCollection to use. "
3PAR_TPD.mof 197
"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. The members of this array "
"MUST match the Name property of LogicalDevice instances "
"that represent SCSI logical units. See the method "
"description for conditions where this MAY be null."),
ModelCorrespondence { "CIM_LogicalDevice.Name"}]
string LUNames[],
[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. Otherwise, if this "
"parameter is null, all LU numbers are assigned by the "
"hardware or instrumentation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
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 all "
"initiators, but does not grant read or write access. If "
"the LUNames parameter is not null then this parameter "
"MUST be specified."),
ValueMap { "0", "2", "3", "4", "5..15999", "16000.." },
Values { "Unknown", "Read Write", "Read-Only", "No Access",
"DMTF Reserved", "Vendor Reserved" },
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceAccess" }]
uint16 DeviceAccesses[],
[IN, Description (
"Override existing lower priority VLUNs, if necessary. "
"Can be used only when exporting to a specific host. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean Override,
[IN, Description (
"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). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"expose LUs to StorageHardwareIDCollection operation.")]
string ResultDescriptions[]);
[Description (
"Hide a list of SCSI logical units (such as RAID volumes or "
"tape drives) through a list of StorageHardwareIDCollections. \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. "
"DeviceNumbers (optional) - the device numbers (LUNs) to use. "
"ProtocolControllers - SPCs involved in this operation. \n"
"\n"
"The LUNames and the optional DeviceNumbers parameters "
"are mutually indexed arrays - any element in DeviceNumbers "
"will set a property relative to the "
"LogicalDevice instance named in the corresponding element "
"of LUNames. DeviceNumbers MUST be null (the provider will "
"hide all LU's in LUNames on the SPC) or have the same number "
"of elements as LUNames. If these conditions are not met, "
"the instrumentation MUST return a 'Invalid Parameter' "
"status or a CIM_Error. \n"
"\n"
"When hiding logical units, 3PAR InServ array supports only "
"the Remove LUs from a view use case. "
"Remove LUs from a view requires that the "
"LUNames parameter not be null.\n"
"\n"
"The SPC is automatically deleted when the last logical unit "
"is removed since SPCAllowsNoLUs is false."),
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096",
"4097", "4098", "4099", "4100..32767", "32768..65535" },
Values { "Success", "Not Supported", "Unspecified Error",
3PAR_TPD.mof 199
"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. Each LU instance MUST "
"already exist. See the method description for conditions "
"where this MAY be null."),
ModelCorrespondence {
"CIM_LogicalDevice.Name"}]
string LUNames[],
[IN, Description (
"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 HideDefaultLUs "
"operation."),
ModelCorrespondence {
"CIM_ProtocolControllerForUnit.DeviceNumber"}]
string DeviceNumbers[],
[IN, Description (
"Do not issue a VLUN (Virtual Logical Unit Number) Change "
"Notification (VCN) after removal. For direct connect or "
"loop configuration, a VCN consists of a Fibre Channel "
"Loop Initialization Primitive (LIP). For fabric "
"configuration a VCN consists of Registered State Change "
"Notification (RSCN) being sent to the fabric controller. "
"This parameter is a vendor-specific extension for 3PAR. "
"The default value is false.")]
boolean NoVCN,
[OUT, Description (
"An array of descriptive text of the result of the operation, "
"with each entry containing the result of the "
"hide default LU operation.")]
string ResultDescriptions[]);
};
// ==================================================================
// ProtocolControllerMaskingCapabilities
// ==================================================================
[Description
("A subclass of Capabilities that defines the Masking-related "
// ==================================================================
// SystemControllerMaskingCapabilities
// ==================================================================
[Association,
Description (
"TPD_SystemControllerMaskingCapabilities is an association between "
"StorageSystem and ProtocolControllerMaskingCapabilities.") ]
class TPD_SystemControllerMaskingCapabilities : CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"The StorageSystem.")]
TPD_StorageSystem REF ManagedElement;
// ==================================================================
// ConfigServicesForSCSIController Association
// ==================================================================
[Association,
Description (
"TPD_ConfigServicesForSCSIController is an association between "
"TPD_SCSIController and ControllerConfigurationService.") ]
class TPD_ConfigServicesForSCSIController : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The controller configuration service which the protocol "
"controller depends on for configuration.")]
TPD_ControllerConfigurationService REF Antecedent;
// ==================================================================
// 3PAR Storage System and Storage Volume association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR InServ Storage System and Storage Volume Association ") ]
class TPD_SystemVolume : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description ("The storage system.") ]
TPD_StorageSystem REF GroupComponent;
3PAR_TPD.mof 201
};
// ==================================================================
// 3PAR SoftwareIdentity
// ==================================================================
[Description (
"3PAR SoftwareIdentity describes Inform OS version loaded "
"on InServ")]
class TPD_SoftwareIdentity : CIM_SoftwareIdentity
{
};
// ==================================================================
// 3PAR InstalledSoftwareIdentity
// ==================================================================
[Association,
Description (
"3PAR InstalledSoftwareIdentity is an association between "
"the system and Inform OS identity.")]
class TPD_InstalledSoftwareIdentity : CIM_InstalledSoftwareIdentity
{
[Override ("System"), Description (
"The system on which the Inform software is "
"installed. ") ]
TPD_StorageSystem REF System;
// ==================================================================
// 3PAR's system package describes InServ's system packaging attributes
// including model, serial number and OS version
// ==================================================================
[Description (
"3PAR system package describes InServ's system packaging attributes "
" including model, serial number and OS version. ")]
class TPD_SystemPackage : CIM_PhysicalPackage
{
};
// ==================================================================
// 3PAR Storage System and System Package association
// ==================================================================
[Association,
Description (
"3PAR InServ Storage System and System Package Association.") ]
class TPD_ComputerSystemPackage : CIM_ComputerSystemPackage
{
[Override ("Antecedent"),
Description ("The InServ's physical package.") ]
TPD_SystemPackage REF Antecedent;
// ==================================================================
// 3PAR StorageCapabilities
// ==================================================================
[Description (
"This is the maximum grow increment. When a StorageVolume or "
"a DynamicStoragePool grows on demand, the system may allocates upto "
"this number of bytes"),
Units ( "Bytes" )]
uint64 AllocationUnitMax;
[Description (
"This is the minimum grow increment. When a StorageVolume or "
"a DynamicStoragePool grows on demand, the system may allocates at least "
"this number of bytes"),
Units ( "Bytes" )]
uint64 AllocationUnitMin;
[Description (
"This is the default grow increment. When a StorageVolume or "
"a DynamicStoragePool grows on demand, the system may allocates the "
"default number of bytes"),
Units ( "Bytes" )]
uint64 AllocationUnitDefault;
[Description (
"Warning threshold for generating an indication for "
" RemainingManagedSpace. Value of zero means no warning generated. "
"Triggered when "
" RemainingManagedSpace <=
(TotalManagedSpace*LowSpaceLimitWarningThreshold)/100."
" MinValue = 0, MaxValue = 100 "
"This is 0 for both concrete pool and DynamicStoragePool. This property"
" is not populated for all other kinds of pools"),
Units ( "Percent" )]
uint16 LowSpaceWarningThresholdDefault;
[Description (
"Warning threshold for generating an indication for "
"SpaceConsumed. Value of zero means no warning generated. "
"Triggered when "
" SpaceConsumed >= (SpaceLimit*SpaceLimitWarningThreshold)/100."
" MinValue = 0, MaxValue = 100 "
"This is 0 for both concrete pool and DynamicStoragePool. This property"
" is not populated for all other kinds of pools"),
Units ( "Percent" )]
uint16 SpaceLimitWarningThresholdDefault;
};
// ==================================================================
// 3PAR CapabilitiesOfStoragePool
// ==================================================================
[Association,
Description (
"TPD_CapabilitiesOfStoragePool is an association between "
"StoragePool and StorageCapabilities."
"This association is used to figure out the service quality (RAID types)"
3PAR_TPD.mof 203
" that a StoragePool can support.") ]
class TPD_CapabilitiesOfStoragePool: CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"TPD_StoragePool or TPD_DeltaReplicaStoragePool.")]
CIM_StoragePool REF ManagedElement;
// ===================================================================
// 3PAR StorageSettingsAssociatedToCapabilities
// ===================================================================
[Association, Description (
"This association define StorageSettings that reflect the "
"capabilities of the associated StorageCapabilities. The "
"associated StorageSetting MAY NOT define the operational "
"characteristics (through settings properties) of any storage "
"element. Certain StorageSetting instances can be defined as "
"\"Fixed = Not Changeable\" by using the \"ChangeableType\" "
"attribute. \"Fixed\" settings have this special association. "
"This association SHALL be defined between \"Fixed - Not "
"Changeable\" instances of StorageSetting with the "
"StorageCapabilities instances that are associated with the "
"StoragePools which support the storage characteristics "
"described by the StorageSetting instance. \n"
"Fixed settings MAY be associated to many StorageCapabilities.")]
class TPD_StorageSettingsAssociatedToCapabilities :
CIM_StorageSettingsAssociatedToCapabilities
{
[Override ( "Antecedent" ), Description (
"3PAR StorageCapabilities.")]
TPD_StorageCapabilities REF Antecedent;
// ===================================================================
// 3PAR StorageSettingsGeneratedFromCapabilities
// ===================================================================
[Association, Description (
"This association define StorageSettings that reflect the "
"capabilities of the associated StorageCapabilities. The "
"associated StorageSetting may not define the operational "
"characteristics (through settings properties) of any storage "
"element. StorageSettingsGeneratedFromCapabilities is the "
"association between instances of StorageCapabilities and those "
"instances of StorageSetting that have been created from the "
"StorageCapabilities instance using the StorageCapabilities "
"\"CreateSetting\" method. These settings have a "
"StorageSetting.ChangeableType of \"Changeable - Transient\" or "
"\"Changeable - Persistent\" The settings associated by this "
"class reflect the capabilities from which they are generated. "
"These setting SHALL be associated with one "
"StorageCapabilities. \n"
"A generated setting can be deleted by the implementation at "
"any time if it is a a StorageSetting of \"Changed - "
"Transient\" ChangeableType. \n"
"A client should not use this association to find transient "
"Settings to subsequently modify and/or use because that would "
"increase the likelihood of setting contention across clients. "
// ==================================================================
// 3PAR's product package describes InServ's product attributes
// including vendor name, product name, serial number and OS version
// ==================================================================
[Description (
"3PAR product package describes InServ's product attributes"
" including vendor name, product name, serial number and OS version. ")]
class TPD_Product : CIM_Product
{
};
// ==================================================================
// 3PAR Product and System Package association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR InServ Product and System Package Association.") ]
class TPD_ProductPhysicalComponent : CIM_ProductPhysicalComponent
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description ("The InServ product.") ]
TPD_Product REF GroupComponent;
};
// ==================================================================
// StorageHardwareID
// ==================================================================
[Description (
"StorageHardwareID represents the host HBA.")]
class TPD_StorageHardwareID : CIM_StorageHardwareID
{
[Description ( "IP Address for this HBA.") ]
String IPAddress;
};
// ==================================================================
// AuthorizedPrivilege
// ==================================================================
[Description (
"AuthorizedPrivilege represents the access permission "
"that a StorageHardwareID is allowed on a "
"SCSIProtocolController.")]
class TPD_AuthorizedPrivilege : CIM_AuthorizedPrivilege {
};
3PAR_TPD.mof 205
// ==================================================================
// 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. Whether the privilege is "
"granted or denied is defined by the inherited property, "
"CIM_Privilege.PrivilegeGranted.")]
TPD_AuthorizedPrivilege REF Privilege;
// ==================================================================
// PrivilegeForSCSIController
// ==================================================================
[Association, Description (
"PrivilegeForSCSIController is an association used to tie the "
"AuthorizedPrivileges to SCSIProtocolController resources.")]
class TPD_PrivilegeForSCSIController : CIM_AuthorizedTarget {
// ==================================================================
// StorageHardwareIDCollection
// ==================================================================
[Description (
"A collection of StorageHardwareIDs (host WWN) within a host.")]
class TPD_StorageHardwareIDCollection : CIM_SystemSpecificCollection {
[Description (
"System assigned ID for this host collection.")]
uint64 ID;
[Description (
"Name of the administrative domain that this host collection belongs "
"to.\n")]
String Domain;
};
// ==================================================================
// PrivilegeForStorageHardwareIDCollection
// ==================================================================
[Association,
// ==================================================================
// MemberOfStorageHardwareIDCollection
// ==================================================================
[Association, Aggregation, Description (
"MemberOfStorageHardwareIDCollection is an aggregation used "
"to establish membership of StorageHardIDs (host WWNs) in a "
"host.")]
class TPD_MemberOfStorageHardwareIDCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the "
"MemberOfStorageHardwareIDCollection.")]
TPD_StorageHardwareID REF Member;
};
// ==================================================================
// StorageHardwareIDManagementService
// ==================================================================
[Description (
"StorageHardwareIDManagementService provides methods for "
"manipulating instances of StorageHardwareIDs and manipulating "
"the trust of these IDs in the underlying storage system.")]
class TPD_StorageHardwareIDManagementService :
CIM_StorageHardwareIDManagementService {
3PAR_TPD.mof 207
"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.")]
string HardwareIDs[],
[IN, Description (
"REF to the StorageClientSettingData containing the "
"OSType appropriate for this initiator. If left NULL, the "
"instrumentation assumes a standard OSType - i.e., that "
"no OS-specific behavior for this initiator is defined.")]
CIM_StorageClientSettingData REF Setting,
[IN, Description (
"Name of the administrative domain.")]
String Domain,
[IN, Description (
"The target CHAP name. If this value is not "
"specified, then the CHAP name defaults to the HP 3PAR "
"System name. Applicable only if TargetSecret is set.")]
string TargetCHAPName,
[IN, Description (
"Whether the initiator CHAP secret is treated as an ASCII "
"string or as hex number. If this value is not specified then it "
"defaults to ASCII. Applicable only if InitiatorSecret is set."),
ValueMap { "0", "1" },
Values { "ASCII", "Hexadecimal" }]
Uint16 InitiatorSecretType,
[IN, Description (
"Whether the target CHAP secret is treated as an ASCII "
"string or as hex number. If this value is not specified then it "
"defaults to ASCII. Applicable only if TargetSecret is set."),
ValueMap { "0", "1" },
Values { "ASCII", "Hexadecimal" }]
[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.")]
string TargetSecret,
[IN, Description (
"Reference to the iSCSI StorageHardwareIDCollection.")]
CIM_SystemSpecificCollection REF Collection );
[Description (
"Remove CHAP authentication on the host as specified in "
"Collection."),
ValueMap { "0", "4", "5", "0x1000" },
Values { "Success", "Failed", "Invalid Parameter",
"Non-existent Collection" }]
uint32 RemoveISCSICHAP(
[IN, Description (
"Remove target CHAP only or both target and init CHAP. "
"If this value is not specified then both target and "
"init CHAP will be deleted."),
ValueMap { "1", "2" },
Values { "Target", "Both Target and Initiator" }]
Uint16 RemovalScope,
[IN, Description (
"Reference to the iSCSI StorageHardwareIDCollection.")]
CIM_SystemSpecificCollection REF Collection );
};
// ==================================================================
// HostedStorageHWIDManagementService
// ==================================================================
[Association, Description (
"TPD_HostedStorageHWIDManagementService is an association "
"between TPD_StorageSystem and "
"TPD_StorageHardwareIDManagementService. The cardinality of "
"this association is 1-to-1. A System may host only one "
"StorageHardwareIDManagementService. ")]
class TPD_HostedStorageHWIDManagementService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// HostedStorageHardwareIDCollection
// ==================================================================
[Association, Description (
3PAR_TPD.mof 209
"HostedStorageHardwareIDCollection defines a "
"TPD_StorageHardwareIDCollection in a context of a scoping "
"TPD_StorageSystem.")]
class TPD_HostedStorageHardwareIDCollection : CIM_HostedCollection {
// ==================================================================
// MgmtServicesForStorageHWIDCollection Association
// ==================================================================
[Association,
Description (
"TPD_MgmtServicesForStorageHWIDCollection is an association between "
"TPD_StorageHardwareID or TPD_StorageHardwareIDCollection and "
"TPD_StorageHardwareIDManagementService.") ]
class TPD_MgmtServicesForStorageHWIDCollection : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The storage hardware ID management service which the "
"StorageHardwareIDCollection depends on for configuration.")]
TPD_StorageHardwareIDManagementService REF Antecedent;
};
// ==================================================================
// PrivilegeManagementService
// ==================================================================
[Description (
"3PAR PrivilegeManagementService is responsible for creating, "
"deleting, and associating AuthorizedPrivilege instances. "
"References to 'subject' and 'target' define the entities that "
"are associated with an AuthorizedPrivilege instance via the "
"relationships, AuthorizedSubject and AuthorizedTarget, "
"respectively. When created, an AuthorizedPrivilege instance is "
"related to this (PrivilegeManagement)Service via the "
"association, ConcreteDependency. Note: 3PAR does not support"
"changing or removing AuthorizedPrivilege.")]
class TPD_PrivilegeManagementService : CIM_PrivilegeManagementService
{
};
// ==================================================================
// 3PAR StorageSystem and PrivilegeManagementService association.
// ==================================================================
[Association,
Description (
"TPD_HostedPrivilegeManagementService is an association "
"between TPD_StorageSystem and TPD_PrivilegeManagementService. "
"The cardinality of this association is 1-to-1. A System may "
"host only one PrivilegeManagementService. ")]
class TPD_HostedPrivilegeManagementService : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// ManagementServicesForAuthorizedPrivilege association
// ==================================================================
[Association,
Description (
"TPD_ManagementServiceForAuthorizedPrivilege is an association "
"between TPD_PrivilegeManagementService and "
"TPD_AuthorizedPrivilege.") ]
class TPD_ManagementServiceForAuthorizedPrivilege : CIM_ConcreteDependency
{
[Override ( "Antecedent" ), Description (
"The privilege management service which supports "
"authorized privilege.")]
TPD_PrivilegeManagementService REF Antecedent;
// ==================================================================
// Indication
// ==================================================================
[Indication,
Description (
"Indication specifying that the operational status of an FC "
"port has changed.")
]
class TPD_FCPortInstModification : CIM_InstModification
{
};
// ==================================================================
// ThinProvisioning indications
// ==================================================================
[Indication,
Description (
"Indication specifying that the state of an alert condition "
"has changed. ID of the alert which state has changed is in "
"CorrelatedIndications.")
]
class TPD_AlertStateChangeAlert : CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a storage pool "
"has been over-used.")
]
class TPD_StoragePoolOverUsedWarningAlert : CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a storage pool has reached its "
"allocation warning threshold.")
]
3PAR_TPD.mof 211
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_StorageVolumeAllocationFailureAlert : CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a storage volume has reached its "
"allocation warning threshold..")
]
class TPD_StorageVolumeAllocationWarningAlert : CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a storage volume has reached its "
"its allocation limit threshold.")
]
class TPD_StorageVolumeAllocationLimitAlert : CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a delta replica storage pool "
"has reached its allocation warning threshold.")
]
class TPD_DeltaReplicaStoragePoolGrowWarningAlert: CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a delta replica storage pool "
"has reached its allocation limit threshold.")
]
[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.")
]
class TPD_StoragePoolCapacityClearAlert: CIM_AlertIndication
{
};
[Indication,
Description (
"Indication indicating that the previous alert condition "
"regarding a storage volume has cleared.")
]
class TPD_StorageVolumeCapacityClearAlert: CIM_AlertIndication
{
};
[Indication,
Description (
"Indication indicating that the previous alert condition "
"regarding a delta replica storage pool has cleared.")
]
class TPD_DeltaReplicaStoragePoolCapacityClearAlert: CIM_AlertIndication
{
};
[Indication,
Description (
"Indication specifying that a storage volume has has failed to "
"allocate snapshot space for user data.")
]
class TPD_SnapshotUserSpaceAlert : CIM_AlertIndication
{
};
// ==================================================================
// 3PAR System and ControllerConfigurationService association.
// ==================================================================
[Association,
Description (
"TPD_SystemHostedCCS is an association between TPD_StorageSystem "
"and TPD_ControllerConfigurationService. The cardinality of "
"this association is 1-to-1. A System may host only one "
"ControllerConfigurationService. ")]
class TPD_SystemHostedCCS : CIM_HostedService {
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
3PAR_TPD.mof 213
[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 (
"The current bandwidth of the SFP in Bits per Second."),
Units ( "Bits per Second" )]
uint64 Speed;
// ==================================================================
// 3PAR Port SFP
// ==================================================================
[Association, Description (
"A relationship between FCPort and it's SFP.")]
class TPD_FCPortSFP : CIM_PortActiveConnection {
// ==================================================================
// 3PAR StorageClientSettingData
// ==================================================================
// 3PAR SystemClientSettingData
// ==================================================================
[Association,
Description (
"TPD_SystemClientSettingData is an association between "
"ComputerSystem and StorageClientSettingData.") ]
class TPD_SystemClientSettingData : CIM_ElementSettingData
{
[Override ("ManagedElement"), Description (
"The CmputerSystem.")]
TPD_StorageSystem REF ManagedElement;
// ==================================================================
// 3PAR HardwareIDElementSettingData
// ==================================================================
[Association,
Description (
"TPD_HardwareIDElementSettingData is an association between "
"StorageHardwareID and StorageClientSettingData.") ]
class TPD_HardwareIDElementSettingData: CIM_ElementSettingData
{
[Override ("ManagedElement"), Description (
"The StorageHardwareID.")]
TPD_StorageHardwareID REF ManagedElement;
// ==================================================================
// 3PAR HWIDCollectionElementSettingData
// ==================================================================
[Association,
Description (
"TPD_HWIDCollectionElementSettingData is an association between "
"StorageHardwareIDCollection and StorageClientSettingData.") ]
class TPD_HWIDCollectionElementSettingData : CIM_ElementSettingData
{
[Override ("ManagedElement"), Description (
3PAR_TPD.mof 215
"The StorageHardwareIDCollection.")]
TPD_StorageHardwareIDCollection REF ManagedElement;
[Description (
"An array of domains in the group."),
ArrayType ( "Indexed" )]
string GroupMembers[];
};
// ==================================================================
// HostedStorageDomainGroup
// ==================================================================
[Association, Description (
"HostedStorageDomainGroup defines a "
3PAR_TPDCage.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_TPDCage.mof
//
// Purpose : This MOF contains 3PAR Cage classes that will be loaded
// into root/tpd namespace.
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// Base TPD Drive Cage
// ==================================================================
[Description (
"Base 3PAR Drive Cage")]
class TPD_DriveCage : CIM_Chassis
{
[Description ("Type of the cage."), Read,
ValueMap {"0", "2", "3", "4", "5"},
Values {"Unknown", "DC1", "DC2", "DC3", "DC4"} ]
uint16 CageType;
// ==================================================================
// DC1 TPD Drive Cage
// ==================================================================
[Description (
"DC1 3PAR Drive Cage")]
class TPD_DriveCageDC1Family : TPD_DriveCage
{
[Description ("Is Left side of the cage."), Read ]
boolean IsLeftSide;
// ==================================================================
// DC3 TPD Drive Cage
// ==================================================================
3PAR_TPDCage.mof 217
[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;
// ==================================================================
// DC2 or DC4 TPD Drive Cage
// ==================================================================
[Description (
"DC2 or DC4 3PAR Drive Cage")]
class TPD_DriveCageDC2Family : TPD_DriveCage
{
[Description ("Firmware version on the midplane CPU."), Read ]
string FirmwareVersion;
// ==================================================================
// Base TPD Cage Interface Card
// ==================================================================
[Description (
"Base 3PAR Cage Interface Card ")]
class TPD_CageInterfaceCard : CIM_Card
{
[Description ("WWN of the Loop A ports in Interface Card. Array index 0"
" represents Loop A0, array index 1 represents"
" Loop A1, etc.") ]
uint64 LoopAPortWWNs[];
[Description ("WWN of the Loop B ports in Interface Card. Array index 0"
" represents Loop B0, array index 1 represents"
" Loop B1, etc.") ]
uint64 LoopBPortWWNs[];
[Description ("WWN of the Node FC Port connected to A Loop(s). Array index 0"
" represents Loop A0, array index 1 represents"
" Loop A1, etc.") ]
uint64 NodePortsLoopA[];
[Description ("WWN of the Node FC Port connected to B Loops. Array index 0"
" represents Loop B0, array index 1 represents"
" Loop B1, etc.") ]
uint64 NodePortsLoopB[];
// ==================================================================
// TPD Cage Interface Card for DC1 cage
// ==================================================================
[Description (
"3PAR Cage Interface Card for DC1 cage")]
class TPD_CageInterfaceCardDC1Family : TPD_CageInterfaceCard
{
[Description ("Split LED status."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"}
]
uint16 SplitLED;
3PAR_TPDCage.mof 219
[Description ("System LED status."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"}
]
uint16 SystemLED;
// ==================================================================
// TPD Cage Interface Card for DC3 cage
// ==================================================================
[Description (
"3PAR Cage Interface Card for DC3 cage. DC3 cage has 2 FC-ALs, with one "
"having four A loops, and the other four B loops."
"Check LoopPosition to see if Cage Interface instance for A or B.")]
class TPD_CageInterfaceCardDC3Family : TPD_CageInterfaceCard
{
"Not Available"} ]
uint16 IFCState;
3PAR_TPDCage.mof 221
[Description ("Extended State of Interface Card ESH. Use this when ESHState"
"is set to 2"),
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
Values {"Unknown", "OK", "Microcontroller Failed POST",
"Microcontroller FATAL Error", "ASIC Not Functioning",
"ASIC Failed POST", "ASIC Port Failed POST",
"ASIC Clock Delta Beyond Threshold", "Unavailable"} ]
uint16 ExtendedESHState;
};
// ==================================================================
// TPD Cage Interface Card for DC2 or DC4 cage
// ==================================================================
[Description (
"3PAR Cage Interface Card for DC2 or DC4 cage")]
class TPD_CageInterfaceCardDC2Family : TPD_CageInterfaceCard
{
[Description ("Split LED status."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"}
]
uint16 SplitLED;
// ==================================================================
// 3PAR Drive Cage and Cage Interface Card association
// ==================================================================
[Association, Aggregation,
Description (
"3PAR Drive Cage and Interface Card association")]
class TPD_InterfaceCardInDriveCage : CIM_PackageInChassis {
// ===================================================================
// Base 3PAR Magazine
// ===================================================================
[Description (
"Base 3PAR Disk Magazine ")]
class TPD_Magazine : CIM_Magazine {
3PAR_TPDCage.mof 223
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 {
// ==================================================================
// TPD_SystemPackage and TPD_DriveCage association
// ==================================================================
[Association, Aggregation, Description (
"The SysCageContainer association represents the relationship between "
"a TPD_SystemPackage and TPD_DriveCage.")]
class TPD_SysCageContainer : CIM_Container {
// ==================================================================
// TPD Cage Sensor
// ==================================================================
[Description (
"TPD Cage Sensor information")]
class TPD_CageSensor : CIM_Sensor
{
[Description ("Position of the Sensor in the cage.") ]
uint16 Position;
// ==================================================================
// 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 {
3PAR_TPDCopySvcs.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_TPDCopySvcs.mof
//
// Purpose : This MOF contains 3PAR Copy Services classes that will be loaded
// into root/tpd namespace.
//
// Date created: 3/19/2007
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// 3PAR delta replica storage pool
// ==================================================================
[Description (
"Storage Pool representing the SA/SD space of a volume that is "
"used to create a virtual copy.")]
class TPD_DeltaReplicaStoragePool: SNIA_StoragePool
{
[Description (
"Type of disk drives that are in this pool."),
ValueMap {"0", "1", "2", "3", "4"},
Values {"Unknown", "FC", "Nearline", "Allocated from DynamicStoragePool", "SSD"}
]
uint16 DiskDeviceType;
[Description (
"Describe the RAID type of the volume that is associated to this "
"pool."),
3PAR_TPDCopySvcs.mof 225
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.")]
class TPD_ReplicaPoolForStorage : CIM_ReplicaPoolForStorage {
[Override ( "Antecedent" ), Min ( 0 ), Max ( 1 ), Description (
"The source volume.")]
TPD_StorageVolume REF Antecedent;
// ==================================================================
// 3PAR StorageReplicationCapabilities
// ==================================================================
[Description (
"This subclass defines the replication capabilities of a "
"StorageConfigurationService. Multiple instances of "
"StorageReplicationCapabilities may be associated with a "
"StorageConfigurationService using ElementCapabilities. A "
"provider should create one instance for each supported "
"SynchronizationType.")]
class TPD_StorageReplicationCapabilities : CIM_StorageReplicationCapabilities
{
[Description (
"Maximum number of replicas that can be associated "
"with one read-only source volume. This applies only "
"to SupportedSynchronizationType of UnsyncAssoc-Delta "
"since only snapshot volume can be read-only.")]
uint16 MaximumReplicasPerReadOnlySource;
[Description (
"Maximum number of replicas that can be associated "
"with one read-write source volume. This applies to "
"both SupportedSynchronizationType of UnsyncAssoc-Delta "
"and UnSyncAssoc-Full since InServ can have read-write "
"snapshot or base volumes.")]
uint16 MaximumReplicasPerReadWriteSource;
};
// ==================================================================
// 3PAR StorageSynchronized
// ==================================================================
[Association,
Description (
"Indicates that two Storage objects were replicated at the "
"specified point in time.")]
class TPD_StorageSynchronized : CIM_StorageSynchronized {
[Override ( "SystemElement" ), Description (
"SystemElement represents the Volume that is the source of "
"the replication.")]
TPD_StorageVolume REF SystemElement;
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.
//
//
//%////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
// File : 3PAR_TPDDisk.mof
//
// Purpose : This MOF contains 3PAR Disk classes that will be loaded
// into root/tpd namespace. (Disk Drive Lite)
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
[Description (
"3PAR Disk Drive ")]
class TPD_DiskDrive : CIM_DiskDrive {
3PAR_TPDDisk.mof 227
[Description ("State of Disk on Loop A."),
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
"12", "13", "14", "15", "16", "0x0411", "0x0414", "0x0415", "0x0417",
"0x0418", "0x0421", "0x0423", "0x0424", "0x0425", "0x0426", "0x0427",
"0x0428", "0x0432", "0x0433", "0x0434", "0x0435", "0x0436", "0x0437",
"0x0438", "0x0439", "0x043B", "0x043C", "0x043E", "0x043F", "0x0440",
"0x0441", "0x0442", "0x044F", "0x0450", "0x0451"},
Values {"Unknown", "Not Present", "Offloop", "New Onloop", "Spinning Up",
"OK", "Spin Up Failed", "Loop Failed", "Drive Error Bit On",
"Bypass, System Manager", "Manual Bypass, Port", "Not Ready",
"Spundown, System Manager", "Spundown, Port", "Spundown, Over Temperature",
"Spinning Down Fail", "I2C Transaction Failed",
"Warning,High LIP", "Warning,Word Error Burst", "Warning,Word Error High",
"Warning,High CRC", "Warning,High Clock Delta", "Bypass",
"Bypass,TX Fault", "Bypass,LIP", "Bypass,DTMOUT", "Bypass,RX Loss",
"Bypass,Sync Loss", "Bypass,PTFI", "Manual Bypass,Redundant Port",
"Manual Bypass,Stall Threshold", "Manual Bypass,Word Error Burst",
"Manual Bypass,Word Error High", "Manual Bypass,Burst CRC",
"Manual Bypass,High CRC", "Manual Bypass,High Clock Delta",
"Manual Bypass,Mirror", "Manual Bypass,Host", "Manual Bypass,Trunked Cable",
"Manual Bypass,TBD", "Loopback", "Manual Bypass,Ins_Osc",
"Manual Bypass,Burst LIP", "Manual Bypass,High LIP",
"Manual Bypass,Diag Transmit",
"Manual Bypass,Drive Bypass", "Manual Bypass,Drive Fault"} ]
uint16 StateOnLoopA;
3PAR_TPDDisk.mof 229
Values {"Unknown", "Not Present", "OK", "Failed"} ]
uint16 ESIState;
};
// ==================================================================
// 3PAR DiskDrivePackage
// ==================================================================
[Description (
"3PAR Disk Drive Package for Vendor, Model, and Serial Number")]
class TPD_DiskDrivePackage : CIM_PhysicalPackage {
};
// ==================================================================
// 3PAR DiskDrive and DiskDrivePackage mapping
// ==================================================================
[Association,
Description (
"3PAR DiskDrivePackage and DiskDrive mapping")]
class TPD_DiskPackageRealizes : CIM_Realizes {
// ==================================================================
// 3PAR Disk StorageExtent
// ==================================================================
[Description (
"3PAR Disk Drive Storage Extent")]
class TPD_DiskStorageExtent : CIM_StorageExtent {
};
// ==================================================================
// 3PAR Disk StorageExtent
// ==================================================================
[Association,
Description (
"3PAR Disk Drive and Disk Storage Extent association")]
class TPD_DiskPresent : CIM_MediaPresent {
[Override ( "Antecedent" ), Description (
"The Disk Drive.")]
TPD_DiskDrive REF Antecedent;
// ==================================================================
// 3PAR DiskDrive Software Identity
// ==================================================================
[Description (
"3PAR Disk Drive Software Identity")]
class TPD_DiskSoftwareIdentity : CIM_SoftwareIdentity {
[Description ("Status of the firmware on the disk drive."),
ValueMap {"0", "1", "2"},
// ==================================================================
// 3PAR DiskDrive and DiskSoftwareIdentity association
// ==================================================================
[Association,
Description (
"3PAR DiskSoftwareIdentity and DiskDrive mapping")]
class TPD_DiskSoftware : CIM_ElementSoftwareIdentity {
// ==================================================================
// TPD_DiskDrivePackage and TPD_Magazine association
// ==================================================================
[Association, Aggregation, Description (
"The MagazineContainer association represents the relationship between "
"a TPD_Magazine and TPD_DiskDrivePackage.")]
class TPD_MagazineContainer : CIM_Container {
// ==================================================================
// TPD_DiskDrive and TPD_StorageSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemDisk association represents a relationship between "
"a TPD_DiskDrive and TPD_StorageSystem.")]
class TPD_SystemDisk : CIM_SystemDevice {
// ==================================================================
// StoragePoolComponent
// ==================================================================
[Association, Aggregation, Description (
"TPD_StoragePoolComponent is an association used to "
"establish 'part of' relationships between StoragePool and "
"Disk StorageExtent.")]
class TPD_StoragePoolComponent : CIM_ConcreteComponent {
3PAR_TPDDisk.mof 231
[Aggregate, Override ( "GroupComponent" ), Description (
"The parent element in the association.")]
CIM_StoragePool REF GroupComponent;
// ===================================================================
// SCSIInitiatorTargetLogicalUnitPath
// Comment this class out as it is still experimental
// ===================================================================
// [Association, Description (
// "An association that models a host driver path to a SCSI "
// "logical unit. Each permutation of initiator and target "
// "ProtocolEndpoints and logical units is considered a separate "
// "path. This class describes end-to-end path behavior such as "
// "properties and operations commonly used in multipath "
// "management.")]
//class TPD_SCSIInitTargetLUPath : CIM_SCSIInitiatorTargetLogicalUnitPath
//{
// [Override ("Initiator"), Description (
// "An initiator endpoint on a node that connects to the "
// "target endpoint on a cage.")]
// TPD_SCSIProtocolFCEndpoint REF Initiator;
// ==================================================================
// TPD_DiskStorageExtent and TPD_StorageSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemExtent association represents a relationship between "
"a TPD_DiskStorageExtent and TPD_StorageSystem.")]
class TPD_SystemExtent : CIM_SystemDevice {
// ==================================================================
// TPD_DiskStorageExtent and TPD_StorageVolume association
// ==================================================================
[Association, Description (
"BasedOn is an association describing how StorageExtents can be "
"assembled from lower level Extents.")]
class TPD_VolumeBasedOnDiskExtent : CIM_BasedOn {
3PAR_TPDNode.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_TPDNode.mof
//
// Purpose : This MOF contains 3PAR Node (MCS) classes that will be loaded
// into root/tpd namespace.
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// 3PAR NodeSystem
// ==================================================================
[Description (
"3PAR Controller Node ")]
class TPD_NodeSystem : CIM_ComputerSystem
{
[Description ("Position of the Node.") ]
uint16 Position;
3PAR_TPDNode.mof 233
[Description ("Kernel Version in String format.") ]
string KernelVersion;
// ==================================================================
// 3PAR NodePackage
// ==================================================================
[Description (
"3PAR Controller Node Package for Vendor, Model, and Serial Number")]
class TPD_NodePackage : CIM_PhysicalPackage {
};
// ==================================================================
// 3PAR NodeSystem and NodePackage association
// ==================================================================
[Association,
Description (
"3PAR InServ NodeSystem and NodePackage Association.") ]
class TPD_NodeSystemPackage : CIM_ComputerSystemPackage
{
[Override ("Antecedent"),
Description ("The InServ's Node physical package.") ]
TPD_NodePackage REF Antecedent;
// ==================================================================
// 3PAR NodeRedundancySet
// ==================================================================
[Description (
"3PAR Controller Node redundancy set. It is associated with a max of "
// ==================================================================
// 3PAR NodePairSystem
// ==================================================================
[Description (
"3PAR Controller Node Pair computer system. One for each of the "
"NodeRedundancySet object.")]
class TPD_NodePairSystem : CIM_ComputerSystem {
};
// ==================================================================
// 3PAR NodePairRedundancySet
// ==================================================================
[Description (
"3PAR Controller Node Pair redundancy set. This object is associated "
"to all the NodePairSystem objects.")]
class TPD_NodePairRedundancySet : CIM_RedundancySet {
};
// ==================================================================
// 3PAR NodeMemberOfSet
// ==================================================================
[Association, Aggregation, Description (
"TPD_NodeMemberOfSet is an aggregation used to establish "
"membership of TPD_NodeSystem in a TPD_NodeRedundancySet.")]
class TPD_NodeMemberOfSet : CIM_MemberOfCollection {
// ==================================================================
// 3PAR NodePairMemberOfSet
// ==================================================================
[Association, Aggregation, Description (
"TPD_NodePairMemberOfSet is an aggregation used to establish "
"membership of TPD_NodePairSystem in a TPD_NodePairRedundancySet.")]
class TPD_NodePairMemberOfSet : CIM_MemberOfCollection {
// ==================================================================
// 3PAR NodeSetIdentity
// ==================================================================
[Association, Description (
"TPD_NodeSetIdentity associates two elements representing "
"different aspects of the same underlying entity: TPD_NodePairSystem"
" and TPD_NodeRedundancySet.")]
class TPD_NodeSetIdentity : CIM_ConcreteIdentity {
3PAR_TPDNode.mof 235
[Override ( "SystemElement" ), Description (
"NodePairSystem associated to the NodeRedundancySet")]
TPD_NodePairSystem REF SystemElement;
// ==================================================================
// 3PAR NodePairSetIdentity
// ==================================================================
[Association, Description (
"TPD_NodePairSetIdentity associates two elements representing "
"different aspects of the same underlying entity: TPD_StorageSystem"
" and TPD_NodePairRedundancySet.")]
class TPD_NodePairSetIdentity : CIM_ConcreteIdentity {
// ===================================================================
// NodePairComponentCS
// ===================================================================
[Association, Aggregation, Composition,
Description (
"A ComputerSystem can aggregate another ComputerSystem. This"
"class groups together TPD_StorageSystem and TPD_NodePairSystem.")]
class TPD_NodePairComponentCS : CIM_ComponentCS {
// ===================================================================
// NodeComponentCS
// ===================================================================
[Association, Aggregation, Composition,
Description (
"A ComputerSystem can aggregate another ComputerSystem. This"
"class groups together TPD_StorageSystem and TPD_NodeSystem.")]
class TPD_NodeComponentCS : CIM_ComponentCS {
// =================================================================
// ==================================================================
// ProcessorForNode
// ==================================================================
[Association, Aggregation, Composition,
Description (
"NodeCPU aggregated by a NodeSystem.")]
class TPD_ProcessorForNode : CIM_SystemDevice {
// ==================================================================
// TPD Physical Memory (DIMM)
// ==================================================================
[Description (
"3PAR DIMM in Controller Node.")]
class TPD_PhysicalMemory : CIM_PhysicalMemory
{
[Description ("Slot number, memory is inserted in.") ]
uint16 Slot;
3PAR_TPDNode.mof 237
[Description ("CAS latency. Format: CL<min>/<max>, in nS.") ]
string CASLatency;
// ==================================================================
// TPD NodePackagedMemory
// ==================================================================
[Association, Aggregation, Description (
"A Physical Memory contained by a Node PhysicalPackage.")]
class TPD_NodePackagedMemory : CIM_PackagedComponent {
// ==================================================================
// TPD IDE Drive
// ==================================================================
[Description (
"3PAR IDE Drive in Controller Node.")]
class TPD_IDEDrive : CIM_PhysicalComponent
{
[Description ("Position of the IDE Drive in the Node.") ]
uint16 Position;
// ==================================================================
// TPD NodePackagedIDE
// ==================================================================
[Association, Aggregation, Description (
"An IDE Drive contained by a Node PhysicalPackage.")]
class TPD_NodePackagedIDE : CIM_PackagedComponent {
// ==================================================================
// TPD PCI or PCIe Card
// ==================================================================
// 3PAR Node Package and PCI or PCIe Card association
// ==================================================================
[Association, Aggregation,
Description (
"3PAR Node Package and PCI or PCIe Card association")]
class TPD_PCICardInNode : CIM_Container {
// ==================================================================
// 3PAR SystemEndpoint: association between NodeSystem and
// SCSIProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR InServ NodeSystem and SCSIProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemEndpoint to distinguish with other subclasses. ")]
class TPD_SystemEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ==================================================================
// 3PAR NodeSystem and FCPort association
// ==================================================================
3PAR_TPDNode.mof 239
[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;
// ==================================================================
// 3PAR Storage System and SCSI Controller association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR InServ Node System and SCSI Controller Association ") ]
class TPD_SystemController : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1),
Description("The InServ system or node controller that associates with "
"the SCSI Protocol controller.")]
CIM_ComputerSystem REF GroupComponent;
3PAR_TPDEnv.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_TPDEnv.mof
//
// Purpose : This MOF contains 3PAR Environment classes that will be loaded
// into root/tpd namespace.
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// TPD Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR PowerSupply.")]
class TPD_PowerSupply : CIM_PowerSupply
{
[Description ("Manufacturer name of the PS.") ]
};
// ==================================================================
// TPD Cage Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR Cage PowerSupply.")]
class TPD_CagePowerSupply : TPD_PowerSupply
{
[Description ("Type of the cage this Power Supply is in."),
ValueMap {"0", "2", "3", "4", "5"},
Values {"Unknown", "DC1", "DC2", "DC3", "DC4"} ]
uint16 CageType;
// ==================================================================
// TPD Node Power Supply
// ==================================================================
[Description (
"Capabilities and management of the 3PAR Node PowerSupply.")]
class TPD_NodePowerSupply : TPD_PowerSupply
{
[Description ("State of the DC for the node power supply."),
ValueMap {"0", "1", "2"},
Values {"Unknown", "OK", "Error"} ]
uint16 DCStatus;
};
// ==================================================================
// CagePSDependency
// ==================================================================
[Association, Description (
"A PowerSupply is installed in a DriveCage, not for a specific Device, but "
"to function with the DriveCage in general. This relationship is "
"described by the TPD_CagePSDependency association.")]
class TPD_CagePSDependency : CIM_PackageDependency {
// ==================================================================
3PAR_TPDEnv.mof 241
// 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 LED status. This is ONLY available for system fans."),
ValueMap {"0", "1", "2", "3", "4", "5"},
Values {"Unknown", "Off", "Green", "Green Blinking", "Amber", "Amber Blinking"} ]
uint16 SystemFanLED;
};
// ===================================================================
// PowerSupply Cooling
// ===================================================================
[Association, Description (
"Many Devices, such as processors or power supplies, require "
"their own cooling devices. This association indicates where "
"fans or other CoolingDevices are specific to a Device, versus "
"providing enclosure or cabinet cooling.")]
class TPD_PowerSupplyCooling : CIM_AssociatedCooling {
// ===================================================================
// Node Cooling
// ===================================================================
[Association, Description (
"Describes association between SystemFan and "
"the Node Package it is cooling.")]
class TPD_NodePkgCooling : CIM_PackageDependency {
// ===================================================================
// The next 3 attributes describe log data for tests. Each index in the
// arrays represents single test log. All 3 attributes must be of the
// same length.
// ===================================================================
[Description ("The date the test has started."), ArrayType ( "Indexed" ),
ModelCorrespondence {"TPD_Battery.TestDuration",
"TPD_Battery.TestPassed"}]
datetime TestStartDate[];
// ===================================================================
// TPD_PowerSupplyBattery
3PAR_TPDEnv.mof 243
// ===================================================================
[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;
// ==================================================================
// NodePkgPSDependency
// ==================================================================
[Association, Description (
"A PowerSupply is installed in a NodePackage, not for a specific "
"Device, but to function with the NodePackage in general. This "
"relationship is described by the TPD_NodePkgPSDependency "
"association.")]
class TPD_NodePkgPSDependency : CIM_PackageDependency {
// ==================================================================
// TPD_Battery and TPD_NodeSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The NodeBattery association represents a relationship between "
"a TPD_Battery and TPD_NodeSystem.")]
class TPD_NodeBattery : CIM_SystemDevice {
// ==================================================================
// TPD_PowerSupply and CIM_ComputerSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemPowerSupply association represents a relationship between "
"a TPD_PowerSupply and CIM_ComputerSystem (TPD_NodeSystem or "
"TPD_StorageSystem).")]
class TPD_SystemPowerSupply : CIM_SystemDevice {
// ==================================================================
// TPD_Fan and CIM_ComputerSystem association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"The SystemPowerSupply association represents a relationship between "
"a TPD_Fan and CIM_ComputerSystem (TPD_NodeSystem or "
"TPD_StorageSystem).")]
class TPD_SystemFan : CIM_SystemDevice {
// ==================================================================
// TPD Cage PowerSupply 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_SensorInCagePS : CIM_AssociatedSensor {
3PAR_TPDLocation.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.
//
//
//%////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////
3PAR_TPDLocation.mof 245
//
//
// 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.")]
class TPD_SystemLocation : CIM_Location
{
};
// ==================================================================
// TPD System Package and Location association
// ==================================================================
[Association, Description (
"SystemPackageLocation associates a SystemPackage with a "
"Location object for inventory or replacement purposes.")]
class TPD_SystemPackageLocation : CIM_PhysicalElementLocation {
3PAR_TPDEthPort.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_TPDEthPort.mof
//
// Purpose : This MOF contains 3PAR Ethernet Port classes that will be loaded
// into root/tpd namespace.
//
// Date created: 8/10/2005
//
///////////////////////////////////////////////////////////////////////////
// ===================================================================
// 3PAR EthernetPort
// ==================================================================
// 3PAR IPProtocolEndpoint
// ==================================================================
[Description (
"A ProtocolEndpoint that is dedicated to running IP.")]
class TPD_IPProtocolEndpoint : CIM_IPProtocolEndpoint {
[Description (
"The Gateway address for this ProtocolEndpoint.")]
string Gateway;
};
// ===================================================================
// 3PAR EthPortSAPImplementation
// ===================================================================
[Association, Description (
"An association between a ServiceAccessPoint and how it is "
"implemented.")]
class TPD_EthPortSAPImplementation : CIM_DeviceSAPImplementation {
// ==================================================================
// 3PAR SystemIPEndpoint: association between NodeSystem and
// IPProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR InServ NodeSystem and IPProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemIPEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ==================================================================
// 3PAR NodeSystem and EthernetPort association
// ==================================================================
3PAR_TPDEthPort.mof 247
[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;
// ==================================================================
// 3PAR TCPProtocolEndpoint
// ==================================================================
[Description (
"A TPD protocol endpoint that is dedicated to running TCP.")]
class TPD_TCPProtocolEndpoint : CIM_TCPProtocolEndpoint {
};
// ==================================================================
// 3PAR BindsToIPEndpoint
// ==================================================================
[Association, Description (
"This association makes explicit the dependency of a "
"TCPProtocolEndpoint on an underlying IPProtocolEndpoint, on the same "
"system.")]
class TPD_BindsToIPEndpoint : CIM_BindsTo {
// ==================================================================
// 3PAR SystemTCPEndpoint: association between NodeSystem and
// TCPProtocolEndpoint
// ==================================================================
[Association,
Description
("3PAR InServ NodeSystem and IPProtocolEndpoint association."
"This is a subclass of CIM_HostedAccessPoint. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemTCPEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
///////////////////////////////////////////////////////////////////////////
//
// File : 3PAR_TPDiSCSI.mof
//
// Purpose : This MOF contains 3PAR iSCSI classes that will be loaded
// into root/tpd namespace.
//
// Date created: 1/31/2006
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// 3PAR iSCSIController
// ==================================================================
[Description (
"iSCSIController is a type of SCSIProtocolController, "
"managing an iSCSI interface.")]
class TPD_iSCSIController : CIM_SCSIProtocolController {
};
[Description (
"The iSCSI Node represents a single iSCSI Target. "
"There are one or more iSCSI Nodes within a Network "
"Entity. The iSCSI Node is accessible via one or more "
"Network Portals. An iSCSI Node is identified by its iSCSI "
"Name.")]
class TPD_iSCSINode : CIM_SCSIProtocolController {
};
// ==================================================================
// 3PAR iSCSIProtocolEndpoint
// ==================================================================
class TPD_iSCSIProtocolEndpoint : CIM_iSCSIProtocolEndpoint {
};
// ==================================================================
// 3PAR BindsToTCPEndpoint
// ==================================================================
[Association, Description (
"This association makes explicit the dependency of a "
"iSCSIProtocolEndpoint on an underlying TCPProtocolEndpoint, on the same "
"system.")]
class TPD_BindsToTCPEndpoint : CIM_BindsTo {
3PAR_TPDiSCSI.mof 249
"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. There are many "
"subclasses of CIM_HostedAcessPoint in the system. This class is "
" named TPD_SystemIPEndpoint to distinguish with other subclasses. ")]
class TPD_SystemiSCSIEndpoint : CIM_HostedAccessPoint
{
// Indicate that this is one-to-many association
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ node controller that hosted the protocol endpoint.")]
TPD_NodeSystem REF Antecedent;
// ===================================================================
// 3PAR iSCSISAPImplementation
// ===================================================================
[Association, Description (
"An association between a ServiceAccessPoint and how it is "
"implemented.")]
class TPD_iSCSISAPImplementation : CIM_DeviceSAPImplementation {
// ==================================================================
// 3PAR PrivilegeForiSCSIController
// ==================================================================
[Association, Description (
"PrivilegeForiSCSIController is an association used to tie the "
"AuthorizedPrivileges to iSCSIController resources.")]
class TPD_PrivilegeForiSCSIController : CIM_AuthorizedTarget {
// ==================================================================
// 3PAR ConfigServicesForiSCSIController Association
// ==================================================================
[Association,
// ==================================================================
// 3PAR iSCSI Protocol Controller And StorageVolume association
// ==================================================================
[Association,
Description (
"3PAR InServ iSCSI protocol controller and storage volume "
"association. ")]
class TPD_iSCSIControllerForUnit : CIM_ProtocolControllerForUnit
{
[Override ("Antecedent"),
Description ("The iSCSI Protocol Controller.") ]
TPD_iSCSIController REF Antecedent;
// ==================================================================
// 3PAR iSCSISessionSettings
// ==================================================================
[Description (
"The default negotiation settings for an iSCSI Session. These "
"properties are used as the starting position for login "
"negotiations between initiator and target nodes. The "
"properties describing the resulting outcome of the login "
"negotiation are in the iSCSISession class.")]
class TPD_iSCSISessionSettings : CIM_iSCSISessionSettings {
};
// ==================================================================
// 3PAR iSCSISessionSystemSetting
// ==================================================================
[Association, Description (
"ElementSettingData represents the association between "
"ManagedElements and applicable setting data. This association "
"also describes whether this is a default or current setting.")]
class TPD_iSCSISessionSystemSetting : CIM_ElementSettingData {
// ==================================================================
3PAR_TPDiSCSI.mof 251
// 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.")]
class TPD_iSCSIConnectionSettings : CIM_iSCSIConnectionSettings {
};
// ==================================================================
// 3PAR iSCSIConnectionTCPSetting
// ==================================================================
[Association, Description (
"ElementSettingData represents the association between "
"ManagedElements and applicable setting data. This association "
"also describes whether this is a default or current setting.")]
class TPD_iSCSIConnectionTCPSetting : CIM_ElementSettingData {
// ==================================================================
// 3PAR iSCSIConnectionSettingEndpoint
// ==================================================================
[Association, Description (
"ElementSettingData represents the association between "
"ManagedElements and applicable setting data. This association "
"also describes whether this is a default or current setting.")]
class TPD_iSCSIConnectionSettingEndpoint : CIM_ElementSettingData {
// ==================================================================
// 3PAR iSCSISession
// ==================================================================
[Description (
"iSCSISession is a network pipe between an initiator and target "
"SCSIProtocolEndpoints. An iSCSISession is composed of one or "
"more TCP connections which MUST be selected from a "
"SystemSpecificCollection representing an iSCSI Portal Group. "
"NetworkPipeComposition aggregates NetworkPipe instances "
"representing iSCSI connections, which are associated to "
"TCPProtocolEndpoints. Only an iSCSI initiator can create an "
"iSCSI Session, an iSCSI Target MUST accept (or reject) a "
"session request. EndOfNetworkPipe associates iSCSISession with "
"SCSIProtocolEndpoint.")]
class TPD_iSCSISession : CIM_iSCSISession {
};
// ==================================================================
// 3PAR iSCSIConnection
// ==================================================================
[Description (
"This class contains the attributes of and negotiated values "
"for, an iSCSI Connection which is modeled as a subclass of "
"NetworkPipe. The original settings that are a starting point "
"for negotiation are found in the class "
"iSCSIConnectionSettings.")]
class TPD_iSCSIConnection : CIM_iSCSIConnection {
};
// ==================================================================
// 3PAR EndpointOfiSCSIConnection
// ==================================================================
[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.")]
class TPD_EndpointOfiSCSIConnection : CIM_EndpointOfNetworkPipe {
// ==================================================================
// 3PAR iSCSIPipeComposition
// ==================================================================
[Association, Aggregation, Composition, Description (
"NetworkPipeComposition describes the makeup a pipe, based on "
"lower-level ones. If the pipe is not composed of lower-level "
"entities (i.e., its AggregationBehavior property is set to 2), "
"then no instances of this association should be defined where "
"the pipe has the role of GroupComponent.")]
class TPD_iSCSIPipeComposition : CIM_NetworkPipeComposition {
3PAR_TPDiSCSI.mof 253
"parts/pipes.")]
TPD_iSCSISession REF GroupComponent;
// ==================================================================
// 3PAR iSCSISessionStatistics
// ==================================================================
[Description (
"Traffic and error statistics for an iSCSI Session. An instance "
"of this class will be associated by ElementStatisticalData to "
"the instance of iSCSISession.")]
class TPD_iSCSISessionStatistics : CIM_iSCSISessionStatistics {
};
// ==================================================================
// 3PAR iSCSISessionStatisticalData
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSISessionStatisticalData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSISessionStatistics REF Stats;
};
// ==================================================================
// 3PAR iSCSICapabilities
// ==================================================================
[Description (
"The capabilites for an iSCSI Network Entity. An instance of "
"this class will be associated by ElementCapabilities to a "
"instance of ComputerSystem that represents the Network Entity. "
"These capability properties are associated to a Network "
"Entity/ComputerSystem since they affect all login negotiations "
"on all iSCSI ProtocolEndpoints aggregated to the system.")]
class TPD_iSCSICapabilities : CIM_iSCSICapabilities {
};
// ==================================================================
// 3PAR iSCSIElementCapabilities
// ==================================================================
[Association, Description (
"ElementCapabilities represents the association between "
"ManagedElements and their Capabilities. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementCapabilities association for the referenced instance of "
"Capabilities. ElementCapabilities describes the existence "
[Key, Description (
"The Capabilities object associated with the element.")]
TPD_iSCSICapabilities REF Capabilities;
};
// ==================================================================
// 3PAR iSCSISAPAvailableForElement
// ==================================================================
[Association, Description (
"CIM_SAPAvailableForElement conveys the semantics of a Service "
"Access Point that is available for a ManagedElement. When "
"CIM_SAPAvailableForElement is not instantiated, then the SAP "
"is assumed to be generally available. If instantiated, the SAP "
"is available only for the associated ManagedElements. For "
"example, a device might provide management access through a "
"URL. This association allows the URL to be advertised for the "
"device.")]
class TPD_iSCSISAPAvailableForElement : CIM_SAPAvailableForElement {
[Key, Description (
"The Service Access Point that is available.")]
TPD_iSCSIProtocolEndpoint REF AvailableSAP;
[Key, Description (
"The ManagedElement for which the SAP is available.")]
CIM_SCSIProtocolController REF ManagedElement;
};
// ==================================================================
// 3PAR NodeSystem and iSCSIController association
// ==================================================================
[Association, Aggregation, Composition,
Description (
"3PAR InServ Storage System and iSCSI Controller Association ") ]
class TPD_SystemiSCSIController : CIM_SystemDevice
{
[Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description(
"The InServ system or node controller that hosted the iSCSI Node.")]
CIM_ComputerSystem REF GroupComponent;
// ==================================================================
// 3PAR iSCSISessionFailures
// ==================================================================
[Description (
"Failure Statistics for Sessions associated with a iSCSI Node. "
"An instance of this class will be associated by "
"ElementStatisticalData to an instance of "
"SCSIProtocolController representing an iSCSI Node. These "
"statistics are associated to a Node since they describe the "
"aggregated Session data for all failed Sessions associated to "
"iSCSI protocol endpoints used by the Node.")]
class TPD_iSCSISessionFailures : CIM_iSCSISessionFailures {
3PAR_TPDiSCSI.mof 255
};
// ==================================================================
// 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. The Node can "
"be either an Initiator or Target and so the interpretation of "
"the properties in this class varies accordingly.")]
class TPD_iSCSILoginStatistics : CIM_iSCSILoginStatistics {
};
// ==================================================================
// 3PAR iSCSISessionFailuresData
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSISessionFailuresData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSISessionFailures REF Stats;
};
// ==================================================================
// 3PAR iSCSILoginStatisticsData
// ==================================================================
[Association, Description (
"CIM_ElementStatisticalData is an association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_iSCSILoginStatisticsData : CIM_ElementStatisticalData {
[Key, Description (
"The statistic information/object.")]
TPD_iSCSILoginStatistics REF Stats;
};
///////////////////////////////////////////////////////////////////////////
//
//
// File : 3PAR_TPDJob.mof
//
// Purpose : This MOF contains 3PAR Job Control classes that will be loaded
// into root/tpd namespace.
//
// Date created: 3/19/2007
//
///////////////////////////////////////////////////////////////////////////
//
// ==================================================================
// 3PAR Concrete Job
// ==================================================================
[Description (
"3PAR Concrete Job")]
class TPD_ConcreteJob : CIM_ConcreteJob
{
[Description ("Type of the job."),
ValueMap {"7", "8", "10", "11"},
Values {"Create Physical Copy", "Promote Virtual Copy",
"Update Delta Snapshot Space", "Resync Physical Copy"}]
uint16 JobType;
[Description (
"Source element that was affected by this job. For example, "
"if this is a job to create a physical copy, then this "
"will contain the ElementName of the base StorageVolume "
"from which the replica StorageVolume is copied. Another example "
"is if this is a job to promote virtual copy, then this "
"will contain the ElementName of the replica StorageVolume."),
ModelCorrespondence {
"TPD_StorageVolume.ElementName"}]
string SourceElementName;
[Description (
"Target element that was affected by this job. For example, "
"if this is a job to create a physical copy, then this "
"will contain the ElementName of the replica StorageVolume. "
"Another example is if this is a job to promote virtual "
"copy, then this will contain the ElementName of the "
"base StorageVolume to which the replica StorageVolume "
"is copied."),
ModelCorrespondence {
"TPD_StorageVolume.ElementName"}]
string TargetElementName;
};
3PAR_TPDJob.mof 257
// ==================================================================
// 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.")]
class TPD_OwningJobElement : CIM_OwningJobElement {
};
// ==================================================================
// 3PAR AffectedJobElement
// ==================================================================
[Association,
Description (
"AffectedJobElement represents an association between a "
"TPD_ConcreteJob and the ManagedElement(s) that may be "
"affected by its execution, for example, a TPD_StorageVolume "
"when a job is created as a side-effect of physical copy.")]
class TPD_AffectedJobElement : CIM_AffectedJobElement
{
};
// ==================================================================
// 3PAR MethodResult
// ==================================================================
[Description (
"Jobs are sometimes used to represent extrinsic method "
"invocations that execute for times longer than the length of "
"time is reasonable to require a client to wait. The method "
"executing continues beyond the method return to the client. "
"The class provides the result of the execution of a Job that "
"was itself started by the side-effect of this extrinsic method "
"invocation. \n"
"The indication instances embedded an instance of this class "
"MUST be the same indications delivered to listening clients or "
"recorded, all or in part, to logs. Basically, this approach is "
"a corollary to the functionality provided by an instance of "
"ListenerDestinationLog (as defined in the Interop Model). The "
"latter provides a comprehensive, persistent mechanism for "
"recording Job results, but is also more resource-intensive and "
"requires supporting logging functionality. Both the extra "
"resources and logging MAY NOT be available in all environments "
"(for example, embedded environments). Therefore, this "
"instance-based approach is also provided. \n"
"The MethodResult instances MUST NOT exist after the associated "
"ConcreteJob is deleted.")]
class TPD_MethodResult : CIM_MethodResult {
};
// ==================================================================
// 3PAR AssociatedJobMethodResult
// ==================================================================
[Association,
Description (
"AssociatedJobMethodResult represents an association between a "
"ConcreteJob and the MethodResult expressing the parameters for "
"the Job when the job was created by side-effect of the "
"execution of an extrinsic method.")]
class TPD_AssociatedJobMethodResult : CIM_AssociatedJobMethodResult {
};
// ==================================================================
// 3PAR Job Control Indication
3PAR_TPDReplicationSvcs.mof
//%////////////////////////////////////////////////////////////////////////
//
//
// Copyright 2010 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_TPDReplicationSvcs.mof
//
// Purpose : This MOF contains 3PAR Replication Services classes that will be loaded
// into root/tpd namespace.
//
// Date created: 1/19/2010
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// 3PAR Replication Services
// ==================================================================
[Description (
"The ReplicationService class provides methods to allow a "
"client to manage copy operations on storage objects, including "
"management of replication groups, manipulation of replication "
"operations, and retrieval of replication relationships.")]
class TPD_ReplicationService : CIM_ReplicationService
{
[Description (
"Create (or start a job to create) a new group of storage "
"objects which are replicas of the specified source "
"storage or a group of source storage objects "
"(SourceElements). Note that using the input parameter, "
"SyncType, this function can be used to instantiate the "
"replicas, and to create ongoing associations between "
"the source(s) and replicas. If 0 is returned, the "
"function completed successfully and no ConcreteJob "
"instance is created. If 4096/0x1000 is returned, a "
"ConcreteJob is started, references to which is returned "
"in the Jobs output parameter."
"An array of references to StorageSynchronized associations, "
"one for each pair of members in the source and target group, "
"are returned in Synchronizations. GroupSynchronization "
"asociation is not supported." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
"4097..32767", "0x8000.." },
Values { "Completed with No Error", "Not Supported",
"Unknown", "Timeout", "Failed", "Invalid Parameter",
"In Use", "DMTF Reserved",
"Method Parameters Checked - Job Started",
3PAR_TPDReplicationSvcs.mof 259
"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. For "
"example, RelationshipName as a prefix followed by "
"\"_n\" sequence number, where n is a number "
"beginning with 1." )]
string RelationshipName,
[Required, IN, Description (
"SyncType describes the type of copy that will be made."
),
ValueMap { "..", "6", "7", "8", "..", "0x8000.." },
Values { "DMTF Reserved", "Mirror", "Snapshot",
"Clone", "DMTF Reserved", "Vendor Specific" },
ModelCorrespondence { "CIM_Synchronized.SyncType" }]
uint16 SyncType,
[IN, Description (
"Mode describes whether the target elements will be "
"updated synchronously or asynchronously. If NULL, "
"implementaton decides the mode." ),
ValueMap { "2", "3", "..", "0x8000.." },
Values { "Synchronous", "Asynchronous",
"DMTF Reserved", "Vendor Specific" },
ModelCorrespondence { "CIM_Synchronized.Mode" }]
uint16 Mode,
[IN, Description (
"A group of source storage objects of StorageVolume." )]
CIM_ReplicationGroup REF SourceGroup,
[IN, Description (
"As an input, refers to a target group "
"to use. This is valid only if SyncType is "
"Asynchronous, i.e., physical copy")]
CIM_ReplicationGroup REF TargetGroup,
[IN ( false), OUT, Description (
"Array of references to the created target volumes, matched with "
"with SourceElements, valid only for Snapshot/Synchronous "
"replicas (virtual copy).")]
TPD_StorageVolume REF TargetElements[],
[IN ( false ), OUT, Description (
"Reference to the list of jobs (may be NULL if job is completed)."
)]
CIM_ConcreteJob REF Jobs[],
[IN ( false ), OUT, Description (
"References to the created StorageSynchronized associations between "
"the source and the target elements. If a job is "
"created, this parameter may be NULL until the "
"association is actually formed." )]
TPD_StorageSynchronized REF Synchronizations[]);
[Description (
"Modify all StorageSynchronized in a ReplicationGroup. Output "
"Jobs, if present, is an array consisting of ConcreteJobs "
"of each volume pair between the source and target "
"ReplicationGroup."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
"4097..32767", "0x8000.." },
Values { "Completed with No Error", "Not Supported",
"Unspecified Error", "Timeout", "Failed",
"Invalid Parameter", "In Use", "DMTF Reserved",
"Method Parameters Checked - Job Started",
3PAR_TPDReplicationSvcs.mof 261
"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..0xFFFF" },
Values { "Abort", "Activate Consistency", "Activate",
"AddSyncPair", "Deactivate Consistency",
"Deactivate", "Detach", "Dissolve", "Failover",
"Failback", "Fracture", "RemoveSyncPair",
"Resync Replica", "Restore from Replica", "Resume",
"Reset To Sync", "Reset To Async",
"Return To ResourcePool", "Reverse Roles", "Split",
"Suspend", "Unprepare", "DMTF Reserved",
"Vendor Specific" }]
uint16 Operation,
[Required, IN, Description (
"The reference to the target ReplicationGroup." )]
TPD_ReplicationGroup REF TargetGroup,
[IN ( false ), OUT, Description (
"Array of references to the jobs (may be NULL if the task completed)."
)]
CIM_ConcreteJob REF Jobs[]);
[Description (
"Create consistent group physical copies or snapshots of "
"a list of virtual volumes." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
"4097..32767", "0x8000.." },
Values { "Completed with No Error", "Not Supported",
"Unknown", "Timeout", "Failed", "Invalid Parameter",
"In Use", "DMTF Reserved",
"Method Parameters Checked - Job Started",
"Method Reserved", "Vendor Specific" }]
uint32 TPD_CreateConsistentReplicaList(
[Required, IN, Description (
"SyncType describes the type of copy that will be made."
),
ValueMap { "..", "6", "7", "8", "..", "0x8000.." },
Values { "DMTF Reserved", "Mirror", "Snapshot",
"Clone", "DMTF Reserved", "Vendor Specific" },
ModelCorrespondence { "CIM_Synchronized.SyncType" }]
uint16 SyncType,
[IN, Description (
"Mode describes whether the target elements will be "
"updated synchronously or asynchronously. If NULL, "
"implementaton decides the mode." ),
ValueMap { "2", "3", "..", "0x8000.." },
Values { "Synchronous", "Asynchronous",
"DMTF Reserved", "Vendor Specific" },
ModelCorrespondence { "CIM_Synchronized.Mode" }]
uint16 Mode,
[IN, Description (
"Array of references to source volumes to replicate. "
"Number of elements in this array must be the same "
"as that of TargetNames and TargetElements.")]
TPD_StorageVolume REF SourceElements[],
[IN, Description (
"Array of names, matched with SourceElements array, "
"of the resulting target snapshot volumes. This "
"parameter is valid only for Snapshot/Synchronous "
"replicas (virtual copy). This and TargetElements cannot both "
"be specified.")]
// ==================================================================
// 3PAR Replication Service Capabilities
// ==================================================================
[Description (
"A subclass of Capabilities that defines the Capabilities of a "
"ReplicationService. An instance of "
"ReplicationServiceCapabilities is associated with a "
"ReplicationService using ElementCapabilities." )]
class TPD_ReplicationServiceCapabilities : CIM_ReplicationServiceCapabilities
{
};
// ==================================================================
// 3PAR CapabilitiesOfReplicationService
// ==================================================================
[Association,
Description (
"TPD_CapabilitiesOfReplicationService is an association "
"between ReplicationService and ReplicationServiceCapabilities "
"This association is used to query the features and functions "
"supported by ReplicationService.") ]
class TPD_CapabilitiesOfReplicationService: CIM_ElementCapabilities
{
[Override ( "ManagedElement" ), Description (
"The ReplicationService.")]
TPD_ReplicationService REF ManagedElement;
3PAR_TPDReplicationSvcs.mof 263
[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." )]
class TPD_ReplicationGroup : CIM_ReplicationGroup
{
[Description (
"System assigned ID for the volume set.")]
uint32 ID;
};
// ==================================================================
// 3PAR System and ReplicationService association.
// ==================================================================
[Association,
Description (
"TPD_HostedReplicationService is an association "
"between TPD_StorageSystem and TPD_HostedReplicationService. "
"The cardinality of this association is 1-to-1. A System may "
"host only one TPD_HostedReplicationService. ")]
class TPD_HostedReplicationService: CIM_HostedService
{
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The InServ StorageSystem.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// MemberOfReplicationGroup
// ==================================================================
[Association, Aggregation, Description (
"MemberOfReplicationGroup is an aggregation used "
"to establish membership of StorageVolume in a ReplicationGroup, "
"i.e., volume set.")]
class TPD_MemberOfReplicationGroup : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the "
"MemberOfReplicationGroup.")]
TPD_StorageVolume REF Member;
};
// ==================================================================
// 3PAR ReplicationAffectsElement
// ==================================================================
[Association,
Description (
"TPD_ReplicationAffectsElement is an association "
"between ReplicationService and ReplicationGroup "
"This provider is used to query the association "
[Override ( "AffectedElement" ),
Key, Description (
"The ReplicationGroup that the ReplicationService "
"may affect.")]
TPD_ReplicationGroup REF AffectedElement;
};
// ==================================================================
// 3PAR RemoteStorageSynchronized
// ==================================================================
[Association,
Description (
"Indicates that two Storage objects were remote replicated at the "
"specified point in time. If the UndiscoveredElement indicates "
"either SystemElement or SyncedElement, then the corresponding "
"property will contain the reference to TPD_ReplicationEntity, "
"otherwise it will contain the reference to a TPD_StorageVolume.")]
class TPD_RemoteStorageSynchronized : CIM_StorageSynchronized {
[Description (
"True if role of the SystemElement and SyncedElement has been switched "
"due to a fail over.")]
boolean RoleReversed;
[Description (
"Specifies that groups that are in asynchronous periodic mode should "
"be periodically synchronized in accordance with the specified value "
"of the replication. 0 means synchronization will not happen unless "
"it is done manually." )]
datetime SyncInterval;
[Description (
"Specifies the policy of the Remote Copy volume groups for dealing with I/O
"
"failure and error handling of the replication. Valid values are:"
" no_fail_wrt_on_err "
" Specifies that if Remote Copy is started for the volume group "
" and a write to the secondary system fails, then the Remote Copy "
" operation is stopped and an I/O error is not returned to the "
" host (default). This allows the application writing the data to "
" continue, but makes the secondary volumes out of date with the "
" primary volumes. "
" auto_recover "
" Specifies that if the Remote Copy is stopped as a result of the "
" Remote Copy links going down, the group is restarted "
" automatically after the links come back up. If this policy is "
" enabled for a group while the group is stopped after link "
" failures, it will be only be started when the links come up for "
" the failed target. If the links are already up at the time the "
" policy is set then the group will not be restarted at that "
" time. "
" no_auto_recover "
" Specifies that if the Remote Copy is stopped as a result of the "
" Remote Copy links going down, the group must be restarted "
" manually after the links come back up (default). "
" over_per_alert "
" If a synchronization of a periodic Remote Copy group takes "
" longer to complete than its synchronization period then an "
3PAR_TPDReplicationSvcs.mof 265
" 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."),
BitMap { "1","2","3","4","5"},
BitValues { "no_fail_wrt_on_err", "auto_recover", "no_auto_recover",
"over_per_alert", "no_over_per_alert" }]
uint32 SyncPolicy;
};
// ==================================================================
// 3PAR Remote Replication Group
// ==================================================================
[Description (
"This class represents a collection of StorageVolumes "
"used for remote replication.")]
class TPD_RemoteReplicationGroup : CIM_ReplicationGroup
{
[Description (
"Name of the administrative domain that this group belongs "
"to.\n")]
String Domain;
};
// ==================================================================
// TPD_OrderedMemberOfRemoteReplicationGroup
// ==================================================================
[Association,
Description (
"TPD_OrderedMemberOfRemoteReplicationGroup is an aggregation used to "
"establish an ordered membership of StorageVolume in a "
"RemoteReplicationGroup." )]
class TPD_OrderedMemberOfRemoteReplicationGroup : CIM_OrderedMemberOfCollection {
[Override ("Collection"),
Key, Aggregate, Description (
"The RemoteReplicationGroup that aggregates StorageVolumes." )]
TPD_RemoteReplicationGroup REF Collection;
[Override ("Member"),
Key, Description ( "The aggregated StorageVolumes of the RemoteReplicationGroup."
)]
TPD_StorageVolume REF Member;
};
// ==================================================================
// 3PAR RemoteGroupSynchronized
// ==================================================================
[Association,
Description (
"Indicates that two remote replication groups are associated." )]
class TPD_RemoteGroupSynchronized : CIM_GroupSynchronized {
[Override ( "SystemElement" ),
Description (
"SystemElement represents the group that is the source of "
"the replication." )]
TPD_RemoteReplicationGroup REF SystemElement;
[Override ( "SyncedElement" ),
Description (
"SyncedElement represents the target that is the target "
"of the replication." )]
TPD_RemoteReplicationGroup REF SyncedElement;
[Description (
"True if role of the SystemElement and SyncedElement has been switched "
[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. Valid values are:"
" no_fail_wrt_on_err "
" Specifies that if Remote Copy is started for the volume group "
" and a write to the secondary system fails, then the Remote Copy "
" operation is stopped and an I/O error is not returned to the "
" host (default). This allows the application writing the data to "
" continue, but makes the secondary volumes out of date with the "
" primary volumes. "
" auto_recover "
" Specifies that if the Remote Copy is stopped as a result of the "
" Remote Copy links going down, the group is restarted "
" automatically after the links come back up. If this policy is "
" enabled for a group while the group is stopped after link "
" failures, it will be only be started when the links come up for "
" the failed target. If the links are already up at the time the "
" policy is set then the group will not be restarted at that "
" time. "
" no_auto_recover "
" Specifies that if the Remote Copy is stopped as a result of the "
" Remote Copy links going down, the group must be restarted "
" manually after the links come back up (default). "
" over_per_alert "
" If a synchronization of a periodic Remote Copy group takes "
" longer to complete than its synchronization period then an "
" alert will be generated. This is the default behavior. "
" no_over_per_alert "
" If a synchronization of a periodic Remote Copy group takes "
" longer to complete than its synchronization period then an "
" alert will not be generated."),
BitMap { "1","2","3","4","5"},
BitValues { "no_fail_wrt_on_err", "auto_recover", "no_auto_recover",
"over_per_alert", "no_over_per_alert" }]
uint32 SyncPolicy;
};
// ==================================================================
// 3PAR ReplicationServiceAffectsRemoteReplicationGroup
// ==================================================================
[Association,
Description (
"TPD_ReplicationServiceAffectsRemoteReplicationGroup is an association "
"between ReplicationService and RemoteReplicationGroup "
"This provider is used to query the association "
"between affecting and affected sets.") ]
class TPD_ReplicationServiceAffectsRemoteReplicationGroup : CIM_ServiceAffectsElement
{
[Override ( "AffectingElement" ),
Key, Description ("The ReplicationService.")]
TPD_ReplicationService REF AffectingElement;
[Override ( "AffectedElement" ),
Key, Description (
"The RemoteReplicationGroup that the ReplicationService "
3PAR_TPDReplicationSvcs.mof 267
"may affect.")]
TPD_RemoteReplicationGroup REF AffectedElement;
};
// ==================================================================
// TPD_HostedRemoteReplicationGroup
// ==================================================================
[Association,
Description (
"HostedCollection defines a RemoteReplicationGroup in the "
"context of StorageSystem. 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_HostedRemoteReplicationGroup : CIM_HostedCollection {
[Override ( "Antecedent" ),
Min ( 1 ),
Max ( 1 ),
Description ( "The scoping system." )]
TPD_StorageSystem REF Antecedent;
[Override ( "Dependent" ),
Description (
"The collection defined in the context of a system." )]
TPD_RemoteReplicationGroup REF Dependent;
};
// ==================================================================
// TPD_SAPAvailableForRemoteReplicaVolume
// ==================================================================
[Association,
Description (
"Association between a StorageVolume in a remote copy group "
"and the port used for this remote copy group.")]
class TPD_SAPAvailableForRemoteReplicaVolume : CIM_SAPAvailableForElement {
[Key, Description (
"The Service Access Point that is available. "
"For RCFC, the endpoint is a TPD_SCSIProtocolFCEndpoint. "
"For RCIP, the endpoint is a TPD_IPProtocolEndpoint." )]
CIM_ProtocolEndpoint REF AvailableSAP;
[Key, Description (
"The StorageVolume for which the SAP is available." )]
TPD_StorageVolume REF ManagedElement;
};
// ==================================================================
// TPD_SAPAvailableForRemoteReplicationGroup
// ==================================================================
[Association,
Description (
"Association between a remote copy group "
"and the port used for this remote copy group.")]
class TPD_SAPAvailableForRemoteReplicationGroup : CIM_SAPAvailableForElement {
[Key, Description (
"The Service Access Point that is available. "
"For RCFC, the endpoint is a TPD_SCSIProtocolFCEndpoint. "
"For RCIP, the endpoint is a TPD_IPProtocolEndpoint." )]
CIM_ProtocolEndpoint REF AvailableSAP;
[Key, Description (
"The RemoteReplicationGroup for which the SAP is available." )]
TPD_RemoteReplicationGroup REF ManagedElement;
// ==================================================================
// TPD_ReplicationEntity
// ==================================================================
[Description (
"This class represents a replication entity, such as an entity "
"known by its World Wide Name (WWN). "
"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. This will not exist as an instance "
"on its own." )]
class TPD_ReplicationEntity : CIM_ReplicationEntity {
};
3PAR_TPDStats.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_TPDStats.mof
//
// Purpose : This MOF contains 3PAR Statistical (Block Server Performance
// Subprofile) classes that will be loaded into root/tpd namespace.
//
// Date created: 4/18/2006
//
///////////////////////////////////////////////////////////////////////////
// ==================================================================
// Statistics Collection
// ==================================================================
[Description (
"Statistics collection")]
class TPD_StatisticsCollection : CIM_StatisticsCollection
{
};
// ==================================================================
// Hosted Statistics Collection
// ==================================================================
[Association, Description (
"HostedCollection defines a SystemSpecificCollection in the "
"context of a scoping System. It represents a Collection that "
"has meaning only in the context of a System, a Collection "
"whose elements are restricted by the definition of the System, "
"or both of these types of Collections.")]
class TPD_HostedStatisticsCollection : CIM_HostedCollection
{
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The scoping system.")]
TPD_StorageSystem REF Antecedent;
3PAR_TPDStats.mof 269
[Override ( "Dependent" ), Description (
"The collection defined in the context of a system.")]
TPD_StatisticsCollection REF Dependent;
};
// ==================================================================
// Block Statistics Statistics Collection
// ==================================================================
[Description (
"Block Statistics Statistics collection")]
class TPD_BlockStatisticsManifestCollection :
CIM_BlockStatisticsManifestCollection
{
};
// ==================================================================
// Associated Block Statistics Manifest Collection
// ==================================================================
[Association, Description (
"Instances of this class associate a "
"BlockStatisticsManifestCollection to the StatisticsCollection "
"to which is is applied. The ManifestCollection contains the "
"Manifests that are used to filter requests for the retrieval "
"of statistics.")]
class TPD_AssociatedBlockStatisticsManifestCollection :
CIM_AssociatedBlockStatisticsManifestCollection
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The collection of statistics filtered by the "
"BlockStatisticsManifestCollection.")]
TPD_StatisticsCollection REF Statistics;
[Key, Description (
"The collection of Manifests applied to the "
"StatisticsCollection.")]
TPD_BlockStatisticsManifestCollection REF ManifestCollection;
};
// ==================================================================
// Block Statistics Manifest
// ==================================================================
[Description (
"Block Statistics manifest")]
class TPD_BlockStatisticsManifest : CIM_BlockStatisticsManifest
{
};
// ==================================================================
// Member Of Block Statistics Manifest Collection
// ==================================================================
[Association, Aggregation, Description (
"Aggregation used to establish "
"membership of ManagedElements in a Collection.")]
class TPD_MemberOfBlockStatisticsManifestCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the Collection.")]
TPD_BlockStatisticsManifest REF Member;
};
// ==================================================================
// Hosted Block Statistics Manifest Collection
// ==================================================================
// ==================================================================
// Member Of Statistics Collection
// ==================================================================
[Association, Aggregation, Description (
"Aggregation used to establish "
"membership of ManagedElements in a Collection.")]
class TPD_MemberOfStatisticsCollection : CIM_MemberOfCollection {
[Key, Description (
"The aggregated member of the Collection.")]
CIM_BlockStorageStatisticalData REF Member;
};
// ==================================================================
// Array Statistical Data
// ==================================================================
[Description (
"Statistical data for the Array")]
class TPD_ArrayStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Array Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_ArrayElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_StorageSystem REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_ArrayStatisticalData REF Stats;
};
3PAR_TPDStats.mof 271
// ==================================================================
// Node Statistical Data
// ==================================================================
[Description (
"Statistical data for a node controller")]
class TPD_NodeStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Node Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_NodeElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_NodeSystem REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_NodeStatisticalData REF Stats;
};
// ==================================================================
// Disk Drive Statistical Data
// ==================================================================
[Description (
"Statistical data for the Disk Drive")]
class TPD_DiskStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Disk Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_DiskElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_DiskStorageExtent REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_DiskStatisticalData REF Stats;
};
// ==================================================================
// Port Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_PortElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
CIM_NetworkPort REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_PortStatisticalData REF Stats;
};
// ==================================================================
// Volume Statistical Data
// ==================================================================
[Description (
"Statistical data for the Volume")]
class TPD_VolumeStatisticalData : CIM_BlockStorageStatisticalData
{
};
// ==================================================================
// Storage Volume Element Statistical Data
// ==================================================================
[Association, Description (
"An association that relates a "
"ManagedElement to its StatisticalData. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementStatisticalData association for the referenced instance "
"of CIM_StatisticalData. ElementStatisticalData describes the "
"existence requirements and context for the "
"CIM_StatisticalData, relative to a specific ManagedElement.")]
class TPD_VolumeElementStatisticalData : CIM_ElementStatisticalData
{
[Key, Min ( 1 ), Max ( 1 ), Description (
"The ManagedElement for which statistical or metric data is "
"defined.")]
TPD_StorageVolume REF ManagedElement;
[Key, Description (
"The statistic information/object.")]
TPD_VolumeStatisticalData REF Stats;
};
3PAR_TPDStats.mof 273
// ==================================================================
// 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 is located. The cardinality "
"of this association is one-to-many. A System can host many "
"Services. Services are weak with respect to their hosting "
"System. Heuristic: A Service is hosted on the System where the "
"LogicalDevices or SoftwareFeatures that implement the Service "
"are located. The model does not represent Services hosted "
"across multiple systems. The model is as an ApplicationSystem "
"that acts as an aggregation point for Services that are each "
"located on a single host.")]
class TPD_HostedStatisticsService : CIM_HostedService
{
[Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
"The scoping system.")]
TPD_StorageSystem REF Antecedent;
// ==================================================================
// Block Statistics Capabilities
// ==================================================================
class TPD_BlockStatisticsCapabilities : CIM_BlockStatisticsCapabilities
{
};
// ==================================================================
// Statistics Element Capabilities
// ==================================================================
[Association, Description (
"ElementCapabilities represents the association between "
"ManagedElements and their Capabilities. Note that the "
"cardinality of the ManagedElement reference is Min(1), Max(1). "
"This cardinality mandates the instantiation of the "
"ElementCapabilities association for the referenced instance of "
"Capabilities. ElementCapabilities describes the existence "
"requirements and context for the referenced instance of "
"ManagedElement. Specifically, the ManagedElement MUST exist "
"and provides the context for the Capabilities.")]
class TPD_StatisticsElementCapabilities : CIM_ElementCapabilities {
[Key, Description (
"The Capabilities object associated with the element.")]
TPD_BlockStatisticsCapabilities REF Capabilities;
};
// ==================================================================
// LUNs Statistical Data
3PAR_TPDStats.mof 275