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