1 tony 1.1 // ===================================================================
2 // Title: Core Redundancy 2.8
3 // Filename: Core28_Redundancy.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
7 // ===================================================================
8 // Copyright 1999-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 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.8 Final
53 // CR1210 - Removal of experimental Qualifiers for core.
54 // CR1223 - SysDev Omnibus CR - Minor MOF corrections.
55 //
56 // Change Log for v2.8 Preliminary
57 // CR1019 - CIM Versioning for 2.8 Preliminary
58 // CR1071 - Add RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
59 // and ExtraCapacitySet.
60 //
61 // Change Log for v2.7.1
62 // - Remove aggregate qualifier from the PartComponent of
63 // RedundancyComponent.
64 tony 1.1 //
65 // Change Log for v2.7 Final
66 // CR940 - Fix Value/ValueMap mismatch in StorageRedundancySet.
67 // TypeOfAlgorithm
68 // CR968 - Keep RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
69 // and ExtraCapacitySet experimental for 2.8
70 //
71 // Change Log for v2.7
72 // CR722 - Update description for StorageRedundancyGroup
73 // CR752 - Add RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
74 // and ExtraCapacitySet
75 // - Update the description for RedundancyGroup
76 // ==================================================================
77
78 #pragma locale ("en_US")
79
80
81
82 // ===================================================================
83 // RedundancyGroup
84 // ===================================================================
85 tony 1.1 [Version ( "2.8.0" ), Description (
86 "A class derived from LogicalElement that is a special "
87 "collection of ManagedSystemElements. This collection indicates "
88 "that the aggregated components together provide redundancy. "
89 "All elements aggregated in a RedundancyGroup should be "
90 "instantiations of the same object class.")]
91 class CIM_RedundancyGroup : CIM_LogicalElement {
92
93 [Key, Description (
94 "CreationClassName indicates the name of the class or the "
95 "subclass used in the creation of an instance. When used "
96 "with the other key properties of this class, this property "
97 "allows all instances of this class and its subclasses to be "
98 "uniquely identified."),
99 MaxLen ( 256 )]
100 string CreationClassName;
101
102 [Key, Override ( "Name" ), Description (
103 "The RedundancyGroup Name serves as the key for the Group's "
104 "instance in an enterprise environment."),
105 MaxLen ( 256 )]
106 tony 1.1 string Name;
107
108 [Description (
109 "RedundancyStatus provides information on the state of the "
110 "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
111 "all of the configured redundancy is still available; "
112 "\"Degraded Redundancy\" (3) means that some failures have "
113 "been experienced but some reduced amount of redundancy is "
114 "still available; \"Redundancy Lost\" (4) means that a "
115 "sufficient number of failures have been experienced such "
116 "that no redundancy is available and the next failure "
117 "experienced will cause overall failure. Also, the values, "
118 "\"Other\" (1) and \"Unknown\" (0), are defined."),
119 ValueMap { "0", "1", "2", "3", "4" },
120 Values { "Unknown", "Other", "Fully Redundant",
121 "Degraded Redundancy", "Redundancy Lost" }]
122 uint16 RedundancyStatus;
123 };
124
125
126 // ===================================================================
127 tony 1.1 // RedundancyComponent
128 // ===================================================================
129 [Association, Aggregation, Version ( "2.7.1" ), Description (
130 "A RedundancyGroup aggregates Managed System Elements and "
131 "indicates that these elements, taken together, provide "
132 "redundancy. All elements aggregated in a RedundancyGroup "
133 "should be instantiations of the same object class.")]
134 class CIM_RedundancyComponent : CIM_Component {
135
136 [Aggregate, Override ( "GroupComponent" ), Description (
137 "The RedundancyComponent association indicates that 'this "
138 "set of fans' or 'these physical extents' participate in a "
139 "single RedundancyGroup.")]
140 CIM_RedundancyGroup REF GroupComponent;
141
142 [Override ( "PartComponent" ), Description (
143 "The component of the redundancy group.")]
144 CIM_ManagedSystemElement REF PartComponent;
145 };
146
147
148 tony 1.1 // ===================================================================
149 // SpareGroup
150 // ===================================================================
151 [Version ( "2.6.0" ), Description (
152 "A class derived from RedundancyGroup indicating that one or "
153 "more of the aggregated elements can be spared. (The actual "
154 "Spares are defined using the ActsAsSpare association.) An "
155 "example is the use of redundant NICs in a ComputerSystem - "
156 "where one NIC is primary and the other is Spare. The 'primary' "
157 "NIC would be a member of the SpareGroup (associated using the "
158 "RedundancyComponent class) and the 'other' NIC would be "
159 "associated using the ActsAsSpare relationship.")]
160 class CIM_SpareGroup : CIM_RedundancyGroup {
161
162 [Description (
163 "This method is forces a failover from one ManagedSystem "
164 "Element to another. There are two parameters to the "
165 "Failover method, FailoverFrom and FailoverTo. The "
166 "FailoverFrom parameter is a reference to the primary "
167 "ManagedSystemElement that will become inactive after the "
168 "method. This Element should be associated with the "
169 tony 1.1 "SpareGroup through the RedundancyComponent relationship. "
170 "The FailoverTo parameter is a reference to the "
171 "ManagedSystemElement that will take over for the primary. "
172 "This Element should be associated with the SpareGroup "
173 "through the ActsAsSpare association. Once the failover has "
174 "occurred, the SpareGroup and the Redundancy Component and "
175 "ActsAsSpare associations will be updated with current "
176 "status. For example, the ActsAsSpare association that "
177 "contained the FailoverTo Element will be deleted and a new "
178 "RedundancyComponent association instantiated in its place. "
179 "The method should return 0 if successful, 1 if the request "
180 "is not supported, and some other value if any other error "
181 "occurred. In a subclass, the set of possible return codes "
182 "could be specified, using a ValueMap qualifier on the "
183 "method. The strings to which the ValueMap contents are "
184 "'translated' may also be specified in the subclass as a "
185 "Values array qualifier.")]
186 uint32 Failover(
187 [IN, Description (
188 "The primary ManagedSystemElement that will become "
189 "inactive after the method.")]
190 tony 1.1 CIM_ManagedSystemElement REF FailoverFrom,
191 [IN, Description (
192 "The ManagedSystemElement that will take over from the "
193 "primary MSE.")]
194 CIM_ManagedSystemElement REF FailoverTo);
195 };
196
197
198 // ===================================================================
199 // ActsAsSpare
200 // ===================================================================
201 [Association, Version ( "2.6.0" ), Description (
202 "The ActsAsSpare association indicates which elements can spare "
203 "or replace the other aggregated elements. The fact that a "
204 "spare can operate in \"hot standby\" mode is specified on an "
205 "element by element basis.")]
206 class CIM_ActsAsSpare {
207
208 [Key, Description (
209 "The SpareGroup.")]
210 CIM_SpareGroup REF Group;
211 tony 1.1
212 [Key, Description (
213 "A ManagedSystemElement acting as a spare and participating "
214 "in the SpareGroup.")]
215 CIM_ManagedSystemElement REF Spare;
216
217 [Description (
218 "HotStandby is a boolean indicating that the spare is "
219 "operating as a hot standby.")]
220 boolean HotStandby;
221 };
222
223
224 // ===================================================================
225 // StorageRedundancyGroup
226 // ===================================================================
227 [Version ( "2.7.0" ), Description (
228 "A class derived from RedundancyGroup containing mass "
229 "storage-related redundancy information. StorageRedundancy "
230 "Groups are used to protect user data. They act on one or more "
231 "underlying StorageExtents, associated via "
232 tony 1.1 "ExtentRedundancyComponent and produce one or more protected "
233 "StorageExtents that are associated to the underlying "
234 "StorageExtents via ProtectedExtentBasedOn or "
235 "CompositeExtentBasedOn. StorageRedundancyGroups may overlap. "
236 "However, the underlying StorageExtents within the overlap "
237 "should not contain any check data.")]
238 class CIM_StorageRedundancyGroup : CIM_RedundancyGroup {
239
240 [Description (
241 "The TypeOfAlgorithm specifies the algorithm used for data "
242 "redundancy and reconstruction. For example, \"P+Q\" (value "
243 "=5) or \"P+S\" (7) may be specified. The value of 0, is "
244 "defined as \"None\" to indicate that data redundancy is not "
245 "active. An inactive redundancy should only be instantiated "
246 "if data striping or concatenation are active. These are "
247 "indicated by the IsStriped or IsConcatentated boolean "
248 "properties of this RedundancyGroup."),
249 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" },
250 Values { "None", "Other", "Unknown", "Copy", "XOR", "P+Q", "S",
251 "P+S" },
252 MappingStrings { "MIF.DMTF|Redundancy Group|001.2" }]
253 tony 1.1 uint16 TypeOfAlgorithm;
254
255 [Description (
256 "StorageRedundancy provides additional information on the "
257 "state of the RedundancyGroup, beyond the RedundancyStatus "
258 "property. Information like \"Reconfig In Progress\" (value "
259 "=1) or \"Redundancy Disabled\" can be specified using this "
260 "property."),
261 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
262 Values { "No Additional Status", "Reconfig In Progress",
263 "Data Lost", "Not Currently Configured", "Protected Rebuild",
264 "Redundancy Disabled", "Unprotected Rebuild",
265 "Recalculating", "Verifying" }]
266 uint16 StorageRedundancy;
267
268 [Description (
269 "True indicates that the data is striped across the various "
270 "StorageExtents in the Group.")]
271 boolean IsStriped;
272
273 [Description (
274 tony 1.1 "True indicates that the data is concatenated across the "
275 "various StorageExtents in the Group.")]
276 boolean IsConcatenated;
277 };
278
279
280 // ===================================================================
281 // ExtraCapacityGroup
282 // ===================================================================
283 [Version ( "2.6.0" ), Description (
284 "A class derived from RedundancyGroup indicating that the "
285 "aggregated elements have more capacity or capability than is "
286 "needed. An example of this type of redundancy is the "
287 "installation of N+1 power supplies or fans in a system.")]
288 class CIM_ExtraCapacityGroup : CIM_RedundancyGroup {
289
290 [Description (
291 "MinNumberNeeded indicates the smallest number of elements "
292 "that must be operational in order to have redundancy. For "
293 "example, in an N+1 redundancy relationship, the "
294 "MinNumberNeeded property should be set equal to N.")]
295 tony 1.1 uint32 MinNumberNeeded;
296
297 [Description (
298 "Boolean indicating whether load balancing is supported by "
299 "the ExtraCapacityGroup.")]
300 boolean LoadBalancedGroup;
301 };
302
303
304 // ===================================================================
305 // ExtentRedundancyComponent
306 // ===================================================================
307 [Association, Aggregation, Version ( "2.6.0" ), Description (
308 "Describes the StorageExtents participating in a Storage "
309 "RedundancyGroup.")]
310 class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent {
311
312 [Aggregate, Override ( "GroupComponent" ), Description (
313 "The StorageRedundancyGroup.")]
314 CIM_StorageRedundancyGroup REF GroupComponent;
315
316 tony 1.1 [Override ( "PartComponent" ), Description (
317 "The StorageExtent participating in the RedundancyGroup.")]
318 CIM_StorageExtent REF PartComponent;
319 };
320
321
322 // ===================================================================
323 // end of file
324 // ===================================================================
|