1 karl 1.1.2.2 // Copyright (c) 2005 DMTF. All rights reserved.
2 [Version ( "2.11.0" ),
3 UMLPackagePath ( "CIM::Device::StorageServices" ),
4 Description (
5 "StorageSetting is roughly equivalent to a Service Level "
6 "Agreement (SLA) It defines the characteristics, qualities of "
7 "service and goals when used in a CreateOrModifyElement "
8 "FromStoragePool or CreateOrModifyStoragePool method in the "
9 "StorageConfigurationService. It specifies a series of "
10 "properties with Maximum and Minimum values that define the "
11 "(inclusive) bounds that the object should maintain. Note that "
12 "the setting is associated to a StorageVolume or LogicalDisk, "
13 "using ElementSetting. \n"
14 "The use of these properties differs depending on whether the "
15 "StorageSetting instance is being used as a goal for a "
16 "configuration operation or being used as a Service Level "
17 "Agreement for a created Volume. In addition the properties "
18 "fall into two categories: The QOS "
19 "properties(PackageRedundancy, Data Redundancy, & "
20 "NoSinglePointOfFailure) and the Detailed RAID "
21 "properties(ExtentStripeLength, ParityLayout, and "
22 karl 1.1.2.2 "UserDataStripeDepth). In a Setting used as a goal, the QOS "
23 "properties are required as a set; The Detailed RAID "
24 "properties(if supported as indicated by the scoping "
25 "StorageCapabilities instance) may be used optionally in any "
26 "combination. The implementation MUST supply it\'s own best "
27 "practice in the case where one or more supported RAID "
28 "properties are not supplied. In this situation the use of "
29 "StorageSettingWithHints can be useful to provide direction to "
30 "the implementation. \n"
31 "In a Setting used as a service agreement for a Volume, the QOS "
32 "properties reflect the Service Level Agreement, with goal, "
33 "min, & max. The actual current service level is exposed by "
34 "corresponding values in StorageExtent. \n"
35 "The Detailed RAID properties, by contrast, reflect specific "
36 "values that reflect the RAID construction of the Volume. Only "
37 "the primary values are meaningful; Min and Max are set to "
38 "match. \n"
39 "Certain StorageSetting instances may be classed as \"Fixed\", "
40 "by using the \"ChangeableType\" property, indicating the "
41 "setting is preset. Such settings are used when the possible "
42 "setting variations are low enough to be instantiated in their "
43 karl 1.1.2.2 "entirety. The StorageCapabilities \"CreateSetting\" method MAY "
44 "NOT be used to return settings that are not changeable. \n"
45 "Other StorageSetting instances are created using the "
46 "\"CreateSetting\" method. If the capabilities specifies "
47 "ranges, then the setting can be used by a client to narrow the "
48 "range to particular values within the range. In other words, "
49 "the capabilities MAY be broad, but the related setting MUST be "
50 "as capable or less capable, that is more narrowly defined, "
51 "before it is used to create or modify resources. \n"
52 "These created StorageSetting instances MUST have their "
53 "\"ChangeableType\" property = 1, \"Changeable - Transient\". \n"
54 "GeneratedSettings MAY not remain after the restart or reset of "
55 "the implementation. They may be deleted by implementation at "
56 "any time. A reasonable minimal time to retain the generated "
57 "transient settings is five minutes, although there is no "
58 "minimal retention time." )]
59 class CIM_StorageSetting : CIM_SettingData {
60
61 [Write, Description (
62 "Indicates the desired value for No Single Point of "
63 "Failure. Possible values are false = single point of "
64 karl 1.1.2.2 "failure, and true = no single point of failure." )]
65 boolean NoSinglePointOfFailure;
66
67 [Write, Description (
68 "DataRedundancyMax describes the maximum number of "
69 "complete copies of data to be maintained. Examples would "
70 "be RAID 5 where 1 copy is maintained and RAID 1 where 2 "
71 "or more copies are maintained. Possible values are 1 to "
72 "n. The desired redundancy is specified using "
73 "DataRedundancyGoal, while the minimum is defined by "
74 "DataRedundancyMin." ),
75 MinValue ( 1 ),
76 ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMin",
77 "CIM_StorageSetting.DataRedundancyGoal" }]
78 uint16 DataRedundancyMax;
79
80 [Write, Description (
81 "DataRedundancyMin describes the minimum number of "
82 "complete copies of data to be maintained. Examples would "
83 "be RAID 5 where 1 copy is maintained and RAID 1 where 2 "
84 "or more copies are maintained. Possible values are 1 to "
85 karl 1.1.2.2 "n. The desired redundancy is specified using "
86 "DataRedundancyGoal, while the maximum is defined by "
87 "DataRedundancyMax." ),
88 MinValue ( 1 ),
89 ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMax",
90 "CIM_StorageSetting.DataRedundancyGoal" }]
91 uint16 DataRedundancyMin;
92
93 [Write, Description (
94 "DataRedundancyGoal describes the desired number of "
95 "complete copies of data to be maintained. Examples would "
96 "be RAID 5 where 1 copy is maintained and RAID 1 where 2 "
97 "or more copies are maintained. Possible values are 1 to "
98 "n. The bounds (max and min) for redundancy are defined "
99 "using the properties, DataRedundancyMax and "
100 "DataRedundancyMin." ),
101 MinValue ( 1 ),
102 ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMax",
103 "CIM_StorageSetting.DataRedundancyMin" }]
104 uint16 DataRedundancyGoal;
105
106 karl 1.1.2.2 [Write, Description (
107 "PackageRedundancyMax describes the maximum number of "
108 "redundant packages to be used. For example, in the "
109 "storage domain, package redundancy describes how many "
110 "disk spindles can fail without data loss including, at "
111 "most, one spare. An example would be RAID5 with a spare "
112 "disk which would have a PackageRedundancy of 2. Possible "
113 "values are 0 to n. The desired redundancy is specified "
114 "using PackageRedundancyGoal, while the minimum is "
115 "defined by PackageRedundancyMin." ),
116 ModelCorrespondence {
117 "CIM_StorageSetting.PackageRedundancyMin",
118 "CIM_StorageSetting.PackageRedundancyGoal" }]
119 uint16 PackageRedundancyMax;
120
121 [Write, Description (
122 "PackageRedundancyMin describes the minimum number of "
123 "redundant packages to be used. For example, in the "
124 "storage domain, package redundancy describes how many "
125 "disk spindles can fail without data loss including, at "
126 "most, one spare. An example would be RAID5 with a spare "
127 karl 1.1.2.2 "disk which would have a PackageRedundancy of 2. Possible "
128 "values are 0 to n. The desired redundancy is specified "
129 "using PackageRedundancyGoal, while the maximum is "
130 "defined by PackageRedundancyMax." ),
131 ModelCorrespondence {
132 "CIM_StorageSetting.PackageRedundancyMax",
133 "CIM_StorageSetting.PackageRedundancyGoal" }]
134 uint16 PackageRedundancyMin;
135
136 [Write, Description (
137 "PackageRedundancyGoal describes the desired number of "
138 "redundant packages to be used. For example, in the "
139 "storage domain, package redundancy describes how many "
140 "disk spindles can fail without data loss including, at "
141 "most, one spare. An example would be RAID5 with a spare "
142 "disk which would have a PackageRedundancy of 2. Possible "
143 "values are 0 to n. The bounds (max and min) for "
144 "redundancy are defined using the properties, "
145 "PackageRedundancyMax and PackageRedundancyMin." ),
146 ModelCorrespondence {
147 "CIM_StorageSetting.PackageRedundancyMax",
148 karl 1.1.2.2 "CIM_StorageSetting.PackageRedundancyMin" }]
149 uint16 PackageRedundancyGoal;
150
151 [Write, Description (
152 "DeltaReservationMax is a number between 1 (1%) and a 100 "
153 "(100%) which specifies the maximum amount of space that "
154 "should be reserved in a replica for caching changes. For "
155 "a complete copy this would be 100%. The desired "
156 "reservation is specified using DeltaReservationGoal, "
157 "while the minimum is defined by DeltaReservationMin." ),
158 Units ( "Percentage" ),
159 MinValue ( 1 ),
160 MaxValue ( 100 ),
161 ModelCorrespondence {
162 "CIM_StorageSetting.DeltaReservationMin",
163 "CIM_StorageSetting.DeltaReservationGoal" }]
164 uint8 DeltaReservationMax;
165
166 [Write, Description (
167 "DeltaReservationMin is a number between 1 (1%) and a 100 "
168 "(100%) which specifies the minimum amount of space that "
169 karl 1.1.2.2 "should be reserved in a replica for caching changes. For "
170 "a complete copy this would be 100%. The desired "
171 "reservation is specified using DeltaReservationGoal, "
172 "while the maximum is defined by DeltaReservationMax." ),
173 Units ( "Percentage" ),
174 MinValue ( 1 ),
175 MaxValue ( 100 ),
176 ModelCorrespondence {
177 "CIM_StorageSetting.DeltaReservationMax",
178 "CIM_StorageSetting.DeltaReservationGoal" }]
179 uint8 DeltaReservationMin;
180
181 [Write, Description (
182 "DeltaReservationGoal is a number between 1 (1%) and a "
183 "100 (100%) which specifies the desired amount of space "
184 "that should be reserved in a replica for caching "
185 "changes. For a complete copy this would be 100%. The "
186 "bounds (max and min) for the reservation are defined "
187 "using the properties, DeltaReservationMax and "
188 "DeltaReservationMin." ),
189 Units ( "Percentage" ),
190 karl 1.1.2.2 MinValue ( 1 ),
191 MaxValue ( 100 ),
192 ModelCorrespondence {
193 "CIM_StorageSetting.DeltaReservationMin",
194 "CIM_StorageSetting.DeltaReservationMax" }]
195 uint8 DeltaReservationGoal;
196
197 [Description (
198 "Enumeration indicating the type of setting. \"Fixed - "
199 "Not Changeable\" settings are primordial. These setting "
200 "are defined at the implementor of the class. \"Changeable "
201 "- Transient\" is the type of setting produced by the "
202 "\"CreateSetting\" method. A client can subsequently "
203 "request that the implementation persist the generated "
204 "and potentially modified setting indefinately. Only a "
205 "\"Changeable - Transient\" setting SHALL be converted to "
206 "a \"Changeable = Persistent\" setting; the setting SHALL "
207 "NOT be changed back." ),
208 ValueMap { "0", "1", "2" },
209 Values { "Fixed - Not Changeable", "Changeable - Transient",
210 "Changeable - Persistent" }]
211 karl 1.1.2.2 uint16 ChangeableType;
212
213 [Write, Description (
214 "ExtentStripeLength describes the number of underlying "
215 "StorageExtents across which data is striped in the "
216 "common striping-based storage organizations. This is "
217 "also known as the number of \'members\' or \'columns\'. "
218 "When used in a goal setting instance, ExtentStripeLength "
219 "is the optimal desired value. The bounds (max and min) "
220 "for Stripe Length are defined using the properties "
221 "ExtentStripeLengthMax and ExtentStripeLengthMin. "
222 "ExtentStripeLength MUST be set to NULL if the scoping "
223 "StorageCapablities indicates that it is not supported in "
224 "this context. ExtentStripeLength can be used in "
225 "conjunction with CreateOrModifyElementFromELements to "
226 "explicitly configure storage. An example would be RAID "
227 "0+1 with mirroring two stripe sets, each set being three "
228 "wide. In this case CreateOrModifyElementFromElements "
229 "would be passed a goal setting with DataRedundancy = 2 "
230 "and ExtentStripeLength = 3. The size of the InElements "
231 "array would be 6 and would contain the StorageExtents to "
232 karl 1.1.2.2 "be used to construct the StorageElement as a RAID 0+1. "
233 "ExtentStripeLengthMin and ExtentStripeLengthMax are "
234 "meaningless and wouldbe set to NULL. If the property is "
235 "supported, and is part of StorageSettingWithHints it MAY "
236 "be set to NULL. If used it will constrain the effects of "
237 "Hint selections. When used in a Setting instance "
238 "associated to a Volume, this property indicates the "
239 "specific value that the Volume was created with, and "
240 "ExtentStripeLengthMin and ExtentStripeLengthMax will be "
241 "set to the same specific value." ),
242 MinValue ( 1 ),
243 ModelCorrespondence {
244 "CIM_StorageSetting.ExtentStripeLengthMax",
245 "CIM_StorageSetting.ExtentStripeLengthMin" }]
246 uint16 ExtentStripeLength;
247
248 [Write, Description (
249 "ExtentStripeLength describes the number of underlying "
250 "StorageExtents across which data is striped in the "
251 "common striping-based storage organizations. This is "
252 "also known as the number of \'members\' or \'columns\'. "
253 karl 1.1.2.2 "When used in a goal setting instance, "
254 "ExtentStripeLengthMin is the minimum acceptable value. "
255 "The desired Stripe Length is specified using "
256 "ExtentStripeLength, while the maximum is defined by "
257 "ExtentStripeLengthMax. ExtentStripeLengthMin MUST be set "
258 "to NULL if the scoping StorageCapablities indicates that "
259 "it is not supported in this context. If the property is "
260 "supported, and is part of StorageSettingWithHints it MAY "
261 "be set to NULL. If used it will constrain the effects of "
262 "Hint selections. When used in a Setting instance "
263 "associated to a Volume, this property is set to the "
264 "specific value of ExtentStripeLength." ),
265 MinValue ( 1 ),
266 ModelCorrespondence {
267 "CIM_StorageSetting.ExtentStripeLengthMax",
268 "CIM_StorageSetting.ExtentStripeLength" }]
269 uint16 ExtentStripeLengthMin;
270
271 [Write, Description (
272 "ExtentStripeLength describes the number of underlying "
273 "StorageExtents across which data is striped in the "
274 karl 1.1.2.2 "common striping-based storage organizations. This is "
275 "also known as the number of \'members\' or \'columns\'. "
276 "When used in a goal setting instance, "
277 "ExtentStripeLengthMax is the maximum acceptable value. "
278 "The desired Stripe Length is specified using "
279 "ExtentStripeLength, while the minimum is defined by "
280 "ExtentStripeLengthMin. ExtentStripeLengthMax MUST be set "
281 "to NULL if the scoping StorageCapablities indicates that "
282 "it is not supported in this context. If the property is "
283 "supported, and is part of StorageSettingWithHints it MAY "
284 "be set to NULL. If used it will constrain the effects of "
285 "Hint selections. When used in a Setting instance "
286 "associated to a Volume, this property is set to the "
287 "specific value of ExtentStripeLength." ),
288 MinValue ( 1 ),
289 ModelCorrespondence {
290 "CIM_StorageSetting.ExtentStripeLengthMin",
291 "CIM_StorageSetting.ExtentStripeLength" }]
292 uint16 ExtentStripeLengthMax;
293
294 [Write, Description (
295 karl 1.1.2.2 "ParityLayout specifies whether a parity-based storage "
296 "organization is using rotated or non-rotated parity. "
297 "When used in a goal setting instance, ParityLayout is "
298 "the desired value. It MUST be set to NULL if the scoping "
299 "StorageCapablities indicates that it is not supported in "
300 "this context. If the property is supported, and is part "
301 "of StorageSettingWithHints it MAY be set to NULL. If "
302 "used it will constrain the effects of Hint selections. "
303 "When used in a Setting instance associated to a Volume, "
304 "this property indicates the specific value that the "
305 "Volume was created with." ),
306 ValueMap { "1", "2" },
307 Values { "Non-rotated Parity", "Rotated Parity" }]
308 uint16 ParityLayout;
309
310 [Write, Description (
311 "UserDataStripeDepth describes the number of bytes "
312 "forming a strip in common striping-based storage "
313 "organizations. The strip is defined as the size of the "
314 "portion of a stripe that lies on one extent. Thus, "
315 "ExtentStripeLength * UserDataStripeDepth will yield the "
316 karl 1.1.2.2 "size of one stripe of user data. When used in a goal "
317 "setting instance, UserDataStripeDepth is the optimal "
318 "desired value. The bounds (max and min) for Stripe Depth "
319 "are defined using the properties UserDataStripeDepthMax "
320 "and UserDataStripeDepthMin. UserDataStripeDepth MUST be "
321 "set to NULL if the scoping StorageCapablities indicates "
322 "that it is not supported in this context. If the "
323 "property is supported, and is part of "
324 "StorageSettingWithHints it MAY be set to NULL. If used "
325 "it will constrain the effects of Hint selections. When "
326 "used in a Setting instance associated to a Volume, this "
327 "property indicates the specific value that the Volume "
328 "was created with, and UserDataStripeDepthMin and "
329 "UserDataStripeDepthMax will be set to the same specific "
330 "value." ),
331 Units ( "Bytes" ),
332 MinValue ( 1 ),
333 ModelCorrespondence {
334 "CIM_StorageSetting.UserDataStripeDepthMax",
335 "CIM_StorageSetting.UserDataStripeDepthMin" }]
336 uint64 UserDataStripeDepth;
337 karl 1.1.2.2
338 [Write, Description (
339 "UserDataStripeDepth describes the number of bytes "
340 "forming a strip in common striping-based storage "
341 "organizations. The strip is defined as the size of the "
342 "portion of a stripe that lies on one extent. Thus, "
343 "ExtentStripeLength * UserDataStripeDepth will yield the "
344 "size of one stripe of user data. When used in a goal "
345 "setting instance, UserDataStripeDepthMin is the minimum "
346 "acceptable value. The desired Stripe Depth is specified "
347 "using UserDataStripeDepth, while the maximum is defined "
348 "by UserDataStripeDepthMax. UserDataStripeDepthMin MUST "
349 "be set to NULL if the scoping StorageCapablities "
350 "indicates that it is not supported in this context. If "
351 "the property is supported, and is part of "
352 "StorageSettingWithHints it MAY be set to NULL. If used "
353 "it will constrain the effects of Hint selections. When "
354 "used in a Setting instance associated to a Volume, this "
355 "property is set to the specific value of "
356 "UserDataStripeDepth." ),
357 Units ( "Bytes" ),
358 karl 1.1.2.2 MinValue ( 1 ),
359 ModelCorrespondence {
360 "CIM_StorageSetting.UserDataStripeDepthMax",
361 "CIM_StorageSetting.UserDataStripeDepth" }]
362 uint64 UserDataStripeDepthMin;
363
364 [Write, Description (
365 "UserDataStripeDepth describes the number of bytes "
366 "forming a strip in common striping-based storage "
367 "organizations. The strip is defined as the size of the "
368 "portion of a stripe that lies on one extent. Thus, "
369 "ExtentStripeLength * UserDataStripeDepth will yield the "
370 "size of one stripe of user data. When used in a goal "
371 "setting instance, UserDataStripeDepthMax is the maximum "
372 "acceptable value. The desired Stripe Depth is specified "
373 "using UserDataStripeDepthGoal, while the minimum is "
374 "defined by UserDataStripeDepthMin. "
375 "UserDataStripeDepthMax MUST be set to NULL if the "
376 "scoping StorageCapablities indicates that it is not "
377 "supported in this context. If the property is supported, "
378 "and is part of StorageSettingwWithHints it MAY be set to "
379 karl 1.1.2.2 "NULL. If used it will constrain the effects of Hint "
380 "selections. When used in a Setting instance associated "
381 "to a Volume, this property is set to the specific value "
382 "of UserDataStripeDepth." ),
383 Units ( "Bytes" ),
384 MinValue ( 1 ),
385 ModelCorrespondence {
386 "CIM_StorageSetting.UserDataStripeDepthMin",
387 "CIM_StorageSetting.UserDataStripeDepth" }]
388 uint64 UserDataStripeDepthMax;
389
390
391 };
|