(file) Return to Core_StorageExtent.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIMPrelim29

  1 karl  1.1 // ===================================================================
  2           // Title:  Core Storage Extents
  3           // $State: Preliminary $
  4           // $Date: 2004/07/08 15:08:22 $
  5           // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Core_StorageExtent.mof,v $
  6           // $Revision: 1.7 $
  7           // ===================================================================
  8           //#pragma inLine ("Includes/copyright.inc")
  9           // Copyright 1998-2004 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 karl  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 karl  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 model
 48           //              a type of LogicalDevice, StorageExtents.
 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.9 Preliminary
 55           // CR1353 - Promote some properties from StorageVolume to
 56           //          Storage Extent
 57           // 
 58           // Change Log for v2.8 Final
 59           // CR1210 - Removal of experimental Qualifiers for core.
 60           // 
 61           // Change Log for v2.8 Preliminary
 62           // CR978  - Promote NoSinglePointOfFailure, DataRedundancy, and
 63           //          SpindleRedundancy from StorageVolue to StorageExtent.
 64 karl  1.1 // CR1019 - CIM Versioning for 2.8 Preliminary
 65           // CR1044 - Add StorageExtent.Primordial
 66           // 
 67           // Change Log for v2.7 Final
 68           // CR967 - Add values "DMTF reserved" and "Vendor reserved" to
 69           //         StorageExtent.ExtentStatus.
 70           // CR968 - Remove the Experimental qualifier
 71           // 
 72           // Change Log for v2.7
 73           // CR722 - Add StorageExtent.ExtentStatus
 74           // CR775 - StorageExtent.NoSinglePointOfFailure, StorageExtent.
 75           //         DataRedundancy, StorageExtent.SpindleRedundancy
 76           // CR777 - Add StorageExtent.DeltaReservation
 77           // CR862 - Define StorageExtent.ExtentStatus as an array
 78           // CR884 - Move RAID centric properties from StorageExtent to
 79           //         StorageVolume
 80           // ==================================================================
 81           
 82           #pragma locale ("en_US")
 83           
 84           
 85 karl  1.1 // ===================================================================
 86           // StorageExtent
 87           // ===================================================================
 88              [Version ( "2.8.1000" ), Description (
 89                  "StorageExtent describes the capabilities and management of the "
 90                  "various media that exist to store data and allow data "
 91                  "retrieval. This superclass could be used to represent the "
 92                  "various components of RAID (Hardware or Software) or as a raw "
 93                  "logical extent on top of physical media.")]
 94           class CIM_StorageExtent : CIM_LogicalDevice {
 95           
 96                 [Description (
 97                     "Type of data organization used."), 
 98                  ValueMap { "0", "1", "2", "3", "4" }, 
 99                  Values { "Other", "Unknown", "Fixed Block", "Variable Block",
100                     "Count Key Data" }]
101              uint16 DataOrganization;
102           
103                 [Description (
104                     "A free form string describing the media and/or its use."), 
105                  MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr" }]
106 karl  1.1    string Purpose;
107           
108                 [Description (
109                     "Access describes whether the media is readable (value=1), "
110                     "writeable (value=2), or both (value=3). \"Unknown\" (0) and "
111                     "\"Write Once\" (4) can also be defined."), 
112                  ValueMap { "0", "1", "2", "3", "4" }, 
113                  Values { "Unknown", "Readable", "Writeable",
114                     "Read/Write Supported", "Write Once" }]
115              uint16 Access;
116           
117                 [Description (
118                     "ErrorMethodology is a free-form string describing the type "
119                     "of error detection and correction supported by this "
120                     "StorageExtent.")]
121              string ErrorMethodology;
122           
123                 [Description (
124                     "Size in bytes of the blocks which form this StorageExtent. "
125                     "If variable block size, then the maximum block size in "
126                     "bytes should be specified. If the block size is unknown or "
127 karl  1.1           "if a block concept is not valid (for example, for "
128                     "AggregateExtents, Memory or LogicalDisks), enter a 1."), 
129                  Units ( "Bytes" ), 
130                  MappingStrings { "MIF.DMTF|Host Storage|001.4",
131                     "MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits",
132                     "MIF.DMTF|Storage Devices|001.5" }]
133              uint64 BlockSize;
134           
135                 [Description (
136                     "Total number of logically contiguous blocks, of size Block "
137                     "Size, which form this Extent. The total size of the Extent "
138                     "can be calculated by multiplying BlockSize by "
139                     "NumberOfBlocks. If the BlockSize is 1, this property is the "
140                     "total size of the Extent."), 
141                  MappingStrings { "MIF.DMTF|Host Storage|001.5",
142                     "MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize" }]
143              uint64 NumberOfBlocks;
144           
145                 [Description (
146                     "The maximum number of blocks, of size BlockSize, which are "
147                     "available for consumption when layering StorageExtents "
148 karl  1.1           "using the BasedOn association. This property only has "
149                     "meaning when this StorageExtent is an Antecedent reference "
150                     "in a BasedOn relationship. For example, a StorageExtent "
151                     "could be composed of 120 blocks. However, the Extent itself "
152                     "may use 20 blocks for redundancy data. If another "
153                     "StorageExtent is BasedOn this Extent, only 100 blocks would "
154                     "be available to it. This information ('100 blocks is "
155                     "available for consumption') is indicated in the "
156                     "ConsumableBlocks property.")]
157              uint64 ConsumableBlocks;
158           
159                 [Description (
160                     "True indicates that the underlying StorageExtent(s) "
161                     "participate in a StorageRedundancyGroup.")]
162              boolean IsBasedOnUnderlyingRedundancy;
163           
164                 [Description (
165                     "Boolean set to TRUE if the Storage is sequentially accessed "
166                     "by a MediaAccessDevice. A TapePartition is an example of a "
167                     "sequentially accessed StorageExtent. StorageVolumes, Disk "
168                     "Partitions and LogicalDisks represent randomly accessed "
169 karl  1.1           "Extents.")]
170              boolean SequentialAccess;
171           
172                 [Description (
173                     "StorageExtents have additional status information beyond "
174                     "that captured in the OperationalStatus and other "
175                     "properties, inherited from ManagedSystemElement. This "
176                     "additional information (for example, \"Protection "
177                     "Disabled\", value=9) is captured in the ExtentStatus "
178                     "property. \n"
179                     "'In-Band Access Granted' says that access to data on an "
180                     "extent is granted to some consumer and is only valid when "
181                     "'Exported' is also set. It is set as a side effect of "
182                     "PrivilegeManagementService.ChangeAccess or equivalent "
183                     "interfaces. \n"
184                     "'Imported' indicates that the extent is used in the current "
185                     "system, but known to be managed by some other system. For "
186                     "example, a server imports volumes from a disk array. \n"
187                     "'Exported' indicates the extent is meant to be used by some "
188                     "comsumer. A disk array's logical units are exported. \n"
189                     "Intermediate composite extents may be neither imported nor "
190 karl  1.1           "exported."), 
191                  ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
192                     "10", "11", "12", "13", "14", "15", "16", "17", "18..32767",
193                     "32768..65535" }, 
194                  Values { "Other", "Unknown", "None/Not Applicable", "Broken",
195                     "Data Lost", "Dynamic Reconfig", "Exposed",
196                     "Fractionally Exposed", "Partially Exposed",
197                     "Protection Disabled", "Readying", "Rebuild", "Recalculate",
198                     "Spare in Use", "Verify In Progress",
199                     "In-Band Access Granted", "Imported", "Exported",
200                     "DMTF Reserved", "Vendor Reserved" }]
201              uint16 ExtentStatus[];
202           
203                 [Description (
204                     "Indicates whether or not there exists no single point of "
205                     "failure."), 
206                  ModelCorrespondence { 
207                     "CIM_StorageSetting.NoSinglePointOfFailure" }]
208              boolean NoSinglePointOfFailure;
209           
210                 [Description (
211 karl  1.1           "Number of complete copies of data currently maintained."), 
212                  ModelCorrespondence { "CIM_StorageSetting.DataRedundancyGoal",
213                     "CIM_StorageSetting.DataRedundancyMax",
214                     "CIM_StorageSetting.DataRedundancyMin" }]
215              uint16 DataRedundancy;
216           
217                 [Description (
218                     "How many physical packages can currently fail without data "
219                     "loss. For example, in the storage domain, this might be "
220                     "disk spindles."), 
221                  ModelCorrespondence { 
222                     "CIM_StorageSetting.PackageRedundancyGoal",
223                     "CIM_StorageSetting.PackageRedundancyMax",
224                     "CIM_StorageSetting.PackageRedundancyMin" }]
225              uint16 PackageRedundancy;
226           
227                 [Description (
228                     "Current value for Delta reservation. This is a percentage "
229                     "that specifies the amount of space that should be reserved "
230                     "in a replica for caching changes."), 
231                  Units ( "Percentage" ), MinValue ( 1 ), MaxValue ( 100 ), 
232 karl  1.1        ModelCorrespondence { "CIM_StorageSetting.DeltaReservationGoal",
233                     "CIM_StorageSetting.DeltaReservationMax",
234                     "CIM_StorageSetting.DeltaReservationMin" }]
235              uint8 DeltaReservation;
236           
237                 [Description (
238                     "If true, \"Primordial\" indicates that the containing "
239                     "System does not have the ability to create or delete this "
240                     "operational element. This is important because "
241                     "StorageExtents are assembled into higher-level abstractions "
242                     "using the BasedOn association. Although the higher-level "
243                     "abstractions can be created and deleted, the most basic, "
244                     "(i.e. primordial), hardware-based storage entities cannot. "
245                     "They are physically realized as part of the System, or are "
246                     "actually managed by some other System and imported as if "
247                     "they were physically realized. In other words, a Primordial "
248                     "StorageExtent exists in, but is not created by its System "
249                     "and conversely a non-Primordial StorageExtent is created in "
250                     "the context of its System. For StorageVolumes, this "
251                     "property will generally be false. One use of this property "
252                     "is to enable algorithms that aggregate "
253 karl  1.1           "StorageExtent.ConsumableSpace across all, StorageExtents "
254                     "but that also want to distinquish the space that underlies "
255                     "Primordial StoragePools. Since implementations are not "
256                     "required to surface all Component StorageExtents of a "
257                     "StoragePool, this information is not accessible in any "
258                     "other way.")]
259              boolean Primordial=false;
260           
261                 [Override ( "Name" ), Description (
262                     "A unique identifier for the Extent."), 
263                  MappingStrings { "SPC.INCITS-T10| VPD 83, Association 0 | "
264                      "Identifier" }, 
265                  ModelCorrespondence { "CIM_StorageExtent.NameFormat",
266                     "CIM_StorageExtent.NameNamespace" }]
267              string Name;
268           
269                 [Description (
270                     "The list here applies to all StorageExtent subclasses. "
271                     "Please look at the Description in each subclass for "
272                     "guidelines on the approriate values for that subclass. Note "
273                     "that any of these formats could apply to a CompositeExtent. "
274 karl  1.1           "\n\n"
275                     "Note - this property originally touched on two concepts "
276                     "that are now separated into this property and "
277                     "NameNamespace. Values 2,3,4,5,6, and 8 are retained for "
278                     "backwards compatibility but are deprecated in lieu of the "
279                     "corresponding values in CIM_StorageExtent.NameNamespace. \n"
280                     "\n"
281                     "For example, the preferred source for SCSI virtual (RAID) "
282                     "disk names is from Inquiry VPD page 83 response, type 3 "
283                     "identifiers. These will have NameFormat set to 'NAA' and "
284                     "NameNamespace to 'VPD83Type3'. \n"
285                     "\n"
286                     "Format of the Name property. Values for extents "
287                     "representing SCSI volumes are (per SCSI SPC-3): \n"
288                     "2 = VPD Page 83, NAA IEEE Registered Extended (VPD83NAA6) \n"
289                     "(DEPRECATED) \n"
290                     "3 = VPD Page 83, NAA IEEE Registered (VPD83NAA5) \n"
291                     "(DEPRECATED) \n"
292                     "4 = VPD Page 83, (VPD83Type2) (DEPRECATED) \n"
293                     "5 = VPD Page 83, \n"
294                     "T10 Vendor Identification (VPD83Type1) (DEPRECATED) \n"
295 karl  1.1           "6 = VPD Page 83, Vendor Specific (VPD83Type0) (DEPRECATED) "
296                     "\n7 = Serial Number/Vendor/Model (SNVM) SNVM is 3 strings "
297                     "representing the vendor name, product name within the "
298                     "vendor namespace, and the serial number within the model "
299                     "namespace. Strings are delimited with a '+'. Spaces may be "
300                     "included and are significant. The serial number is the text "
301                     "representation of the serial number in hexadecimal upper "
302                     "case. This represents the vendor and model ID from SCSI "
303                     "Inquiry data; the vendor field MUST be 8 characters wide "
304                     "and the product field MUST be 16 characters wide. For "
305                     "example, \n"
306                     "'ACME____+SUPER DISK______+124437458' (_ is a space "
307                     "character) \n"
308                     "8 = Node WWN (for single LUN/controller) (NodeWWN) \n"
309                     "(DEPRECATED) \n"
310                     "9 = NAA as a generic format. See \n"
311                     "http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html. "
312                     "Formatted as 16 or 32 unseparated uppercase hex characters "
313                     "(2 per binary byte). For example '21000020372D3C73' \n"
314                     "10 = EUI as a generic format (EUI64) See \n"
315                     "http://standards.ieee.org/regauth/oui/tutorials/EUI64.html. "
316 karl  1.1           "\nFormatted as 16 unseparated uppercase hex characters (2 "
317                     "per binary byte) \n"
318                     "11 = T10 vendor identifier format as returned by SCSI "
319                     "Inquiry VPD page 83, identifier type 1. See T10 SPC-3 "
320                     "specification. This is the 8-byte ASCII vendor ID from the "
321                     "T10 registry followed by a vendor specific ASCII "
322                     "identifier; spaces are permitted. For non SCSI volumes, "
323                     "'SNVM' may be the most appropriate choice. 12 = OS Device "
324                     "Name (for LogicalDisks). See LogicalDisk Name description "
325                     "for details."), 
326                  ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
327                     "10","11", "12" }, 
328                  Values { "Unknown", "Other", "VPD83NAA6", "VPD83NAA5",
329                     "VPD83Type2", "VPD83Type1", "VPD83Type0", "SNVM", "NodeWWN",
330                     "NAA", "EUI64", "T10VID", "OS Device Name" }, 
331                  ModelCorrespondence { "CIM_StorageExtent.Name",
332                     "CIM_StorageExtent.NameNamespace",
333                     "CIM_StorageExtent.OtherNameFormat" }]
334              uint16 NameFormat;
335           
336                 [Description (
337 karl  1.1           "The preferred source SCSI for volume names is SCSI VPD Page "
338                     "83 responses. Page 83 returns a list of identifiers for "
339                     "various device elements. The metadata for each identifier "
340                     "includes an Association field, identifiers with association "
341                     "of 0 apply to volumes. Page 83 supports several namespaces "
342                     "specified in the Type field in the identifier metadata. See "
343                     "SCSI SPC-3 specification. \n"
344                     "2 = VPD Page 83, Type 3 NAA (NameFormat SHOULD be NAA) \n"
345                     "3 = VPD Page 83, Type 2 EUI64 (NameFormat EUI) \n"
346                     "4 = VPD Page 83, Type 1 T10 Vendor Identification \n"
347                     "(NameFormat T10) \n"
348                     "Less preferred volume namespaces from other interfaces: \n"
349                     "5 = VPD page 80, Serial number (NameFormat SHOULD be Other) "
350                     "\n6 = FC NodeWWN (NameFormat SHOULD be NAA or EUI) \n"
351                     "7 = Serial Number/Vendor/Model (NameFormat SHOULD be SNVM) "
352                     "\nThe preferred namespace for LogigicalDisk names is "
353                     "platform specific device namespace; see LogigicalDIsk "
354                     "Description. \n"
355                     "8 = OS Device Namespace."), 
356                  ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" }, 
357                  Values { "Unknown", "Other", "VPD83Type3", "VPD83Type2",
358 karl  1.1           "VPD83Type1", "VPD80", "NodeWWN", "SNVM",
359                     "OS Device Namespace" }, 
360                  MappingStrings { "SPC.INCITS-T10| VPD 83, Association 0 | "
361                      "Identifier" }, 
362                  ModelCorrespondence { "CIM_StorageExtent.Name",
363                     "CIM_StorageExtent.OtherNameNamespace",
364                     "CIM_StorageExtent.NameFormat" }]
365              uint16 NameNamespace;
366           
367                 [Description (
368                     "A string describing the namespace of the Name property when "
369                     "NameNamespace includes the value 1, \"Other\"."), 
370                  ModelCorrespondence { "CIM_StorageExtent.NameNamespace" }]
371              string OtherNameNamespace;
372           
373                 [Description (
374                     "A string describing the format of the Name property when "
375                     "NameFormat includes the value 1, \"Other\"."), 
376                  ModelCorrespondence { "CIM_StorageExtent.NameFormat" }]
377              string OtherNameFormat;
378           };
379 karl  1.1 
380           // ===================================================================
381           // BasedOn
382           // ===================================================================
383              [Association, Version ( "2.6.0" ), Description (
384                  "BasedOn is an association describing how StorageExtents can be "
385                  "assembled from lower level Extents. For example, "
386                  "ProtectedSpaceExtents are parts of PhysicalExtents, while "
387                  "VolumeSets are assembled from one or more Physical or "
388                  "ProtectedSpaceExtents. As another example, CacheMemory can be "
389                  "defined independently and realized in a PhysicalElement or can "
390                  "be 'based on' Volatile or NonVolatileStorageExtents.")]
391           class CIM_BasedOn : CIM_Dependency {
392           
393                 [Override ( "Antecedent" ), Description (
394                     "The lower level StorageExtent.")]
395              CIM_StorageExtent REF Antecedent;
396           
397                 [Override ( "Dependent" ), Description (
398                     "The higher level StorageExtent.")]
399              CIM_StorageExtent REF Dependent;
400 karl  1.1 
401                 [Description (
402                     "StartingAddress indicates where in lower level storage, the "
403                     "higher level Extent begins.")]
404              uint64 StartingAddress;
405           
406                 [Description (
407                     "EndingAddress indicates where in lower level storage, the "
408                     "higher level Extent ends. This property is useful when "
409                     "mapping non-contiguous Extents into a higher level "
410                     "grouping.")]
411              uint64 EndingAddress;
412           
413                 [Description (
414                     "If there is an order to the BasedOn associations that "
415                     "describe how a higher level StorageExtent is assembled, the "
416                     "OrderIndex property indicates this. When an order exists, "
417                     "the instances of BasedOn with the same Dependent value "
418                     "(i.e., the same higher level Extent) should place unique "
419                     "values in the OrderIndex property. The lowest value implies "
420                     "the first member of the collection of lower level Extents, "
421 karl  1.1           "and increasing values imply successive members of the "
422                     "collection. If there is no ordered relationship, a value of "
423                     "zero should be specified. An example of the use of this "
424                     "property is to define a RAID-0 striped array of 3 disks. "
425                     "The resultant RAID array is a StorageExtent that is "
426                     "dependent on (BasedOn) the StorageExtents that describe "
427                     "each of the 3 disks. The OrderIndex of each BasedOn "
428                     "association from the disk Extents to the RAID array could "
429                     "be specified as 1, 2 and 3 to indicate the order in which "
430                     "the disk Extents are used to access the RAID data.")]
431              uint16 OrderIndex;
432           };
433           
434           
435           // ===================================================================
436           // end of file
437           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2