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 "A subclass of Capabilities that defines the Capabilities of a "
6 "StorageService or StoragePool. For example, an instance of "
7 "StorageCapabilities could be associated with either a "
8 "StorageConfigurationService or StoragePool by using "
9 "ElementCapabilities." )]
10 class CIM_StorageCapabilities : CIM_Capabilities {
11
12 [Description (
13 "Enumeration indicating the type of element to which this "
14 "StorageCapabilities applies." ),
15 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" },
16 Values { "Unknown", "Reserved", "Any Type", "StorageVolume",
17 "StorageExtent", "StoragePool",
18 "StorageConfigurationService", "LogicalDisk" }]
19 uint16 ElementType;
20
21 [Description (
22 karl 1.1.2.2 "Indicates whether or not the associated element supports "
23 "no single point of failure. Values are: FALSE = does not "
24 "support no single point of failure, and TRUE = supports "
25 "no single point of failure." ),
26 ModelCorrespondence {
27 "CIM_StorageCapabilities.NoSinglePointOfFailureDefault" }]
28 boolean NoSinglePointOfFailure;
29
30 [Description (
31 "Indicates the default value for the "
32 "NoSinglePointOfFailure property." ),
33 ModelCorrespondence {
34 "CIM_StorageCapabilities.NoSinglePointOfFailure" }]
35 boolean NoSinglePointOfFailureDefault;
36
37 [Description (
38 "DataRedundancyMax describes the maximum number of "
39 "complete copies of data that can be maintained. Examples "
40 "would be RAID 5 (where 1 copy is maintained) and RAID 1 "
41 "(where 2 or more copies are maintained). Possible values "
42 "are 1 to n. The default redundancy is specified using "
43 karl 1.1.2.2 "DataRedundancyDefault, while the minimum is defined by "
44 "DataRedundancyMin." ),
45 MinValue ( 1 ),
46 ModelCorrespondence {
47 "CIM_StorageCapabilities.DataRedundancyMin",
48 "CIM_StorageCapabilities.DataRedundancyDefault" }]
49 uint16 DataRedundancyMax;
50
51 [Description (
52 "DataRedundancyMin describes the minimum number of "
53 "complete copies of data that can be maintained. Examples "
54 "would be RAID 5 where 1 copy is maintained and RAID 1 "
55 "where 2 or more copies are maintained). Possible values "
56 "are 1 to n. The default redundancy is specified using "
57 "DataRedundancyDefault, while the maximum is defined by "
58 "DataRedundancyMax." ),
59 MinValue ( 1 ),
60 ModelCorrespondence {
61 "CIM_StorageCapabilities.DataRedundancyMax",
62 "CIM_StorageCapabilities.DataRedundancyDefault" }]
63 uint16 DataRedundancyMin;
64 karl 1.1.2.2
65 [Description (
66 "DataRedundancyDefault describes the default number of "
67 "complete copies of data that can be maintained. Examples "
68 "would be RAID 5 where 1 copy is maintained and RAID 1 "
69 "where 2 or more copies are maintained. Possible values "
70 "are 1 to n. The bounds for the redundancy (max and min) "
71 "are defined by DataRedundancyMax and DataRedundancyMin." ),
72 MinValue ( 1 ),
73 ModelCorrespondence {
74 "CIM_StorageCapabilities.DataRedundancyMax",
75 "CIM_StorageCapabilities.DataRedundancyMin" }]
76 uint16 DataRedundancyDefault;
77
78 [Description (
79 "PackageRedundancyMax describes the maximum number of "
80 "redundant packages that can be used. For example, in the "
81 "storage domain, package redundancy describes how many "
82 "disk spindles can fail without data loss including, at "
83 "most, one spare. An example would be RAID5 with a spare "
84 "disk which would have a PackageRedundancy of 2. Possible "
85 karl 1.1.2.2 "values are 0 to n. The default redundancy is specified "
86 "using PackageRedundancyDefault, while the maximum is "
87 "defined by PackageRedundancyMax." ),
88 ModelCorrespondence {
89 "CIM_StorageCapabilities.PackageRedundancyMin",
90 "CIM_StorageCapabilities.PackageRedundancyDefault" }]
91 uint16 PackageRedundancyMax;
92
93 [Description (
94 "PackageRedundancyMin describes the minimum number of "
95 "redundant packages that can be used. For example, in the "
96 "storage domain, package redundancy describes how many "
97 "disk spindles can fail without data loss including, at "
98 "most, one spare. An example would be RAID5 with a spare "
99 "disk which would have a PackageRedundancy of 2. Possible "
100 "values are 0 to n. The default redundancy is specified "
101 "using PackageRedundancyDefault, while the minimum is "
102 "defined by PackageRedundancyMin." ),
103 ModelCorrespondence {
104 "CIM_StorageCapabilities.PackageRedundancyMax",
105 "CIM_StorageCapabilities.PackageRedundancyDefault" }]
106 karl 1.1.2.2 uint16 PackageRedundancyMin;
107
108 [Description (
109 "PackageRedundancyDefault describes the default number of "
110 "redundant packages that will be used. For example, in "
111 "the storage domain, package redundancy describes how "
112 "many disk spindles can fail without data loss including, "
113 "at most, one spare. An example would be RAID5 with a "
114 "spare disk which would have a PackageRedundancy of 2. "
115 "Possible values are 0 to n. The bounds for redundancy "
116 "are specified using the properties, PackageRedundancyMax "
117 "and PackageRedundancyMin." ),
118 ModelCorrespondence {
119 "CIM_StorageCapabilities.PackageRedundancyMin",
120 "CIM_StorageCapabilities.PackageRedundancyMax" }]
121 uint16 PackageRedundancyDefault;
122
123 [Description (
124 "DeltaReservatioMax is a number between 1 (1%) and a 100 "
125 "(100%) that specifies the maximum amount of space "
126 "reserved in a replica for caching changes. For a "
127 karl 1.1.2.2 "complete copy this would be 100%, but it can be lower in "
128 "some implementations. This parameter sets the upper "
129 "limit, while DeltaReservationMin sets the lower limit." ),
130 Units ( "Percentage" ),
131 MinValue ( 0 ),
132 MaxValue ( 100 ),
133 ModelCorrespondence {
134 "CIM_StorageCapabilities.DeltaReservationMin",
135 "CIM_StorageCapabilities.DeltaReservationDefault" }]
136 uint16 DeltaReservationMax;
137
138 [Description (
139 "DeltaReservationMin is a number between 1 (1%) and a 100 "
140 "(100%) that specifies the minimum amount of space that "
141 "should be reserved in a replica for caching changes. For "
142 "a complete copy this would be 100%, but it can be lower "
143 "in some implementations. This parameter sets the lower "
144 "limit, while DeltaReservationMax sets the upper limit." ),
145 Units ( "Percentage" ),
146 MinValue ( 0 ),
147 MaxValue ( 100 ),
148 karl 1.1.2.2 ModelCorrespondence {
149 "CIM_StorageCapabilities.DeltaReservationMax",
150 "CIM_StorageCapabilities.DeltaReservationDefault" }]
151 uint16 DeltaReservationMin;
152
153 [Description (
154 "Delta reservation is a number between 1 (1%) and a 100 "
155 "(100%) that specifies how much space should be reserved "
156 "by default in a replica for caching changes. For a "
157 "complete copy this would be 100%, but it can be lower in "
158 "some implementations. This parameter sets the default "
159 "value, while DeletaReservationMax and DeltReservationMin "
160 "set the upper and lower bounds." ),
161 Units ( "Percentage" ),
162 MinValue ( 0 ),
163 MaxValue ( 100 ),
164 ModelCorrespondence {
165 "CIM_StorageCapabilities.DeltaReservationMax",
166 "CIM_StorageCapabilities.DeltaReservationMin" }]
167 uint16 DeltaReservationDefault;
168
169 karl 1.1.2.2 [Description (
170 "Extent Stripe Length describes the number of underlying "
171 "StorageExtents across which data is striped in the "
172 "common striping-based storage organizations. This is "
173 "also known as the number of \'members\' or \'columns\'. \n"
174 "A NULL value for ExtentStripeLengthDefault indicates "
175 "that the system does not support configuration of "
176 "storage by specifying Stripe Length. \n"
177 "If Extent Stripe Length is supported, and this "
178 "Capabilities instance is associated with a pool that was "
179 "created with a range of QOS then "
180 "ExtentStripeLengthDefault represents the default value. "
181 "Other available values(such as min, max, and discrete "
182 "values) can be determined by using the "
183 "\'GetSupportedStripeLengths\' and "
184 "\'GetSupportedStripeLengthRange\' methods. \n"
185 "If Extent Stripe Length is supported and the pool was "
186 "created with a single specific QOS, representing a Raid "
187 "group, set, or rank, then this property represents the "
188 "current/fixed value for the pool, and Extent Stripe "
189 "Length is not supported in subsequent creation of "
190 karl 1.1.2.2 "elements from this pool. Consequently, the "
191 "\'GetSupportedStripeLength\' methods cannot be used, and "
192 "in a StorageSetting instance used as a goal when "
193 "creating or modifying a child element of the pool, "
194 "ExtentStripeLengthGoal, ExtentStripeLengthMin, and "
195 "ExtentStripeLengthMax MUST be set to NULL." ),
196 MinValue ( 1 )]
197 uint16 ExtentStripeLengthDefault;
198
199 [Description (
200 "ParityLayout specifies whether a parity-based storage "
201 "organization is using rotated or non-rotated parity. If "
202 "this capabilities instance is associated with a pool "
203 "that was created with a range of QOS then "
204 "ParityLayoutDefault represents the default value. Other "
205 "available values can be determined by using the "
206 "\'GetSupportedParityLayouts\' method. If the pool was "
207 "created with a single specific QOS, representing a Raid "
208 "group, set, or rank, then this property represents the "
209 "current/fixed value for the pool, and ParityLayout is "
210 "not supported in subsequent creation of elements from "
211 karl 1.1.2.2 "this pool. Consequently, the \'GetSupportedParityLayouts\' "
212 "method cannot be used, and the ParityLayoutGoal property "
213 "in StorageSetting instances used in child element "
214 "operations on this pool MUST be set to NULL. A NULL "
215 "value for ParityLayoutDefault indicates that the system "
216 "does not support configuration of storage by specifying "
217 "ParityLayout." ),
218 ValueMap { "2", "3" },
219 Values { "Non-Rotated Parity", "Rotated Parity" }]
220 uint16 ParityLayoutDefault;
221
222 [Description (
223 "User Data Stripe Depth describes the number of bytes "
224 "forming a strip in common striping-based storage "
225 "organizations. The strip is defined as the size of the "
226 "portion of a stripe that lies on one extent. Thus, "
227 "ExtentStripeLength * UserDataStripeDepth will yield the "
228 "size of one stripe of user data. A NULL value for "
229 "UserDataStripeDepthDefault indicates that the system "
230 "does not support configuration of storage by specifying "
231 "Stripe Depth. \n"
232 karl 1.1.2.2 "If User Data Stripe Depth is supported, and this "
233 "Capabilities instance is associated with a pool that was "
234 "created with a range of QOS then "
235 "UserDataStripeDepthDefault represents the default value. "
236 "Other available values(such as min, max, and discrete "
237 "values) can be determined by using the "
238 "\'GetSupportedStripeDepths\' and "
239 "\'GetSupportedStripeDepthRange\' methods. \n"
240 "If User Data Stripe Depth is supported and the pool was "
241 "created with a single specific QOS, representing a Raid "
242 "group, set, or rank, then this property represents the "
243 "current/fixed value for the pool, and User Data Stripe "
244 "Depth is not supported in subsequent creation of "
245 "elements from this pool. Consequently, the "
246 "\'GetSupportedStripeDepth\' methods cannot be used, and "
247 "in a StorageSetting instance used as a goal when "
248 "creating or modifying a child element of the pool, "
249 "UserDataStripeDepthGoal, UserDataStripeDepthMin, and "
250 "UserDataStripeDepthMax MUST be set to NULL." ),
251 Units ( "Bytes" ),
252 MinValue ( 1 )]
253 karl 1.1.2.2 uint64 UserDataStripeDepthDefault;
254
255
256 [Description (
257 "Method to create and populate a StorageSetting instance "
258 "from a StorageCapability instance. This removes the need "
259 "to populate default settings and other settings in the "
260 "context of each StorageCapabilities (which could be "
261 "numerous). If the underlying instrumentation supports "
262 "the StorageSettingWithHints subclass, then an instance "
263 "of that class will be created instead." ),
264 ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" },
265 Values { "Success", "Not Supported", "Unspecified Error",
266 "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
267 "Vendor Specific" }]
268 uint32 CreateSetting(
269 [IN, Description (
270 "If \'Default\' is passed for the CreateDefault "
271 "parameter, the Max, Goal, and Min setting "
272 "attributes are set to the Default values of the "
273 "parent StorageCapabilities when the instance is "
274 karl 1.1.2.2 "created. \n"
275 "If set to \'Goal\' the new StorageSetting "
276 "attributes are set to the related attributes of "
277 "the parent StorageCapabilities, e.g. Min to Min, "
278 "Goal to Default, and Max to Max. \n"
279 "\n"
280 "This method maybe deprecated in lieu of intrinsics "
281 "once limitations in the CIM Operations are "
282 "addressed." ),
283 ValueMap { "2", "3" },
284 Values { "Default", "Goal" }]
285 uint16 SettingType,
286 [IN ( false ), OUT, Description (
287 "Reference to the created StorageSetting instance." )]
288 CIM_StorageSetting REF NewSetting);
289
290 [Description (
291 "For systems that support Parity-based storage "
292 "organizations for volume or pool creation, this method "
293 "can be used to the supported parity layouts." ),
294 ValueMap { "0", "1", "2" },
295 karl 1.1.2.2 Values { "Method completed OK", "Method not supported",
296 "Choice not aavailable for this capability" }]
297 uint32 GetSupportedParityLayouts(
298 [IN ( false ), OUT, Description (
299 "List of supported Parity for a Volume/Pool "
300 "creation or modification." ),
301 ValueMap { "2", "3" },
302 Values { "Non-Rotated Parity", "Rotated Parity" },
303 ArrayType ( "Indexed" )]
304 uint16 ParityLayout[]);
305
306 };
|