1 a.dunfey 1.1 // ===================================================================
2 // Title: Core_Redundancy
3 // $State: Exp $
4 // $Date: 2004/11/29 18:31:42 $
5 // $RCSfile: Core_Redundancy.mof,v $
6 // $Revision: 1.13.2.3 $
7 // ===================================================================
8 //#pragma inLine ("Includes/copyright.inc")
9 // Copyright 1998-2005 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 a.dunfey 1.1 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 a.dunfey 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
44 //#pragma inLine
45 // ===================================================================
46 // Description: The Core Model defines basic management concepts.
47 // This file defines the concepts and classes to support
48 // Redundancy.
49 //
50 // The object classes below are listed in an order that
51 // avoids forward references. Required objects, defined
52 // by other working groups, are omitted.
53 // ==================================================================
54 // Change Log for v2.8 Final
55 // CR1210 - Removal of experimental Qualifiers for core.
56 // CR1223 - SysDev Omnibus CR - Minor MOF corrections.
57 //
58 // Change Log for v2.8 Preliminary
59 // CR1019 - CIM Versioning for 2.8 Preliminary
60 // CR1071 - Add RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
61 // and ExtraCapacitySet.
62 //
63 // Change Log for v2.7.1
64 a.dunfey 1.1 // - Remove aggregate qualifier from the PartComponent of
65 // RedundancyComponent.
66 //
67 // Change Log for v2.7 Final
68 // CR940 - Fix Value/ValueMap mismatch in StorageRedundancySet.
69 // TypeOfAlgorithm
70 // CR968 - Keep RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
71 // and ExtraCapacitySet experimental for 2.8
72 //
73 // Change Log for v2.7
74 // CR722 - Update description for StorageRedundancyGroup
75 // CR752 - Add RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
76 // and ExtraCapacitySet
77 // - Update the description for RedundancyGroup
78 // ==================================================================
79
80 #pragma locale ("en_US")
81
82
83
84 // ===================================================================
85 a.dunfey 1.1 // RedundancyGroup
86 // ===================================================================
87 [Version ( "2.8.0" ), Description (
88 "A class derived from LogicalElement that is a special "
89 "collection of ManagedSystemElements. This collection indicates "
90 "that the aggregated components together provide redundancy. "
91 "All elements aggregated in a RedundancyGroup should be "
92 "instantiations of the same object class.")]
93 class CIM_RedundancyGroup : CIM_LogicalElement {
94
95 [Key, Description (
96 "CreationClassName indicates the name of the class or the "
97 "subclass used in the creation of an instance. When used "
98 "with the other key properties of this class, this property "
99 "allows all instances of this class and its subclasses to be "
100 "uniquely identified."),
101 MaxLen ( 256 )]
102 string CreationClassName;
103
104 [Key, Override ( "Name" ), Description (
105 "The RedundancyGroup Name serves as the key for the Group's "
106 a.dunfey 1.1 "instance in an enterprise environment."),
107 MaxLen ( 256 )]
108 string Name;
109
110 [Description (
111 "RedundancyStatus provides information on the state of the "
112 "RedundancyGroup. \"Fully Redundant\" (value=2) means that "
113 "all of the configured redundancy is still available; "
114 "\"Degraded Redundancy\" (3) means that some failures have "
115 "been experienced but some reduced amount of redundancy is "
116 "still available; \"Redundancy Lost\" (4) means that a "
117 "sufficient number of failures have been experienced such "
118 "that no redundancy is available and the next failure "
119 "experienced will cause overall failure. Also, the values, "
120 "\"Other\" (1) and \"Unknown\" (0), are defined."),
121 ValueMap { "0", "1", "2", "3", "4" },
122 Values { "Unknown", "Other", "Fully Redundant",
123 "Degraded Redundancy", "Redundancy Lost" }]
124 uint16 RedundancyStatus;
125 };
126
127 a.dunfey 1.1
128 // ===================================================================
129 // RedundancyComponent
130 // ===================================================================
131 [Association, Aggregation, Version ( "2.7.1" ), Description (
132 "A RedundancyGroup aggregates Managed System Elements and "
133 "indicates that these elements, taken together, provide "
134 "redundancy. All elements aggregated in a RedundancyGroup "
135 "should be instantiations of the same object class.")]
136 class CIM_RedundancyComponent : CIM_Component {
137
138 [Aggregate, Override ( "GroupComponent" ), Description (
139 "The RedundancyComponent association indicates that 'this "
140 "set of fans' or 'these physical extents' participate in a "
141 "single RedundancyGroup.")]
142 CIM_RedundancyGroup REF GroupComponent;
143
144 [Override ( "PartComponent" ), Description (
145 "The component of the redundancy group.")]
146 CIM_ManagedSystemElement REF PartComponent;
147 };
148 a.dunfey 1.1
149
150 // ===================================================================
151 // SpareGroup
152 // ===================================================================
153 [Version ( "2.6.0" ), Description (
154 "A class derived from RedundancyGroup indicating that one or "
155 "more of the aggregated elements can be spared. (The actual "
156 "Spares are defined using the ActsAsSpare association.) An "
157 "example is the use of redundant NICs in a ComputerSystem - "
158 "where one NIC is primary and the other is Spare. The 'primary' "
159 "NIC would be a member of the SpareGroup (associated using the "
160 "RedundancyComponent class) and the 'other' NIC would be "
161 "associated using the ActsAsSpare relationship.")]
162 class CIM_SpareGroup : CIM_RedundancyGroup {
163
164 [Description (
165 "This method is forces a failover from one ManagedSystem "
166 "Element to another. There are two parameters to the "
167 "Failover method, FailoverFrom and FailoverTo. The "
168 "FailoverFrom parameter is a reference to the primary "
169 a.dunfey 1.1 "ManagedSystemElement that will become inactive after the "
170 "method. This Element should be associated with the "
171 "SpareGroup through the RedundancyComponent relationship. "
172 "The FailoverTo parameter is a reference to the "
173 "ManagedSystemElement that will take over for the primary. "
174 "This Element should be associated with the SpareGroup "
175 "through the ActsAsSpare association. Once the failover has "
176 "occurred, the SpareGroup and the Redundancy Component and "
177 "ActsAsSpare associations will be updated with current "
178 "status. For example, the ActsAsSpare association that "
179 "contained the FailoverTo Element will be deleted and a new "
180 "RedundancyComponent association instantiated in its place. "
181 "The method should return 0 if successful, 1 if the request "
182 "is not supported, and some other value if any other error "
183 "occurred. In a subclass, the set of possible return codes "
184 "could be specified, using a ValueMap qualifier on the "
185 "method. The strings to which the ValueMap contents are "
186 "'translated' may also be specified in the subclass as a "
187 "Values array qualifier.")]
188 uint32 Failover(
189 [IN, Description (
190 a.dunfey 1.1 "The primary ManagedSystemElement that will become "
191 "inactive after the method.")]
192 CIM_ManagedSystemElement REF FailoverFrom,
193 [IN, Description (
194 "The ManagedSystemElement that will take over from the "
195 "primary MSE.")]
196 CIM_ManagedSystemElement REF FailoverTo);
197 };
198
199
200 // ===================================================================
201 // ActsAsSpare
202 // ===================================================================
203 [Association, Version ( "2.6.0" ), Description (
204 "The ActsAsSpare association indicates which elements can spare "
205 "or replace the other aggregated elements. The fact that a "
206 "spare can operate in \"hot standby\" mode is specified on an "
207 "element by element basis.")]
208 class CIM_ActsAsSpare {
209
210 [Key, Description (
211 a.dunfey 1.1 "The SpareGroup.")]
212 CIM_SpareGroup REF Group;
213
214 [Key, Description (
215 "A ManagedSystemElement acting as a spare and participating "
216 "in the SpareGroup.")]
217 CIM_ManagedSystemElement REF Spare;
218
219 [Description (
220 "HotStandby is a boolean indicating that the spare is "
221 "operating as a hot standby.")]
222 boolean HotStandby;
223 };
224
225
226 // ===================================================================
227 // StorageRedundancyGroup
228 // ===================================================================
229 [Version ( "2.7.0" ), Description (
230 "A class derived from RedundancyGroup containing mass "
231 "storage-related redundancy information. StorageRedundancy "
232 a.dunfey 1.1 "Groups are used to protect user data. They act on one or more "
233 "underlying StorageExtents, associated via "
234 "ExtentRedundancyComponent and produce one or more protected "
235 "StorageExtents that are associated to the underlying "
236 "StorageExtents via ProtectedExtentBasedOn or "
237 "CompositeExtentBasedOn. StorageRedundancyGroups may overlap. "
238 "However, the underlying StorageExtents within the overlap "
239 "should not contain any check data.")]
240 class CIM_StorageRedundancyGroup : CIM_RedundancyGroup {
241
242 [Description (
243 "The TypeOfAlgorithm specifies the algorithm used for data "
244 "redundancy and reconstruction. For example, \"P+Q\" (value "
245 "=5) or \"P+S\" (7) may be specified. The value of 0, is "
246 "defined as \"None\" to indicate that data redundancy is not "
247 "active. An inactive redundancy should only be instantiated "
248 "if data striping or concatenation are active. These are "
249 "indicated by the IsStriped or IsConcatentated boolean "
250 "properties of this RedundancyGroup."),
251 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" },
252 Values { "None", "Other", "Unknown", "Copy", "XOR", "P+Q", "S",
253 a.dunfey 1.1 "P+S" },
254 MappingStrings { "MIF.DMTF|Redundancy Group|001.2" }]
255 uint16 TypeOfAlgorithm;
256
257 [Description (
258 "StorageRedundancy provides additional information on the "
259 "state of the RedundancyGroup, beyond the RedundancyStatus "
260 "property. Information like \"Reconfig In Progress\" (value "
261 "=1) or \"Redundancy Disabled\" can be specified using this "
262 "property."),
263 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
264 Values { "No Additional Status", "Reconfig In Progress",
265 "Data Lost", "Not Currently Configured", "Protected Rebuild",
266 "Redundancy Disabled", "Unprotected Rebuild",
267 "Recalculating", "Verifying" }]
268 uint16 StorageRedundancy;
269
270 [Description (
271 "True indicates that the data is striped across the various "
272 "StorageExtents in the Group.")]
273 boolean IsStriped;
274 a.dunfey 1.1
275 [Description (
276 "True indicates that the data is concatenated across the "
277 "various StorageExtents in the Group.")]
278 boolean IsConcatenated;
279 };
280
281
282 // ===================================================================
283 // ExtraCapacityGroup
284 // ===================================================================
285 [Version ( "2.6.0" ), Description (
286 "A class derived from RedundancyGroup indicating that the "
287 "aggregated elements have more capacity or capability than is "
288 "needed. An example of this type of redundancy is the "
289 "installation of N+1 power supplies or fans in a system.")]
290 class CIM_ExtraCapacityGroup : CIM_RedundancyGroup {
291
292 [Description (
293 "MinNumberNeeded indicates the smallest number of elements "
294 "that must be operational in order to have redundancy. For "
295 a.dunfey 1.1 "example, in an N+1 redundancy relationship, the "
296 "MinNumberNeeded property should be set equal to N.")]
297 uint32 MinNumberNeeded;
298
299 [Description (
300 "Boolean indicating whether load balancing is supported by "
301 "the ExtraCapacityGroup.")]
302 boolean LoadBalancedGroup;
303 };
304
305
306 // ===================================================================
307 // ExtentRedundancyComponent
308 // ===================================================================
309 [Association, Aggregation, Version ( "2.6.0" ), Description (
310 "Describes the StorageExtents participating in a Storage "
311 "RedundancyGroup.")]
312 class CIM_ExtentRedundancyComponent : CIM_RedundancyComponent {
313
314 [Aggregate, Override ( "GroupComponent" ), Description (
315 "The StorageRedundancyGroup.")]
316 a.dunfey 1.1 CIM_StorageRedundancyGroup REF GroupComponent;
317
318 [Override ( "PartComponent" ), Description (
319 "The StorageExtent participating in the RedundancyGroup.")]
320 CIM_StorageExtent REF PartComponent;
321 };
322
323
324 // ===================================================================
325 // end of file
326 // ===================================================================
|