1 tony 1.1 // ===================================================================
2 // Title: Device Storage Services 2.8
3 // Filename: Device28_StorageServices.mof
4 // Version: 2.8
5 // Release: Preliminary
6 // Date: 08/18/2003
7 // ===================================================================
8 // Copyright 2002-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The Device Model extends the management concepts that
45 // are related to LogicalDevices. This file defines
46 // a model for storage services.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Preliminary
53 // CR997 - clarify StorageEfficiencyHint
54 // CR1028 - Add CreateSetting to StorageCapabilities
55 // CR1033 - Extent copy services.
56 // CR1044 - Add:
57 // StoragePool.TotalManagedSpace
58 // StoragePool.TotalAvailableSpace
59 // StoragePool.Primordial
60 // - Remove TotalAvailableSpace
61 // CR1046 - Add StorageConfigurationCapabilities
62 // CR1141 - Correction of StorageSynchronized.SyncState.
63 //
64 tony 1.1 // Change Log for v2.7.1
65 // - Fix MaxValue declarations in StorageSettingWithHints - the
66 // properties, AccessDirectionHint and AccessBandwidthWeight
67 //
68 // Change Log for v2.7 Final
69 // CR970 - Removal of the Experimental qualifier
70 // - Remove StoragePool.GetSupportedSize and StoragePool.
71 // GetSupportedSizeRange so they can remain experimental in 2.8
72 // CR978 - Clarify the use of settings and capabilities
73 // - Change 'spindle' to 'package'
74 // - Add ElementType in StoragePool methods
75 // - Add ElementName to creation methods
76 // - Fix ValueMap issues
77 // - Generalize the "goal" parameter in CreateOrModifyElement
78 // - Change units from megabytes to bytes.
79 // CR994 - Update description for InstanceID
80 //
81 // Change Log for v2.7
82 // CR775 - Add StorageSetting, StoragePool, StorageCapabilities,
83 // StorageConfigurationService, StorageSettingsWithHints,
84 // HostedStoragePool, and AllocatedStoragePool
85 tony 1.1 // CR759 - Add ConfigurationReportingService
86 // CR777 - Add StorageSynchrononized
87 // Add StorageSetting.DeltaReservation,
88 // StorageCpabilities.DeltaReservationMin,
89 // StorageCpabilities.DeltaReservationMax,
90 // StorageCpabilities.DeltaReservationDefault,
91 // StorageConfigurationService.CreateReplica() and
92 // StorageConfigurationService.ModifySynchronization()
93 // CR895 - Correct the method return Values/ValueMaps for all the
94 // methods in the ConfigurationReportingService.
95 // ==================================================================
96
97 #pragma locale ("en_US")
98
99
100 // ==================================================================
101 // StorageSynchronized
102 // ==================================================================
103 [Association, Version ("2.7.1000"), Description (
104 "Indicates that two Storage objects were replicated at the "
105 "specified point in time. If the CopyType property is set to "
106 tony 1.1 "'Sync' (=3), then synchronization of the Storage objects is "
107 "preserved.") ]
108 class CIM_StorageSynchronized : CIM_Synchronized {
109
110 [Override ("SystemElement"), Description (
111 "SystemElement represents the Storage that is the source of "
112 "the replication.") ]
113 CIM_ManagedElement REF SystemElement;
114
115 [Override ("SyncedElement"), Description (
116 "SyncedElement represents the Storage that is the target of "
117 "the replication.") ]
118 CIM_ManagedElement REF SyncedElement;
119
120 [Description (
121 "CopyType describes the Replication Policy. Values are:\n"
122 "Async: create and maintain an asynchronous copy of the source.\n"
123 "Sync: create and maintain a synchronized copy of the source.\n"
124 "UnSyncAssoc: create an unsynchronized copy and maintain an "
125 "association to the source."),
126 ValueMap {"2", "3", "4", "..", "0x8000.."},
127 tony 1.1 Values {"Async", "Sync", "UnSyncAssoc", "DMTF Reserved",
128 "Vendor Specific"} ]
129 uint16 CopyType;
130
131 [Experimental, Description (
132 "ReplicaType provides information on how the Replica is "
133 "being maintained. Values are:\n"
134 "Full Copy: This indicates that a full copy of the source "
135 "object is (or will be) generated .\n"
136 "Before Delta: This indicates that the source object will be "
137 "maintained as a delta data from the replica.\n"
138 "After Delta: This indicates that the replica will be "
139 "maintained as delta data from the source object.\n"
140 "Log: This indicates that the replica object is being "
141 "maintained as a log of changes to the source.\n"
142 "Not Specified: The method of maintaining the copy is not "
143 "specified."),
144 ValueMap {"0", "2", "3", "4", "5","..", "0x8000.."},
145 Values {"Not Specified", "Full Copy", "Before Delta",
146 "After Delta", "Log","DMTF Reserved", "Vendor Specific"} ]
147 uint16 ReplicaType;
148 tony 1.1
149 [Experimental, Description (
150 "SyncState describes the state of the association with "
151 "respect to Replication activity. Values are:\n"
152 "Initialized: The link to enable replication is established.\n"
153 "PrepareInProgress: Preparation for Replication is in progress.\n"
154 "Prepared: All necessary preparation has completed.\n"
155 "ResyncInProgress: Synchronization or Resynchronization is "
156 "in progress.\n"
157 "This may be the initial 'copy' or subsequent changes being copied.\n"
158 "Synchronized: An Async or Sync replication is currently "
159 "synchronized. When this value is set, SyncMaintained will "
160 "be true.\n"
161 "FractureInProgress: An operation to fracture an Async or "
162 "Sync replication is in progress.\n"
163 "Fractured: An Async or Sync replication is fractured.\n"
164 "QuiesceInProgress: A quiesce operation is in progress.\n"
165 "Quiesced: The replication has been quiesced and is ready "
166 "for a change.\n"
167 "RestoreInProgress: An operation is in progress to copy the "
168 "Synced object to the System object.\n"
169 tony 1.1 "Idle: The 'normal' state for an UnSyncAssoc replica.\n"
170 "Broken: The relationship is non-functional due to errors in "
171 "the source, the target, the path between the two or space "
172 "constraints."),
173 ValueMap {"2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
174 "12", "13", "..", "0x8000.."},
175 Values {"Initialized", "PrepareInProgress", "Prepared",
176 "ResyncInProgress", "Synchronized", "Fracture In Progress",
177 "QuiesceInProgress", "Quiesced", "Restore In Progresss",
178 "Idle", "Broken", "Fractured", "DMTF Reserved",
179 "Vendor Specific"} ]
180 uint16 SyncState;
181 };
182
183
184 // ==================================================================
185 // StorageSetting
186 // ==================================================================
187 [Version ("2.7.0"), Description (
188 "StorageSetting is roughly equivalent to a Service Level "
189 "Agreement (SLA) It defines the characteristics, qualities of "
190 tony 1.1 "service and goals when used in a CreateOrModifyElement "
191 "FromStoragePool or CreateOrModifyStoragePool method in the "
192 "StorageConfigurationService. It specifies a series of "
193 "properties with Maximum and Minimum values that define the "
194 "(inclusive) bounds that the object should maintain. Note that "
195 "the setting is associated to a StorageVolume, using "
196 "ElementSetting.") ]
197 class CIM_StorageSetting : CIM_SettingData {
198
199 [Write, Description (
200 "Indicates the desired value for No Single Point of "
201 "Failure. Possible values are false = single point of "
202 "failure, and true = no single point of failure.") ]
203 boolean NoSinglePointOfFailure;
204
205 [Write, Description (
206 "DataRedundancyMax describes the maximum number of complete "
207 "copies of data to be maintained. Examples would be RAID 5 "
208 "where 1 copy is maintained and RAID 1 where 2 or more "
209 "copies are maintained. Possible values are 1 to n. The "
210 "desired redundancy is specified using DataRedundancyGoal, "
211 tony 1.1 "while the minimum is defined by DataRedundancyMin."),
212 MinValue (1),
213 ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMin",
214 "CIM_StorageSetting.DataRedundancyGoal"} ]
215 uint16 DataRedundancyMax;
216
217 [Write, Description (
218 "DataRedundancyMin describes the minimum number of complete "
219 "copies of data to be maintained. Examples would be RAID 5 "
220 "where 1 copy is maintained and RAID 1 where 2 or more "
221 "copies are maintained. Possible values are 1 to n. The "
222 "desired redundancy is specified using DataRedundancyGoal, "
223 "while the maximum is defined by DataRedundancyMax."),
224 MinValue (1),
225 ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMax",
226 "CIM_StorageSetting.DataRedundancyGoal"} ]
227 uint16 DataRedundancyMin;
228
229 [Write, Description (
230 "DataRedundancyGoal describes the desired number of complete "
231 "copies of data to be maintained. Examples would be RAID 5 "
232 tony 1.1 "where 1 copy is maintained and RAID 1 where 2 or more "
233 "copies are maintained. Possible values are 1 to n. The "
234 "bounds (max and min) for redundancy are defined using the "
235 "properties, DataRedundancyMax and DataRedundancyMin."),
236 MinValue (1),
237 ModelCorrespondence {"CIM_StorageSetting.DataRedundancyMax",
238 "CIM_StorageSetting.DataRedundancyMin"} ]
239 uint16 DataRedundancyGoal;
240
241 [Write, Description (
242 "PackageRedundancyMax describes the maximum number of "
243 "redundant packages to be used. For example, in the storage "
244 "domain, package redundancy describes how many disk spindles "
245 "can fail without data loss including, at most, one spare. "
246 "An example would be RAID5 with a spare disk which would "
247 "have a PackageRedundancy of 2. Possible values are 0 to "
248 "n. The desired redundancy is specified using "
249 "PackageRedundancyGoal, while the minimum is defined by "
250 "PackageRedundancyMin."),
251 ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMin"
252 "CIM_StorageSetting.PackageRedundancyGoal"} ]
253 tony 1.1 uint16 PackageRedundancyMax;
254
255 [Write, Description (
256 "PackageRedundancyMin describes the minimum number of "
257 "redundant packages to be used. For example, in the storage "
258 "domain, package redundancy describes how many disk spindles "
259 "can fail without data loss including, at most, one spare. "
260 "An example would be RAID5 with a spare disk which would "
261 "have a PackageRedundancy of 2. Possible values are 0 to "
262 "n. The desired redundancy is specified using "
263 "PackageRedundancyGoal, while the maximum is defined by "
264 "PackageRedundancyMax."),
265 ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMax"
266 "CIM_StorageSetting.PackageRedundancyGoal"} ]
267 uint16 PackageRedundancyMin;
268
269 [Write, Description (
270 "PackageRedundancyGoal describes the desired number of "
271 "redundant packages to be used. For example, in the storage "
272 "domain, package redundancy describes how many disk spindles "
273 "can fail without data loss including, at most, one spare. "
274 tony 1.1 "An example would be RAID5 with a spare disk which would "
275 "have a PackageRedundancy of 2. Possible values are 0 to "
276 "n. The bounds (max and min) for redundancy are defined "
277 "using the properties, PackageRedundancyMax and "
278 "PackageRedundancyMin."),
279 ModelCorrespondence {"CIM_StorageSetting.PackageRedundancyMax"
280 "CIM_StorageSetting.PackageRedundancyMin"} ]
281 uint16 PackageRedundancyGoal;
282
283 [Description (
284 "DeltaReservationMax is a number between 1 (1%) and a 100 "
285 "(100%) which specifies the maximum amount of space that "
286 "should be reserved in a replica for caching changes. For a "
287 "complete copy this would be 100%. The desired reservation "
288 "is specified using DeltaReservationGoal, while the minimum "
289 "is defined by DeltaReservationMin."),
290 Units ("Percentage"), MinValue (1), MaxValue (100),
291 ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMin"
292 "CIM_StorageSetting.DeltaReservationGoal"} ]
293 uint8 DeltaReservationMax;
294
295 tony 1.1 [Description (
296 "DeltaReservationMin is a number between 1 (1%) and a 100 "
297 "(100%) which specifies the minimum amount of space that "
298 "should be reserved in a replica for caching changes. For a "
299 "complete copy this would be 100%. The desired reservation "
300 "is specified using DeltaReservationGoal, while the maximum "
301 "is defined by DeltaReservationMax."),
302 Units ("Percentage"), MinValue (1), MaxValue (100),
303 ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMax"
304 "CIM_StorageSetting.DeltaReservationGoal"} ]
305 uint8 DeltaReservationMin;
306
307 [Description (
308 "DeltaReservationGoal is a number between 1 (1%) and a 100 "
309 "(100%) which specifies the desired amount of space that "
310 "should be reserved in a replica for caching changes. For a "
311 "complete copy this would be 100%. The bounds (max and min) "
312 "for the reservation are defined using the properties, "
313 "DeltaReservationMax and DeltaReservationMin."),
314 Units ("Percentage"), MinValue (1), MaxValue (100),
315 ModelCorrespondence {"CIM_StorageSetting.DeltaReservationMin"
316 tony 1.1 "CIM_StorageSetting.DeltaReservationMax"} ]
317 uint8 DeltaReservationGoal;
318 };
319
320
321 // ==================================================================
322 // StoragePool
323 // ==================================================================
324 [Version ("2.7.1000"), Description (
325 "A pool of Storage that is managed within the scope of a "
326 "particular System. StoragePools may consist of component "
327 "StoragePools or StorageExtents. StorageExtents that belong to "
328 "the StoragePool have a Component relationship to the "
329 "StoragePool. StorageExtents/StoragePools that are elements of "
330 "a pool have their available space aggregated into the pool. "
331 "StoragePools and StorageVolumes may be created from "
332 "StoragePools. This is indicated by the "
333 "AllocatedFromStoragePool association. StoragePool is scoped "
334 "to a system by the HostedStoragePool association.") ]
335 class CIM_StoragePool : CIM_LogicalElement {
336
337 tony 1.1 [Key, Description (
338 "Within the scope of the instantiating Namespace, InstanceID "
339 "opaquely and uniquely identifies an instance of this "
340 "class. In order to ensure uniqueness within the NameSpace, "
341 "the value of InstanceID SHOULD be constructed using the "
342 "following 'preferred' algorithm:\n"
343 " <OrgID>:<LocalID>\n"
344 "Where <OrgID> and <LocalID> are separated by a colon ':', "
345 "and where <OrgID> MUST include a copyrighted, trademarked "
346 "or otherwise unique name that is owned by the business "
347 "entity creating/defining the InstanceID, or is a registered "
348 "ID that is assigned to the business entity by a recognized "
349 "global authority (This is similar to the <Schema "
350 "Name>_<Class Name> structure of Schema class names.) In "
351 "addition, to ensure uniqueness <OrgID> MUST NOT contain a "
352 "colon (':'). When using this algorithm, the first colon to "
353 "appear in InstanceID MUST appear between <OrgID> and <LocalID>.\n"
354 "<LocalID> is chosen by the business entity and SHOULD not "
355 "be re-used to identify different underlying (real-world) "
356 "elements. If the above 'preferred' algorithm is not used, "
357 "the defining entity MUST assure that the resultant "
358 tony 1.1 "InstanceID is not re-used across any InstanceIDs produced "
359 "by this or other providers for this instance's NameSpace.\n"
360 "For DMTF defined instances, the 'preferred' algorithm MUST "
361 "be used with the <OrgID> set to 'CIM'.") ]
362 string InstanceID;
363
364 [Required, Description (
365 "A unique name in the context of the System that identifies "
366 "this pool."),
367 MaxLen (256) ]
368 string PoolID;
369
370 [Experimental, Description (
371 "If true, \"Primordial\" indicates that the containing "
372 "System does not have the ability to create or delete this "
373 "operational element. This is important because "
374 "higher-level StoragePools may be assembled using the "
375 "Component or AllocatedFromStoragePool associations. "
376 "Although the higher-level abstractions can be created and "
377 "deleted, the most basic, (i.e. primordial), hardware-based "
378 "StoragePools cannot. They are physically realized as part "
379 tony 1.1 "of the System, or are actually managed by some other System "
380 "and imported as if they were physically realized.") ]
381 boolean Primordial=false;
382
383 [Experimental, Description (
384 "The total amount of raw storage (in bytes) managed by this "
385 "StoragePool. This includes all of the bytes consumed to "
386 "create the storage surfaced by this StoragePool, including "
387 "all of the overhead bytes that are not reflected in the "
388 "size of the logical storage allocated from this StoragePool.\n"
389 "Conceptually TotalManagedSpace reflects all storage known "
390 "via Component associations to underlying StorageExtents or "
391 "via AllocatedFromStoragePool associations to underlying "
392 "StoragePools. However, note that this underlying storage "
393 "may not be surfaced by the instrumentation."),
394 Units ("Bytes"),
395 ModelCorrespondence {"StoragePool.RemainingManagedSpace"} ]
396 uint64 TotalManagedSpace;
397
398 [Experimental, Description (
399 "The remaining amount of raw storage (in bytes) from the "
400 tony 1.1 "TotalManagedSpace of this StoragePool. This property is "
401 "maintained here to provide efficient access to this "
402 "information. However, note that it is possible to compute "
403 "RemainingManagedSpace as (TotalManagedSpace ? "
404 "SUM(References(AllocatedFromStoragePool, SpaceConsumed)). "
405 "Note that SpaceConsumed remains useful to determine the "
406 "amount of raw storage consumed by a particular allocated "
407 "element."),
408 Units ("Bytes"),
409 ModelCorrespondence {"StoragePool.TotalManagedSpace",
410 "AllocatedFromStoragePool.SpaceConsumed"} ]
411 uint64 RemainingManagedSpace;
412
413 [Description (
414 "For pools that support discrete sizes for volume or pool "
415 "creation, this method can be used to retrieve a list of "
416 "supported sizes. Note that different pool implementations "
417 "may support either or both the GetSupportedSizes and "
418 "GetSupportedSizeRanges methods at different times, "
419 "depending on Pool configuration. Also note that the "
420 "advertised sizes may change after the call due to requests "
421 tony 1.1 "from other clients. If the pool currently only supports a "
422 "range of sizes, then the return value will be set to 1."),
423 ValueMap {"0", "1", "2"},
424 Values {"Method completed OK", "Method not supported",
425 "Use GetSupportedSizeRange instead"} ]
426 uint32 GetSupportedSizes (
427 [IN, Description(
428 "The type of element for which supported sizes are "
429 "reported for."),
430 ValueMap{"2", "3"},
431 Values {"Storage Pool", "Storage Volume"}]
432 uint16 ElementType,
433 [IN, Description (
434 "The StorageSetting for which supported sizes should be "
435 "reported for.")]
436 CIM_StorageSetting REF Goal,
437 [OUT, IN(false), Description (
438 "List of support sizes for a Volume/Pool creation or "
439 "modification."),
440 Units ("Bytes") ]
441 uint64 Sizes[] );
442 tony 1.1
443 [Description (
444 "For pools that that support a range of sizes for volume or "
445 "pool creation, this method can be used to retrieve the "
446 "supported range. Note that different pool implementations "
447 "may support either or both the GetSupportedSizes and "
448 "GetSupportedSizeRanges methods at different times, "
449 "depending on Pool configuration. Also note that the "
450 "advertised sizes may change after the call due to requests "
451 "from other clients. If the pool currently only supports "
452 "discrete sizes, then the return value will be set to 1."),
453 ValueMap {"0", "1", "2"},
454 Values {"Method completed OK", "Method not supported",
455 "Use GetSupportedSizes instead"} ]
456 uint32 GetSupportedSizeRange (
457 [IN, Description(
458 "The type of element for which supported size ranges are "
459 "reported for."),
460 ValueMap{"2", "3"},
461 Values {"Storage Pool", "Storage Volume"}]
462 uint16 ElementType,
463 tony 1.1 [IN, Description (
464 "The StorageSetting for which supported size ranges should "
465 "be reported for.") ]
466 CIM_StorageSetting REF Goal,
467 [OUT, IN(false), Description (
468 "The minimum size for a volume/pool in bytes."),
469 Units ("Bytes") ]
470 uint64 MinimumVolumeSize,
471 [OUT, IN(false), Description (
472 "The maximum size for a volume/pool in bytes."),
473 Units ("Bytes") ]
474 uint64 MaximumVolumeSize,
475 [OUT, IN(false), Description (
476 "A volume/pool size must be a multiple of this value "
477 "which is specified in bytes"),
478 Units ("Bytes") ]
479 uint64 VolumeSizeDivisor);
480 };
481
482
483 // ==================================================================
484 tony 1.1 // StorageCapabilities
485 // ==================================================================
486 [Version ("2.7.1000"), Description (
487 "A subclass of Capabilities that defines the Capabilities of a "
488 "StorageService or StoragePool. For example, an instance of "
489 "StorageCapabilities could be associated with either a "
490 "StorageConfigurationService or StoragePool by using "
491 "ElementCapabilities.") ]
492 class CIM_StorageCapabilities : CIM_Capabilities {
493
494 [Description (
495 "Enumeration indicating the type of element to which this "
496 "StorageCapabilities applies."),
497 ValueMap {"0", "1", "2", "3", "4", "5", "6"},
498 Values {"Unknown", "Reserved", "Any Type", "StorageVolume",
499 "StorageExtent", "StoragePool",
500 "StorageConfigurationService"} ]
501 uint16 ElementType;
502
503 [Description (
504 "Indicates whether or not the associated element supports no "
505 tony 1.1 "single point of failure. Values are: FALSE = does not "
506 "support no single point of failure, and TRUE = supports no "
507 "single point of failure."),
508 ModelCorrespondence {
509 "CIM_StorageCapabilities.NoSinglePointOfFailureDefault"} ]
510 boolean NoSinglePointOfFailure;
511
512 [Description (
513 "Indicates the default value for the NoSinglePointOfFailure "
514 "property."),
515 ModelCorrespondence {
516 "CIM_StorageCapabilities.NoSinglePointOfFailure"} ]
517 boolean NoSinglePointOfFailureDefault;
518
519 [Description (
520 "DataRedundancyMax describes the maximum number of complete "
521 "copies of data that can be maintained. Examples would be "
522 "RAID 5 (where 1 copy is maintained) and RAID 1 (where 2 or "
523 "more copies are maintained). Possible values are 1 to n. "
524 "The default redundancy is specified using "
525 "DataRedundancyDefault, while the minimum is defined by "
526 tony 1.1 "DataRedundancyMin."),
527 MinValue (1),
528 ModelCorrespondence
529 {"CIM_StorageCapabilities.DataRedundancyMin",
530 "CIM_StorageCapabilities.DataRedundancyDefault"} ]
531 uint16 DataRedundancyMax;
532
533 [Description (
534 "DataRedundancyMin describes the minimum number of complete "
535 "copies of data that can be maintained. Examples would be "
536 "RAID 5 where 1 copy is maintained and RAID 1 where 2 or "
537 "more copies are maintained). Possible values are 1 to n. "
538 "The default redundancy is specified using "
539 "DataRedundancyDefault, while the maximum is defined by "
540 "DataRedundancyMax."),
541 MinValue (1),
542 ModelCorrespondence
543 {"CIM_StorageCapabilities.DataRedundancyMax",
544 "CIM_StorageCapabilities.DataRedundancyDefault"} ]
545 uint16 DataRedundancyMin;
546
547 tony 1.1 [Description (
548 "DataRedundancyDefault describes the default number of "
549 "complete copies of data that can be maintained. Examples "
550 "would be RAID 5 where 1 copy is maintained and RAID 1 where "
551 "2 or more copies are maintained. Possible values are 1 to "
552 "n. The bounds for the redundancy (max and min) are defined "
553 "by DataRedundancyMax and DataRedundancyMin."),
554 MinValue (1),
555 ModelCorrespondence
556 {"CIM_StorageCapabilities.DataRedundancyMax",
557 "CIM_StorageCapabilities.DataRedundancyMin"} ]
558 uint16 DataRedundancyDefault;
559
560 [Description (
561 "PackageRedundancyMax describes the maximum number of "
562 "redundant packages that can be used. For example, in the "
563 "storage domain, package redundancy describes how many disk "
564 "spindles can fail without data loss including, at most, one "
565 "spare. An example would be RAID5 with a spare disk which "
566 "would have a PackageRedundancy of 2. Possible values are 0 "
567 "to n. The default redundancy is specified using "
568 tony 1.1 "PackageRedundancyDefault, while the maximum is defined by "
569 "PackageRedundancyMax."),
570 ModelCorrespondence {
571 "CIM_StorageCapabilities.PackageRedundancyMin",
572 "CIM_StorageCapabilities.PackageRedundancyDefault"} ]
573 uint16 PackageRedundancyMax;
574
575 [Description (
576 "PackageRedundancyMin describes the minimum number of "
577 "redundant packages that can be used. For example, in the "
578 "storage domain, package redundancy describes how many disk "
579 "spindles can fail without data loss including, at most, one "
580 "spare. An example would be RAID5 with a spare disk which "
581 "would have a PackageRedundancy of 2. Possible values are 0 "
582 "to n. The default redundancy is specified using "
583 "PackageRedundancyDefault, while the minimum is defined by "
584 "PackageRedundancyMin."),
585 ModelCorrespondence {
586 "CIM_StorageCapabilities.PackageRedundancyMax",
587 "CIM_StorageCapabilities.PackageRedundancyDefault"} ]
588 uint16 PackageRedundancyMin;
589 tony 1.1
590 [Description (
591 "PackageRedundancyDefault describes the default number of "
592 "redundant packages that will be used. For example, in the "
593 "storage domain, package redundancy describes how many disk "
594 "spindles can fail without data loss including, at most, one "
595 "spare. An example would be RAID5 with a spare disk which "
596 "would have a PackageRedundancy of 2. Possible values are 0 "
597 "to n. The bounds for redundancy are specified using the "
598 "properties, PackageRedundancyMax and PackageRedundancyMin."),
599 ModelCorrespondence {
600 "CIM_StorageCapabilities.PackageRedundancyMin",
601 "CIM_StorageCapabilities.PackageRedundancyMax"} ]
602 uint16 PackageRedundancyDefault;
603
604 [Description (
605 "DeltaReservatioMax is a number between 1 (1%) and a 100 "
606 "(100%) that specifies the maximum amount of space reserved "
607 "in a replica for caching changes. For a complete copy this "
608 "would be 100%, but it can be lower in some "
609 "implementations. This parameter sets the upper limit, "
610 tony 1.1 "while DeltaReservationMin sets the lower limit."),
611 Units ("Percentage"), MinValue (0), MaxValue (100),
612 ModelCorrespondence {
613 "CIM_StorageCapabilities.DeltaReservationMin",
614 "CIM_StorageCapabilities.DeltaReservationDefault"} ]
615 uint16 DeltaReservationMax;
616
617 [Description (
618 "DeltaReservationMin is a number between 1 (1%) and a 100 "
619 "(100%) that specifies the minimum amount of space that "
620 "should be reserved in a replica for caching changes. For a "
621 "complete copy this would be 100%, but it can be lower in "
622 "some implementations. This parameter sets the lower limit, "
623 "while DeltaReservationMax sets the upper limit."),
624 Units ("Percentage"), MinValue (0), MaxValue (100),
625 ModelCorrespondence {
626 "CIM_StorageCapabilities.DeltaReservationMax",
627 "CIM_StorageCapabilities.DeltaReservationDefault"} ]
628 uint16 DeltaReservationMin;
629
630 [Description (
631 tony 1.1 "Delta reservation is a number between 1 (1%) and a 100 "
632 "(100%) that specifies how much space should be reserved by "
633 "default in a replica for caching changes. For a complete "
634 "copy this would be 100%, but it can be lower in some "
635 "implementations. This parameter sets the default value, "
636 "while DeletaReservationMax and DeltReservationMin set the "
637 "upper and lower bounds."),
638 Units ("Percentage"), MinValue (0), MaxValue (100),
639 ModelCorrespondence {
640 "CIM_StorageCapabilities.DeltaReservationMax",
641 "CIM_StorageCapabilities.DeltaReservationMin"} ]
642 uint16 DeltaReservationDefault;
643
644 [Experimental, Description (
645 "Method to create and populate a StorageSetting instance "
646 "from a StorageCapability instance. This removes the need "
647 "to populate default settings and other settings in the "
648 "context of each StorageCapabilities (which could be "
649 "numerous). If the underlying instrumentation supports the "
650 "StorageSettingWithHints subclass, then an instance of that "
651 "class will be created instead."),
652 tony 1.1 ValueMap {"0", "1", "2", "3", "4", "5", "..", "32768..65535"},
653 Values {"Success", "Not Supported", "Unspecified Error",
654 "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
655 "Vendor Specific"} ]
656 uint32 CreateSetting (
657 [IN, Description(
658 "If 'Default' is passed for the CreateDefault parameter, "
659 "the Max, Goal, and Min setting attributes are set to "
660 "the Default values of the parent StorageCapabilities when "
661 "the instance is created.\n If set to 'Goal' the new "
662 "StorageSetting attributes are set to the related "
663 "attributes of the parent StorageCapabilities, e.g. Min to "
664 "Min, Goal to Default, and Max to Max.\n\n"
665 "This method maybe deprecated in lieu of intrinsics "
666 "once limitations in the CIM Operations are addressed."),
667 ValueMap {"2", "3"},
668 Values {"Default", "Goal"}]
669 uint16 SettingType,
670 [OUT, IN(False), Description(
671 "Reference to the created StorageSetting instance")]
672 CIM_StorageSetting REF NewSetting
673 tony 1.1 );
674 };
675
676 // ==================================================================
677 // StorageConfigurationService
678 // ==================================================================
679 [Version ("2.7.1000"), Description (
680 "This service allows the active management of a Storage "
681 "Server. It allows jobs to be started for the creation, "
682 "modification and deletion of storage objects (StoragePools and "
683 "StorageVolumes).") ]
684 class CIM_StorageConfigurationService : CIM_Service {
685
686 [Description (
687 "Starts a job to create (or modify) a StoragePool. The "
688 "StoragePool will be (or must be) scoped to the same System "
689 "as this Service. One of the parameters for this method is "
690 "Size. As an input parameter, Size specifies the desired "
691 "size of the pool. As an output parameter, it specifies the "
692 "size achieved. Space is taken from either or both of the "
693 "specified input StoragePools and StorageExtents (InPools "
694 tony 1.1 "and InExtents). The capability requirements that the Pool "
695 "must support are defined using the Goal parameter. If the "
696 "requested pool size cannot be created, no action will be "
697 "taken, the Return Value will be 4097/0x1001, and the output "
698 "value of Size will be set to the nearest possible size. If "
699 "0 is returned, then the task completed successfully and the "
700 "use of ConcreteJob was not required. If the task will take "
701 "some time to complete, a ConcreteJob will be created and "
702 "its reference returned in the output parameter Job."),
703 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
704 "4097", "4098..32767", "32768..65535"},
705 Values {"Job Completed with No Error", "Not Supported",
706 "Unknown", "Timeout", "Failed", "Invalid Parameter",
707 "In Use", "DMTF Reserved",
708 "Method Parameters Checked - Job Started",
709 "Size Not Supported", "Method Reserved", "Vendor Specific"} ]
710 uint32 CreateOrModifyStoragePool (
711 [IN, Description (
712 "A end user relevant name for the pool being created. If "
713 "NULL, then a system supplied default name can be used. "
714 "The value will be stored in the 'ElementName' property "
715 tony 1.1 "for the created pool. If not NULL, this parameter "
716 "will supply a new name when modifying an existing pool.") ]
717 string ElementName,
718 [OUT, IN(false), Description(
719 "Reference to the job (may be null if job completed).") ]
720 CIM_ConcreteJob REF Job,
721 [IN, Description (
722 "Reference to an instance of StorageSetting that defines "
723 "the desired capabilities of the StoragePool. If set to a "
724 "null value, the default configuration from the source "
725 "pool will be used. If not NULL, this parameter will supply "
726 "a new Goal setting when modifying an existing pool." ) ]
727 CIM_StorageSetting REF Goal,
728 [IN, OUT, Description(
729 "As an input parameter this specifies the desired pool "
730 "size in bytes. As an output parameter this specifies "
731 "the size achieved."), Units ("Bytes") ]
732 uint64 Size,
733 [IN, Description (
734 "Array of strings containing representations of "
735 "references to CIM_StoragePool instances, that are used "
736 tony 1.1 "to create the Pool or modify the source pools.") ]
737 string InPools[],
738 [IN, Description (
739 "Array of strings containing representations of "
740 "references to CIM_StorageExtent instances, that are used "
741 "to create the Pool or modify the source extents.") ]
742 string InExtents[],
743 [IN, OUT, Description (
744 "As an input parameter: if null, creates a new StoragePool. "
745 "If not null, modifies the referenced Pool. When returned, "
746 "it is a reference to the resulting StoragePool.") ]
747 CIM_StoragePool REF Pool);
748
749 [Description (
750 "Start a job to create (or modify) a specified element (for "
751 "example a StorageVolume or StorageExtent) from a "
752 "StoragePool. One of the parameters for this method is "
753 "Size. As an input parameter, Size specifies the desired "
754 "size of the element. As an output parameter, it specifies "
755 "the size achieved. Space is taken from the input "
756 "StoragePool. The desired settings for the element are "
757 tony 1.1 "specified by the Goal parameter. If the requested size "
758 "cannot be created, no action will be taken, and the Return "
759 "Value will be 4097/0x1001. Also, the output value of Size "
760 "is set to the nearest possible size. If 0 is returned, the "
761 "function completed successfully and no ConcreteJob instance "
762 "was required. If 4096/0x1000 is returned, a ConcreteJob "
763 "will be started to create the element. The Job's reference "
764 "will be returned in the output parameter Job."),
765 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
766 "4097", "4098..32767", "32768..65535"},
767 Values {"Job Completed with No Error", "Not Supported",
768 "Unknown", "Timeout", "Failed", "Invalid Parameter",
769 "In Use", "DMTF Reserved",
770 "Method Parameters Checked - Job Started",
771 "Size Not Supported", "Method Reserved", "Vendor Specific"} ]
772 uint32 CreateOrModifyElementFromStoragePool(
773 [IN, Description (
774 "A end user relevant name for the element being created. If "
775 "NULL, then a system supplied default name can be used. The "
776 "value will be stored in the 'ElementName' property for "
777 "the created element. If not NULL, this parameter will "
778 tony 1.1 "supply a new name when modifying an existing element.") ]
779 string ElementName,
780 [IN, Description (
781 "Enumeration indicating the type of element being created "
782 "or modified. If the input parameter TheElement is "
783 "specified when the operation is a 'modify', this type "
784 "value must match the type of that instance."),
785 ValueMap{"0", "1", "2", "3", "..", "32768..65535"},
786 Values {"Unknown", "Reserved", "StorageVolume",
787 "StorageExtent", "DMTF Reserved", "Vendor Specific"} ]
788 uint16 ElementType,
789 [OUT, IN(false), Description(
790 "Reference to the job (may be null if job completed).") ]
791 CIM_ConcreteJob REF Job,
792 [IN, Description(
793 "The requirements for the element to maintain. If set to "
794 "a null value, the default configuration from the source "
795 "pool will be used. This parameter should be a reference "
796 "to a Setting or Profile appropriate to the element being "
797 "created. If not NULL, this parameter will supply a new "
798 "Goal when modifying an existing element.") ]
799 tony 1.1 CIM_ManagedElement REF Goal,
800 [IN, OUT, Description (
801 "As an input parameter Size specifies the desired size. "
802 "If not NULL, this parameter will supply a new size when "
803 "modifying an existing element. As an output parameter "
804 "Size specifies the size achieved."),
805 Units ("Bytes") ]
806 uint64 Size,
807 [IN, Description(
808 "The Pool from which to create the element. This parameter "
809 "must be set to null if the input parameter TheElement is "
810 "specified (in the case of a 'modify' operation).") ]
811 CIM_StoragePool REF InPool,
812 [IN, OUT, Description (
813 "As an input parameter: if null, creates a new element. If "
814 "not null, then the method modifies the specified element. "
815 "As an output parameter, it is a reference to the "
816 "resulting element.") ]
817 CIM_LogicalElement REF TheElement);
818
819 [Description (
820 tony 1.1 "Start a job to delete a StoragePool. The freed space is "
821 "returned source StoragePools (indicated by AllocatedFrom "
822 "StoragePool) or back to underlying storage extents. If 0 "
823 "is returned, the function completed successfully, and no "
824 "ConcreteJob was required. If 4096/0x1000 is returned, a "
825 "ConcreteJob will be started to delete the StoragePool. A "
826 "reference to the Job is returned in the Job parameter."),
827 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
828 "4097..32767", "32768..65535"},
829 Values {"Job Completed with No Error", "Not Supported",
830 "Unknown", "Timeout", "Failed", "Invalid Parameter",
831 "In Use", "DMTF Reserved",
832 "Method Parameters Checked - Job Started",
833 "Method Reserved", "Vendor Specific"} ]
834 uint32 DeleteStoragePool (
835 [OUT, IN(false), Description(
836 "Reference to the job (may be null if job completed).") ]
837 CIM_ConcreteJob REF Job,
838 [IN, Description(
839 "Reference to the pool to delete.") ]
840 CIM_StoragePool REF Pool);
841 tony 1.1
842 [Description (
843 "Start a job to delete an element previously created from a "
844 "StoragePool. The freed space is returned to the source "
845 "StoragePool. If 0 is returned, the function completed "
846 "successfully and no ConcreteJob was required. If "
847 "4096/0x1000 is returned, a ConcreteJob will be started to "
848 "delete the element. A reference to the Job is returned in "
849 "the Job parameter."),
850 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
851 "4097..32767", "32768..65535"},
852 Values {"Job Completed with No Error", "Not Supported",
853 "Unknown", "Timeout", "Failed", "Invalid Parameter",
854 "In Use", "DMTF Reserved",
855 "Method Parameters Checked - Job Started",
856 "Method Reserved", "Vendor Specific"} ]
857 uint32 ReturnToStoragePool(
858 [OUT, IN(false), Description(
859 "Reference to the job (may be null if job completed).") ]
860 CIM_ConcreteJob REF Job,
861 [IN, Description(
862 tony 1.1 "Reference to the element to return to the StoragePool.") ]
863 CIM_LogicalElement REF TheElement);
864
865 [Description (
866 "Start a job to create a new storage object which is a "
867 "replica of the specified source storage object. "
868 "(SourceElement). Note that using the input paramter, "
869 "CopyType, this function can be used to instantiate the "
870 "replica, and to create an ongoing association between the "
871 "source and replica. If 0 is returned, the function "
872 "completed successfully and no ConcreteJob instance is "
873 "created. If 4096/0x1000 is returned, a ConcreteJob is "
874 "started, a reference to which is returned in the Job output "
875 "parameter."),
876 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "4096",
877 "4097..32767", "32768..65535"},
878 Values {"Job Completed with No Error", "Not Supported",
879 "Unknown", "Timeout", "Failed", "Invalid Parameter",
880 "In Use", "DMTF Reserved",
881 "Method Parameters Checked - Job Started",
882 "Method Reserved", "Vendor Specific"} ]
883 tony 1.1 uint32 CreateReplica(
884 [IN, Description (
885 "A end user relevant name for the element being created. "
886 "If NULL, then a system supplied default name can be used. "
887 "The value will be stored in the 'ElementName' property "
888 "for the created element.") ]
889 string ElementName,
890 [OUT, IN(false), Description(
891 "Reference to the job (may be null if job completed).") ]
892 CIM_ConcreteJob REF Job,
893 [IN, Required, Description(
894 "The source storage object which may be a StorageVolume or "
895 "storage object.") ]
896 CIM_LogicalElement REF SourceElement,
897 [OUT, IN(false), Description(
898 "Reference to the created target storage element "
899 "(i.e., the replica).") ]
900 CIM_LogicalElement REF TargetElement,
901 [IN, Description(
902 "The definition for the StorageSetting to be maintained "
903 "by the target storage object (the replica).") ]
904 tony 1.1 CIM_StorageSetting REF TargetSettingGoal,
905 [IN, Description(
906 "The underlying storage for the target element (the "
907 "replica) will be drawn from TargetPool if specified, "
908 "otherwise the allocation is implementation specific.") ]
909 CIM_StoragePool REF TargetPool,
910 [IN, Description(
911 "CopyType describes the type of copy that will be made. "
912 "Values are: \n "
913 " Async: Create and maintain an asynchronous "
914 "copy of the source. \n "
915 " Sync: Create and maintain a synchronized copy "
916 "of the source. \n"
917 " UnSyncAssoc: Create an unsynchronized copy and "
918 "maintain an association to the source. \n "
919 " UnSyncUnAssoc: Create unassociated copy of the "
920 "source element."),
921 ValueMap {"2", "3", "4", "5", "..", "32768..65535"},
922 Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
923 "DMTF Reserved", "Vendor Specific"} ]
924 uint16 CopyType);
925 tony 1.1
926 [Description (
927 "Modify (or start a job to modify) the synchronization "
928 "association between two storage objects. If 0 is returned, "
929 "the function completed successfully and no ConcreteJob "
930 "instance was created. If 0x1000 is returned, a ConcreteJob "
931 "was started and a reference to this Job is returned in the "
932 "Job output parameter. A return value of 1 indicates the "
933 "method is not supported. All other values indicate some "
934 "type of error condition."),
935 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "0x1000",
936 "0x1001..0x7FFF", "0x8000..0xFFFF"},
937 Values {"Job Completed with No Error", "Not Supported",
938 "Unspecified Error", "Timeout", "Failed",
939 "Invalid Parameter", "In Use", "DMTF Reserved",
940 "Method Parameters Checked - Job Started",
941 "Method Reserved", "Vendor Specific"} ]
942 uint32 ModifySynchronization(
943 [IN, Description(
944 "Operation describes the type of modification to be made "
945 "to the replica. Values are: \n "
946 tony 1.1 " Detach: 'Forget' the synchronization between two "
947 "storage objects. Start to treat the objects as "
948 "independent. \n "
949 " Fracture: Suspend the synchronization between two "
950 "storage objects. The association and (typically) changes "
951 "are remembered to allow a fast resynchronization. This "
952 "may be used during a backup cycle to allow one of the "
953 "objects to be copied while the other remains in "
954 "production. \n"
955 " Resync Replica: Re-establish the synchronization of "
956 "a replica. This will negate the action of a previous "
957 "Fracture operation. \n"
958 " Restore from Replica: Renew the contents of the "
959 "original storage object from a replica. \n"
960 " Prepare: Get the link ready for a Resync operation to "
961 "take place. Some implementations will require this "
962 "operation to be invoked to keep the Resync operation "
963 "as fast as possible.\n"
964 " Unprepare: Clear a prepared state if a Prepare is "
965 "not to be followed by a Resync operation. \n"
966 " Quiesce: Some applications require notification so "
967 tony 1.1 "that they can ready the link for an operation. For "
968 "example flush any cached data or buffered changes.\n"
969 " Unquiesce: Take the link from the quiesced state "
970 "(without executing the intended operation.\n"
971 " Reset To Sync: Change the CopyType of the association "
972 "to Sync (e.g., from the Async CopyType). \n"
973 " Reset To Async: Change the CopyType of the association "
974 "to Async (e.g., from the Sync CopyType)."),
975 ValueMap {"0","1","2", "3", "4", "5", "6", "7", "8", "9",
976 "10", "11", "..", "0x8000..0xFFFF"},
977 Values {"DMTF Reserved", "DMTF Reserved", "Detach",
978 "Fracture", "Resync Replica", "Restore from Replica",
979 "Prepare", "Unprepare", "Quiesce", "Unquiesce",
980 "Reset To Sync", "Reset To Async", "DMTF Reserved",
981 "Vendor Specific"} ]
982 uint16 Operation,
983 [OUT, IN(false), Description(
984 "Reference to the job (may be null if the task completed).") ]
985 CIM_ConcreteJob REF Job,
986 [IN, Description(
987 "The referenced to the StorageSynchronized association "
988 tony 1.1 "describing the storage source/replica relationship.") ]
989 CIM_StorageSynchronized REF Synchronization);
990
991 [Experimental, Description (
992 "Create (or start a job to create) a StorageSynchronized "
993 "relationship between two existing storage objects. Note "
994 "that using the input parameter, CopyType, this function can "
995 "be used to to create an ongoing association between the "
996 "source and replica. If 0 is returned, the function "
997 "completed successfully and no ConcreteJob instance is "
998 "created. If 0x1000 is returned, a ConcreteJob is started, "
999 "a reference to which is returned in the Job output "
1000 "parameter. A return value of 1 indicates the method is not "
1001 "supported. All other values indicate some type of error "
1002 "condition."),
1003 ValueMap {"0", "1", "2", "3", "4", "5", "6", "..", "0x1000",
1004 "0x1001..0x7FFF", "0x8000..0xFFFF"},
1005 Values {"Job Completed with No Error", "Not Supported",
1006 "Unspecified Error", "Timeout", "Failed",
1007 "Invalid Parameter", "In Use", "DMTF Reserved",
1008 "Method Parameters Checked - Job Started",
1009 tony 1.1 "Method Reserved", "Vendor Specific"} ]
1010 uint32 AttachReplica(
1011 [OUT, IN(false), Description(
1012 "Reference to the job (may be null if the task "
1013 "completed).") ]
1014 CIM_ConcreteJob REF Job,
1015 [IN, Required, Description(
1016 "The source storage object which may be a StorageVolume or "
1017 "other storage object") ]
1018 CIM_ManagedElement REF SourceElement,
1019 [IN, Description(
1020 "Reference to the target storage element "
1021 "(i.e., the replica).") ]
1022 CIM_ManagedElement REF TargetElement,
1023 [IN, Description(
1024 "CopyType describes the type of Synchronized relationship "
1025 "that will be created. "
1026 "Values are: \n "
1027 " Async: Create and maintain an asynchronous "
1028 "copy of the source. \n "
1029 " Sync: Create and maintain a synchronized copy "
1030 tony 1.1 "of the source. \n"
1031 " UnSyncAssoc: Create an unsynchronized copy and "
1032 "maintain an association to the source. \n "
1033 " UnSyncUnAssoc: Create unassociated copy of the "
1034 "source element."),
1035 ValueMap {"2", "3", "4", "5", "..", "0x8000..0xFFFF"},
1036 Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
1037 "DMTF Reserved", "Vendor Specific"} ]
1038 uint16 CopyType);
1039 };
1040
1041 // ==================================================================
1042 // StorageConfigurationCapabilities
1043 // ==================================================================
1044 [Experimental, Version ("2.7.1000"), Description (
1045 "A subclass of Capabilities that defines the Capabilities of a "
1046 "StorageConfigurationService. An instance of "
1047 "StorageConfigurationCapabilities is associated with a "
1048 "StorageConfigurationService using ElementCapabilities.") ]
1049 class CIM_StorageConfigurationCapabilities : CIM_Capabilities {
1050
1051 tony 1.1 [Description (
1052 "Enumeration indicating what operations will be executed as "
1053 "asynchronous jobs. If an operation is included in both "
1054 "this and SupportedSynchronousActions then the underlying "
1055 "implementation is indicating that it may or may not create "
1056 "a job."),
1057 ValueMap {"2", "3", "4", "5", "6", "7", "8", "9", "10"},
1058 Values {"Storage Pool Creation", "Storage Pool Deletion",
1059 "Storage Pool Modification", "Storage Element Creation",
1060 "Storage Element Return", "Storage Element Modification",
1061 "Replica Creation", "Replica Modification",
1062 "Replica Attachment"},
1063 ModelCorrespondence {
1064 "CIM_StorageConfigurationCapabilities.SupportedSynchronousActions"} ]
1065 uint16 SupportedAsynchronousActions[];
1066
1067 [Description (
1068 "Enumeration indicating what operations will be executed "
1069 "without the creation of a job. If an operation is included "
1070 "in both this and SupportedAsynchronousActions then the "
1071 "underlying instrumentation is indicating that it may or may "
1072 tony 1.1 "not create a job."),
1073 ValueMap {"2", "3", "4", "5", "6", "7", "8", "9", "10"},
1074 Values {"Storage Pool Creation", "Storage Pool Deletion",
1075 "Storage Pool Modification", "Storage Element Creation",
1076 "Storage Element Return", "Storage Element Modification",
1077 "Replica Creation", "Replica Modification",
1078 "Replica Attachment"},
1079 ModelCorrespondence { "CIM_StorageConfigurationCapabilities."
1080 "SupportedAsynchronousActions"} ]
1081 uint16 SupportedSynchronousActions[];
1082
1083 [Description (
1084 "Enumeration indicating the type of storage elements that "
1085 "are supported by the associated "
1086 "StorageConfigurationService."),
1087 ValueMap {"2", "3", "..", "0x8000..0xFFFF"},
1088 Values {"StorageVolume", "StorageExtent", "DMTF Reserved",
1089 "Vendor Specific"},
1090 ModelCorrespondence { "CIM_StorageConfigurationService."
1091 "CreateOrModifyElementFromStoragePool.ElementType"} ]
1092 uint16 SupportedStorageElementTypes[];
1093 tony 1.1
1094 [Description (
1095 "Enumeration indicating features supported by the "
1096 "StoragePool methods."),
1097 ValueMap {"2", "3", "4", "..", "0x8000..0xFFFF"},
1098 Values {"InExtents", "Single InPool", "Multiple InPools",
1099 "DMTF Reserved", "Vendor Specific"},
1100 ModelCorrespondence { "CIM_StorageConfigurationService."
1101 "CreateOrModifyStoragePool.InPools",
1102 "CIM_StorageConfigurationService."
1103 "CreateOrModifyStoragePool.InElements" } ]
1104 uint16 SupportedStoragePoolFeatures[];
1105
1106 [Description (
1107 "Enumeration indicating features supported by the Storage "
1108 "Element methods."),
1109 ValueMap {"2", "3", "4", "5", "6", "7", "..", "0x8000..0xFFFF"},
1110 Values {"StorageExtent Creation", "StorageVolume Creation",
1111 "StorageExtent Modification", "StorageVolume Modification",
1112 "Single InPool", "Multiple InPools", "DMTF Reserved",
1113 "Vendor Specific"},
1114 tony 1.1 ModelCorrespondence { "CIM_StorageConfigurationService."
1115 "CreateOrModifyElementFromStoragePool.ElementType",
1116 "CIM_StorageConfigurationService."
1117 "CreateOrModifyElementFromStoragePool.InPools"} ]
1118 uint16 SupportedStorageElementFeatures[];
1119
1120 [Description (
1121 "SupportedCopyTypes describes the replication capabilities "
1122 "supported by the associated StorageConfigurationServices. "
1123 "Values are:\n"
1124 "Async: asynchronous copies may be created and maintained.\n"
1125 "Sync: synchronous copies may be created and maintained.\n"
1126 "UnSyncAssoc: unsynchronized copies may be created and maintained.\n"
1127 "UnSyncUnAssoc: a 'straight copy' may be created."),
1128 ValueMap {"2", "3", "4", "5", "..", "0x8000..0xFFFF"},
1129 Values {"Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
1130 "DMTF Reserved", "Vendor Specific"},
1131 ModelCorrespondence {
1132 "CIM_StorageConfigurationService.CreateReplica.CopyType"} ]
1133 uint16 SupportedCopyTypes[];
1134
1135 tony 1.1 [Description (
1136 "InitialReplicationState specifies which initial "
1137 "ReplicationState is supported by a particular provider. "
1138 "Values are:\n"
1139 "Initialized: The replication relationship is known and "
1140 "unsynchronized, but time required to synchronize may be long.\n"
1141 "Prepared: The replication relationship is known and "
1142 "unsynchronized and the time required to synchronize will be short.\n"
1143 "Synchronized: The replicas are synchronized."),
1144 ValueMap {"2", "3", "4", "..", "0x8000..0xFFFF"},
1145 Values {"Initialized", "Prepared", "Synchronized",
1146 "DMTF Reserved", "Vendor Specific"},
1147 ModelCorrespondence {
1148 "CIM_StorageConfigurationService.AttachReplica",
1149 "CIM_StorageConfigurationService.CreateReplica"} ]
1150 uint16 InitialReplicationState;
1151 };
1152
1153 // ====================================================================
1154 // StorageSettingWithHints
1155 // ====================================================================
1156 tony 1.1 [Version ("2.7.1"), Description (
1157 "This subclass of StorageSetting allows a client to specify "
1158 "'hint's for optimization of the volume performance. The "
1159 "effect of these hints is implementation dependent.") ]
1160 class CIM_StorageSettingWithHints: CIM_StorageSetting {
1161
1162 [Description (
1163 "This hint is an indication from a client of the importance "
1164 "placed on data availability. Values are 0=Don't Care to "
1165 "10=Very Important."),
1166 MinValue (0), MaxValue (10) ]
1167 uint16 DataAvailabilityHint;
1168
1169 [Description (
1170 "This hint is an indication from a client of the randomness "
1171 "of accesses. Values are 0=Entirely Sequential to "
1172 "10=Entirely Random."),
1173 MinValue (0), MaxValue (10) ]
1174 uint16 AccessRandomnessHint;
1175
1176 [Description (
1177 tony 1.1 "This hint is an indication from a client of the direction "
1178 "of accesses. Values are 0=Entirely Read to 10=Entirely "
1179 "Write."),
1180 MinValue (0), MaxValue (10) ]
1181 uint16 AccessDirectionHint;
1182
1183 [Description (
1184 "This hint is an indication from a client of the optimal "
1185 "access sizes (in bytes). Since this property is an array, "
1186 "several sizes can be specified."),
1187 Units ("Bytes") ]
1188 uint16 AccessSizeHint[];
1189
1190 [Description (
1191 "This hint is an indication from a client how important "
1192 "access latency is. Values are 0=Don't Care to 10=Very "
1193 "Important."),
1194 MinValue (0), MaxValue (10) ]
1195 uint16 AccessLatencyHint;
1196
1197 [Description (
1198 tony 1.1 "This hint is an indication from a client of bandwidth "
1199 "prioritization. Values are 0=Don't Care to 10=Very "
1200 "Important."),
1201 MinValue (0), MaxValue (10) ]
1202 uint16 AccessBandwidthWeight;
1203
1204 [Description (
1205 "This hint is an indication of the importance the client "
1206 "places on the cost of storage. Values are 0=Don't Care to "
1207 "10=Very Important. A StorageVolume provider might choose "
1208 "to place data on low cost or high cost drives based on this "
1209 "parameter."),
1210 MinValue (0), MaxValue (10) ]
1211 uint16 StorageCostHint;
1212
1213 [Description (
1214 "This hint is an indication of the importance placed on "
1215 "storage space efficiency by the client. Values are 0=Don't "
1216 "Care to 10=Very Important. A StorageVolume provider might "
1217 "choose different RAID levels based on this hint."),
1218 MinValue (0), MaxValue (10) ]
1219 tony 1.1 uint16 StorageEfficiencyHint;
1220 };
1221
1222
1223 // ===================================================================
1224 // AllocatedFromStoragePool
1225 // ===================================================================
1226 [Association, Version ("2.7.0"), Description (
1227 "AllocatedFromStoragePool is an association describing how "
1228 "LogicalElements are allocated from underlying StoragePools. "
1229 "These elements typically would be subclasses of StorageExtents "
1230 "or StoragePools.") ]
1231 class CIM_AllocatedFromStoragePool : CIM_Dependency {
1232
1233 [Override ("Antecedent"), Description (
1234 "The StoragePool.") ]
1235 CIM_StoragePool REF Antecedent;
1236
1237 [Override ("Dependent"), Description (
1238 "The subsidiary element.") ]
1239 CIM_LogicalElement REF Dependent;
1240 tony 1.1
1241 [Description (
1242 "Space consumed from this Pool, in bytes."),
1243 Units ("Bytes") ]
1244 uint64 SpaceConsumed;
1245 };
1246
1247
1248 // ==================================================================
1249 // HostedStoragePool
1250 // ==================================================================
1251 [Association, Aggregation, Composition, Version ("2.7.0"),
1252 Description (
1253 "SystemStoragePool is a specialization of SystemComponent "
1254 "association that establishes that the StoragePool is defined "
1255 "in the context of the System.") ]
1256 class CIM_HostedStoragePool : CIM_SystemComponent {
1257
1258 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
1259 Description (
1260 "The parent system in the Association.") ]
1261 tony 1.1 CIM_System REF GroupComponent;
1262
1263 [Override ("PartComponent"), Description (
1264 "The StoragePool that is a component of a System.") ]
1265 CIM_StoragePool REF PartComponent;
1266 };
1267
1268
1269 // ===================================================================
1270 // ConfigurationReportingService
1271 // ===================================================================
1272 [Description (
1273 "Service to provide reports on current configuration and "
1274 "potential for growth. The service may be used in several circumstances:\n"
1275 "- To report growth potential (how many can I have)\n"
1276 "- To report information on objects not directly modeled for "
1277 "performance or other reasons.\n"
1278 "It can also report counts of 'things' or counts of 'units'. "
1279 "For example, the number of disk drives could be reported or "
1280 "the capacity that they would provide.") ]
1281 class CIM_ConfigurationReportingService : CIM_Service {
1282 tony 1.1
1283 [Description (
1284 "Returns a list of classes that the given Managed Element "
1285 "supports or has installed."),
1286 ValueMap {"0", "1", "2", "3", "4", "..", "32768..65535"},
1287 Values {"Success", "Not Supported", "Unknown", "Timeout",
1288 "Failed", "DMTF Reserved", "Vendor Specific"} ]
1289 uint32 GetClassTypes(
1290 [IN, ValueMap {"2", "3"},
1291 Values {"Supports", "Installed"},
1292 Description (
1293 "The type of inquiry to be performed.") ]
1294 uint16 InquiryType,
1295 [IN, Description(
1296 "False : Only report on elements directly contained "
1297 "in/attached to the given ManagedElement. \n"
1298 "True : Report on all objects contained in/attached "
1299 "to the given ManagedElement.") ]
1300 boolean Recursive,
1301 [IN, Description(
1302 "The target of query, for example a rack or a chassis.") ]
1303 tony 1.1 CIM_ManagedElement REF Target,
1304 [OUT, IN (false), Description(
1305 "Array containing the class names (typically the leaf "
1306 "classes) that the given ManagedElement can support or "
1307 "has installed.") ]
1308 string ClassTypes[]);
1309
1310 [Description (
1311 "Returns a list of UnitTypes that are installed for a given "
1312 "ClassType on a given ManagedElement."),
1313 ValueMap {"0", "1", "2", "3", "4", "..", "32768..65535"},
1314 Values {"Success", "Not Supported", "Unknown", "Timeout",
1315 "Failed", "DMTF Reserved", "Vendor Specific"} ]
1316 uint32 GetUnitTypes(
1317 [IN, ValueMap {"2", "3"},
1318 Values {"Supported", "Installed"},
1319 Description ("The type of inquiry to be performed.") ]
1320 uint16 InquiryType,
1321 [IN, Description(
1322 "False : Only report on elements directly contained "
1323 "in/attached to the given ManagedElement. \n"
1324 tony 1.1 "True : Report on all objects contained in/attached "
1325 "to the given ManagedElement.") ]
1326 boolean Recursive,
1327 [IN, Description(
1328 "The target of query, for example a rack or a chassis.") ]
1329 CIM_ManagedElement REF Target,
1330 [IN, Description(
1331 "The ClassType for the query. This should be a entry "
1332 "returned in the GetClassTypes.ClassTypes property.") ]
1333 string ClassType,
1334 [OUT, IN (false), Description(
1335 "A list of supported UnitTypes."),
1336 ValueMap{"2", "3", "4", "5", "6", "7", "8", "9",
1337 "10", "..", "32768..65535"},
1338 Values {"None", "Front Side", "Back Side", "Contained",
1339 "Connected", "I/O", "Memory", "StorageMediaLocation",
1340 "Megabytes", "DMTF Reserved", "Vendor Specific"},
1341 ModelCorrespondence {
1342 "CIM_ConfigurationReportingService."
1343 "ReportCapacity(UnitType)"} ]
1344 uint16 UnitTypes[]);
1345 tony 1.1
1346 [Description (
1347 "Returns the maximum number supported or the number of "
1348 "currently installed units for the given UnitType, for a "
1349 "given ClassType on a given ManagedElement."),
1350 ValueMap {"0", "1", "2", "3", "4", "..", "32768..65535"},
1351 Values {"Success", "Not Supported", "Unknown", "Timeout",
1352 "Failed", "DMTF Reserved", "Vendor Specific"} ]
1353 uint32 ReportCapacity(
1354 [IN, ValueMap {"2", "3"},
1355 Values {"Supported", "Installed"},
1356 Description ("The type of inquiry to be performed.") ]
1357 uint16 InquiryType,
1358 [IN, Description(
1359 "False : Only report on elements directly contained "
1360 "in/attached to the given ManagedElement. \n"
1361 "True : Report on all objects contained in/attached "
1362 "to the given ManagedElement.") ]
1363 boolean Recursive,
1364 [IN, Description(
1365 "The target of query, for example a rack or a chassis.") ]
1366 tony 1.1 CIM_ManagedElement REF Target,
1367 [IN, Description(
1368 "The ClassType for the query. This should be a entry "
1369 "returned in the GetClassTypes.ClassTypes property.") ]
1370 string ClassType,
1371 [IN, Description(
1372 "The UnitType for the query."),
1373 ValueMap{"2", "3", "4", "5", "6", "7", "8", "9",
1374 "10", "..", "32768..65535"},
1375 Values {"None", "Front Side", "Back Side", "Contained",
1376 "Connected", "I/O", "Memory", "StorageMediaLocation",
1377 "Megabytes", "DMTF Reserved", "Vendor Specific"},
1378 ModelCorrespondence {
1379 "CIM_ConfigurationReportingService."
1380 "GetUnitTypes(UnitTypes)"} ]
1381 uint16 UnitType,
1382 [OUT, IN (false), Description (
1383 "The maximum number of supported or the number of "
1384 "currently installed units.") ]
1385 uint64 NumberOfUnits);
1386 };
1387 tony 1.1
1388
1389 // ===================================================================
1390 // end of file
1391 // ===================================================================
|