(file) Return to Core27_Redundancy.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIMPrelim271

  1 karl  1.1 // ===================================================================
  2           // Title:       Core Redundancy 2.7.1
  3           // Filename:    Core27_Redundancy.mof
  4           // Version:     2.7.1
  5           // Release:     Preliminary 
  6           // Date:        10/21/02
  7           // ===================================================================
  8           // Copyright 2002 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 karl  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 karl  1.1 // ===================================================================
 44           // Description: The Core Model defines basic management concepts. 
 45           //              This file defines the concepts and classes to support
 46           //              Redundancy.  
 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.7.1
 53           // CR914 - Remove Aggregate qualifier from the PartComponent reference
 54           //         of RedundancyComponent. Also, there is a mismatch in the
 55           //         number of Values vs ValueMap entries in StorageRedundancySet.
 56           //         TypeOfAlgorithm.  The value, "2", should be removed
 57           //         from the ValueMap. 
 58           //
 59           // Change Log for v2.7
 60           // CR722 - Update description for StorageRedundancyGroup
 61           // CR752 - Add RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
 62           //         and ExtraCapacitySet
 63           //       - Update the description for RedundancyGroup
 64 karl  1.1 // ================================================================== 
 65           
 66           #pragma locale ("en_US")
 67           
 68           
 69           // ===================================================================
 70           // RedundancySet
 71           // ===================================================================
 72           [Experimental, Version ("2.7.0"), Description (
 73               "  A class derived from SystemSpecificCollection that is a special "
 74               "collection of ManagedElements. This collection indicates "
 75               "that the aggregated elements together provide redundancy, or "
 76               "that redundancy is provided via sparing. All elements "
 77               "collected in a RedundancySet should be instantiations of the "
 78               "same object class. \n"
 79               "  Note that the CIM_RedundancySet class is very similar to "
 80               "CIM_RedundancyGroup, yet both classes are present in the model.  "
 81               "This is because some implementations have successfully used "
 82               "CIM_RedundancyGroup.  However, issues have arisen that could not "
 83               "be resolved without defining a new class.  Therefore, until a "
 84               "new major release occurs, both classes will exist in the model. "
 85 karl  1.1     "Refer to the Core White Paper for additional information.") ]
 86           class CIM_RedundancySet : CIM_SystemSpecificCollection {
 87               
 88               [Override ("ElementName"), Required, Description (
 89                   "The user friendly name for this instance of RedundancySet. "
 90                   "In addition, the user friendly name can be used as a "
 91                   "property for a search or query.  (Note:  InstanceName "
 92                   "does not have to be unique within a namespace.)") ]
 93               string ElementName;
 94              
 95               [Description (
 96                   "RedundancyStatus provides information on the state of "
 97                   "the RedundancySet. \n"
 98                   " - Fully Redundant (=2) means that all of the "
 99                   "configured redundancy is still available. \n "
100                   " - Degraded Redundancy (=3) means that some failures "
101                   "have been experienced but some reduced amount of "
102                   "redundancy is still available \n"
103                   " - Redundancy Lost (=4) means that a sufficient number "
104                   "of failures have been experienced such that no "
105                   "redundancy is available and the next failure "
106 karl  1.1         "experienced will cause overall failure."), 
107                   ValueMap {"0", "1", "2", "3", "4"},
108                   Values {"Unknown", "Other", "Fully Redundant", 
109                       "Degraded Redundancy", "Redundancy Lost"} ]
110               uint16 RedundancyStatus;
111           };
112           
113           
114           // ===================================================================
115           // SparedSet
116           // ===================================================================
117           [Experimental, Version ("2.7.0"), Description (
118               "A class derived from RedundancySet indicating that the "
119               "collected elements can be spared. (The actual spares are "
120               "defined using the IsSpare association.) An example is "
121               "the use of redundant network adapters in a ComputerSystem - "
122               "where one adapter is Primary and the other is Spare. The "
123               "'primary' adapter would be a member of the SparedSet "
124               "(associated using MemberOfCollection) and the 'other' adapter "
125               "would be associated to the SparedSet using the IsSpare "
126               "relationship.") ] 
127 karl  1.1 class CIM_SparedSet : CIM_RedundancySet {
128           
129               [Description (
130                   "The type of failover algorithms that are supported."),
131                   ValueMap {"0", "1", "2", "3"},      
132                   Values {"Unknown", "Other", "Automatic", "Manual"} ]
133               uint16 FailoverSupported;   
134              
135               [Description (
136                   "This method forces a failover from one ManagedElement to "
137                   "another. There are two parameters to the Failover method. \n"
138                   " - FailoverFrom is a reference to an 'active' ManagedElement "
139                   "that will become inactive after the method.  This element "
140                   "should be part of the SparedSet via a MemberOfCollection "
141                   "relationship. \n"
142                   " - FailoverTo is a reference to the ManagedElement that "
143                   "will take over for the FailoverFrom element. This element "
144                   "should be associated with the SparedSet via an IsSpare "
145                   "relationship.  \n"
146                   "Once the failover has occurred, the MemberOfCollection and "
147                   "IsSpare associations are updated to reflect the "
148 karl  1.1         "current state.  For example, the MemberOfCollection "
149                   "association for the FailoverFrom element is deleted. "
150                   "The IsSpare association for the FailoverTo element is "
151                   "replaced with MemberOfCollection. \n"  
152                   "The method should return 0 if successful, 1 if the "
153                   "request is not supported, and some other value if any "
154                   "other error occurred. In a subclass, the set of possible "
155                   "return codes could be specified, using Value and ValueMap "
156                   "qualifiers on the method.") ]
157               uint32 Failover(
158                   [IN] CIM_ManagedElement REF FailoverFrom, 
159                   [IN] CIM_ManagedElement REF FailoverTo);      
160           };
161           
162           
163           // ===================================================================
164           // IsSpare
165           // ===================================================================
166           [Association, Experimental, Version ("2.7.0"), Description (
167               "The IsSpare association indicates an element that can "
168               "spare or replace one of the elements in the referenced "
169 karl  1.1     "SparedSet. If the 'spare' is itself a Collection, this "
170               "indicates that each of the 'spare' members can replace "
171               "one of the elements in the SparedSet. The fact that a "
172               "spare can operate in 'hot standby' mode is specified on "
173               "an element by element basis - i.e., in this association.") ]
174           class CIM_IsSpare : CIM_Dependency {
175           
176               [Override ("Antecedent"), Description (
177                   "A ManagedElement or Collection of elements acting as a "
178                   "spare.") ]
179               CIM_ManagedElement REF Antecedent; 
180           
181               [Override ("Dependent"), Description (
182                   "The set of elements that ARE spared.") ]
183               CIM_SparedSet REF Dependent;
184           
185               [Description (
186                   "HotStandby is a boolean indicating that the 'spare' is "
187                   "operating as a hot standby.") ]
188               boolean HotStandby;   
189           };
190 karl  1.1 
191           
192           // ===================================================================
193           // StorageRedundancySet
194           // ===================================================================
195           [Experimental, Version ("2.7.1"), Description (
196               "A class derived from RedundancySet describing storage-related "
197               "redundancy information. StorageRedundancySets are used to "
198               "protect user data. They aggregate on one or more underlying "
199               "StorageExtents, associated via MemberOfCollection, and "
200               "produce one or more higher-level Extents.  The Extents are "
201               "related to each other via a BasedOn association. And, "
202               "the higher level Extent is related to the StorageRedundancy"
203               "Set via the LogicalIdentity association. \n"
204               "Note that StorageRedundancySets may overlap in their "
205               "aggregation of members. If this occurs, the overlapping "
206               "Extents should not contain any check data.") ]
207           class CIM_StorageRedundancySet : CIM_RedundancySet {
208           
209               [Description (
210                   "TypeOfAlgorithm specifies the algorithm used for "
211 karl  1.1         "storage data redundancy and reconstruction. For example, "
212                   "'P+Q' (=5) or 'P+S' (=7) may be specified."), 
213                   ValueMap {"0", "1", "3", "4", "5", "6"},
214                   Values {"Unknown", "Other", "Copy", "XOR", "P+Q", 
215                       "S", "P+S"}, 
216                   MappingStrings {"MIF.DMTF|Redundancy Group|001.2"},
217                   ModelCorrespondence {"StorageRedundancySet.OtherAlgorithm"} ]
218               uint16 TypeOfAlgorithm;
219           
220               [Description (
221                   "A string describing the redundancy algorithm  when the"
222                   "TypeOfAlgorithm is set to 1 'Other'."),
223                   ModelCorrespondence {
224                       "StorageRedundancySet.TypeOfAlgorithm"} ]
225               string OtherAlgorithm;
226           };
227           
228           
229           // ===================================================================
230           // ExtraCapacitySet
231           // ===================================================================
232 karl  1.1 [Experimental, Version ("2.7.0"), Description (
233               "A class derived from RedundancySet to describe that the "
234               "aggregated elements have more capacity or capability than is "
235               "needed.  Some examples of this type of redundancy are clusters, "
236               "or the installation of N+1 power supplies or fans in a "
237               "computer.") ] 
238           class CIM_ExtraCapacitySet : CIM_RedundancySet {
239           
240               [Description (
241                   "MinNumberNeeded indicates the smallest number of elements "
242                   "that must be operational in order to function.  "
243                   "For example, in an N+1 redundancy relationship, "
244                   "the MinNumberNeeded property is set equal to N."),
245                   MinValue (1) ]
246               uint32 MinNumberNeeded;
247           
248               [Description (
249                   "MaxNumberSupported indicates the largest number of "
250                   "elements that can participate in the ExtraCapacitySet. "
251                   "A value of 0 indicates there is no limit on the number "
252                   "of elements.") ]
253 karl  1.1     uint32 MaxNumberSupported;  
254              
255               [Description (
256                   "Boolean indicating whether load balancing is supported by "
257                   "the ExtraCapacitySet.") ]
258               boolean LoadBalancedSet; 
259           };
260           
261           
262           // ===================================================================
263           // RedundancyGroup
264           // ===================================================================
265           [Version ("2.7.0"), Description (
266               "A class derived from LogicalElement that is a special "
267               "collection of ManagedSystemElements. This collection indicates "
268               "that the aggregated components together provide redundancy. "
269               "All elements aggregated in a RedundancyGroup should be "
270               "instantiations of the same object class.\n"
271               "  Note that the CIM_RedundancySet class is very similar to "
272               "CIM_RedundancyGroup, yet both classes are present in the model. "
273               "This is because some implementations have successfully used "
274 karl  1.1     "CIM_RedundancyGroup.  However, issues have arisen that could not "
275               "be resolved without defining a new class.  Therefore, until a "
276               "new major release occurs, both classes will exist in the model. "
277               "Refer to the Core White Paper for additional information.") ] 
278           class CIM_RedundancyGroup : CIM_LogicalElement {
279           
280               [Key, MaxLen (256), Description (
281                   "CreationClassName indicates the name of the class or "
282                   "the subclass used in the creation of an instance. When "
283                   "used with the other key properties of this class, this "
284                   "property allows all instances of this class and its "
285                   "subclasses to be uniquely identified.") ]
286               string CreationClassName;
287           
288               [Override("Name"), Key, MaxLen (256), Description (
289                   "The RedundancyGroup Name serves as the key for the "
290                   "Group's instance in an enterprise environment.") ]
291               string Name;
292           
293               [Description (
294                   "RedundancyStatus provides information on the state of the "
295 karl  1.1         "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
296                   "all of the configured redundancy is still available; "
297                   "\"Degraded Redundancy\" (3) means that some failures have "
298                   "been experienced but some reduced amount of redundancy is "
299                   "still available; \"Redundancy Lost\" (4) means that a "
300                   "sufficient number of failures have been experienced such "
301                   "that no redundancy is available and the next failure "
302                   "experienced will cause overall failure. Also, the values, "
303                   "\"Other\" (1) and \"Unknown\" (0), are defined."),
304                   ValueMap {"0", "1", "2", "3", "4"}, 
305                   Values {"Unknown", "Other", "Fully Redundant", 
306                      "Degraded Redundancy", "Redundancy Lost"} ]
307              uint16 RedundancyStatus;
308           };
309           
310           
311           // ===================================================================
312           // RedundancyComponent
313           // ===================================================================
314           [Association, Aggregation, Version ("2.7.1"), Description (
315               "A RedundancyGroup aggregates Managed System Elements and "
316 karl  1.1     "indicates that these elements, taken together, provide "
317               "redundancy. All elements aggregated in a RedundancyGroup "
318               "should be instantiations of the same object class.") ] 
319           class CIM_RedundancyComponent : CIM_Component {
320           
321               [Override ("GroupComponent"), Aggregate, Description (
322                   "The RedundancyComponent association indicates that "
323                   "'this set of fans' or 'these physical extents' participate "
324                   "in a single RedundancyGroup.") ]
325               CIM_RedundancyGroup REF GroupComponent;
326               
327               [Override ("PartComponent"), Description (
328                   "The component of the redundancy group.") ]
329               CIM_ManagedSystemElement REF PartComponent;
330           };
331           
332           
333           // ===================================================================
334           // SpareGroup
335           // ===================================================================
336           [Version ("2.6.0"), Description (
337 karl  1.1     "A class derived from RedundancyGroup indicating that one or "
338               "more of the aggregated elements can be spared. (The actual "
339               "Spares are defined using the ActsAsSpare association.) An "
340               "example is the use of redundant NICs in a ComputerSystem - "
341               "where one NIC is primary and the other is Spare. The 'primary' "
342               "NIC would be a member of the SpareGroup (associated using the "
343               "RedundancyComponent class) and the 'other' NIC would be "
344               "associated using the ActsAsSpare relationship.") ] 
345           class CIM_SpareGroup : CIM_RedundancyGroup {
346           
347               [Description (
348                   "This method is forces a failover from one ManagedSystem"
349                   "Element to another.  There are two parameters to the Failover "
350                   "method, FailoverFrom and FailoverTo. The FailoverFrom "
351                   "parameter is a reference to the primary ManagedSystemElement "
352                   "that will become inactive after the method. This Element "
353                   "should be associated with the SpareGroup through the "
354                   "RedundancyComponent relationship. The FailoverTo parameter "
355                   "is a reference to the ManagedSystemElement that will take "
356                   "over for the primary. This Element should be associated with "
357                   "the SpareGroup through the ActsAsSpare association. Once the "
358 karl  1.1         "failover has occurred, the SpareGroup and the Redundancy"
359                   "Component and ActsAsSpare associations will be updated with "
360                   "current status.  For example, the ActsAsSpare association "
361                   "that contained the FailoverTo Element will be deleted and a "
362                   "new RedundancyComponent association instantiated in its "
363                   "place. The method should return 0 if successful, 1 if the "
364                   "request is not supported, and some other value if any other "
365                   "error occurred. In a subclass, the set of possible return "
366                   "codes could be specified, using a ValueMap qualifier on the "
367                   "method. The strings to which the ValueMap contents are "
368                   "'translated' may also be specified in the subclass as a "
369                   "Values array qualifier.") ]
370               uint32 Failover(
371                   [IN] CIM_ManagedSystemElement REF FailoverFrom, 
372                   [IN] CIM_ManagedSystemElement REF FailoverTo);      
373           };
374           
375           
376           // ===================================================================
377           // ActsAsSpare
378           // ===================================================================
379 karl  1.1 [Association, Version ("2.6.0"), Description (
380               "The ActsAsSpare association indicates which elements can spare "
381               "or replace the other aggregated elements.  The fact that a "
382               "spare can operate in \"hot standby\" mode is specified on an "
383               "element by element basis.") ]
384           class CIM_ActsAsSpare  {
385           
386               [Key, Description (
387                   "The SpareGroup.") ]
388               CIM_SpareGroup REF Group;
389               
390               [Key, Description (
391                   "A ManagedSystemElement acting as a spare and participating "
392                   "in the SpareGroup.") ]
393               CIM_ManagedSystemElement REF Spare; 
394               
395               [Description (
396                   "HotStandby is a boolean indicating that the spare is "
397                   "operating as a hot standby.") ]
398               boolean HotStandby;   
399           };
400 karl  1.1 
401           
402           // ===================================================================
403           // StorageRedundancyGroup
404           // ===================================================================
405           [Version ("2.7.0"), Description (
406               "A class derived from RedundancyGroup containing mass "
407               "storage-related redundancy information. StorageRedundancy"
408               "Groups are used to protect user data.  They act on one "
409               "or more underlying StorageExtents, associated via "
410               "ExtentRedundancyComponent and produce one or more protected "
411               "StorageExtents that are associated to the underlying "
412               "StorageExtents via ProtectedExtentBasedOn or"
413               "CompositeExtentBasedOn.  StorageRedundancyGroups may overlap. "
414               "However, the underlying StorageExtents within the overlap "
415               "should not contain any check data.") ] 
416           class CIM_StorageRedundancyGroup : CIM_RedundancyGroup  {
417           
418               [Description (
419                   "The TypeOfAlgorithm specifies the algorithm used for data "
420                   "redundancy and reconstruction. For example, \"P+Q\" (value"
421 karl  1.1         "=5) or \"P+S\" (7) may be specified. The value of 0, is "
422                   "defined as \"None\" to indicate that data redundancy is not "
423                   "active. An inactive redundancy should only be instantiated "
424                   "if data striping or concatenation are active. These are "
425                   "indicated by the IsStriped or IsConcatentated boolean "
426                   "properties of this RedundancyGroup."), 
427                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"}, 
428                   Values {"None", "Other", "Unknown", "Copy", "XOR", "P+Q", 
429                       "S", "P+S"}, 
430                   MappingStrings {"MIF.DMTF|Redundancy Group|001.2"} ]
431               uint16 TypeOfAlgorithm;
432           
433               [Description (
434                   "StorageRedundancy provides additional information on the "
435                   "state of the RedundancyGroup, beyond the RedundancyStatus "
436                   "property. Information like \"Reconfig In Progress\" (value"
437                   "=1) or \"Redundancy Disabled\" can be specified using "
438                   "this property."), 
439                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"}, 
440                   Values {"No Additional Status", "Reconfig In Progress", 
441                       "Data Lost", "Not Currently Configured", 
442 karl  1.1             "Protected Rebuild", "Redundancy Disabled", 
443                       "Unprotected Rebuild", "Recalculating", "Verifying"} ]
444               uint16 StorageRedundancy;
445               
446               [Description (
447                   "True indicates that the data is striped across the various "
448                   "StorageExtents in the Group.") ]
449               boolean IsStriped;
450               
451               [Description (
452                   "True indicates that the data is concatenated across the "
453                   "various StorageExtents in the Group.") ]
454               boolean IsConcatenated;
455           };
456           
457           
458           // ===================================================================
459           // ExtraCapacityGroup
460           // ===================================================================
461           [Version ("2.6.0"), Description (
462               "A class derived from RedundancyGroup indicating that the "
463 karl  1.1     "aggregated elements have more capacity or capability than is "
464               "needed.  An example of this type of redundancy is the "
465               "installation of N+1 power supplies or fans in a system.") ] 
466           class CIM_ExtraCapacityGroup : CIM_RedundancyGroup {
467           
468               [Description (
469                   "MinNumberNeeded indicates the smallest number of elements "
470                   "that must be operational in order to have redundancy.  "
471                   "For example, in an N+1 redundancy relationship, "
472                   "the MinNumberNeeded property should be set equal to N.") ]
473               uint32 MinNumberNeeded;
474            
475               [Description (
476                   "Boolean indicating whether load balancing is supported by "
477                   "the ExtraCapacityGroup.") ]
478               boolean LoadBalancedGroup; 
479           };
480           
481           
482           // ===================================================================
483           // ExtentRedundancyComponent
484 karl  1.1 // ===================================================================
485           [Association, Aggregation, Version ("2.6.0"), Description (
486               "Describes the StorageExtents participating in a Storage"
487               "RedundancyGroup.") ]
488           class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent {
489           
490               [Override ("GroupComponent"), Aggregate, 
491                   Description ("The StorageRedundancyGroup.") ]
492               CIM_StorageRedundancyGroup REF GroupComponent;
493           
494               [Override ("PartComponent"), Description (
495                   "The StorageExtent participating in the RedundancyGroup.") ]
496               CIM_StorageExtent REF PartComponent;
497           };
498           
499           
500           // ===================================================================
501           // end of file
502           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2