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

  1 tony  1.1 // ===================================================================
  2           // Title:       Device Storage Extents 2.8
  3           // Filename:    Device28_StorgaeExtents.mof
  4           // Version:     2.8
  5           // Release:     Preliminary
  6           // Date:        08/22/2003
  7           // ===================================================================
  8           // Copyright 2000-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 tony  1.1 // 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 tony  1.1 // ===================================================================
 44           // Description: The Device Model extends the management concepts that
 45           //              are related to LogicalDevices. This file describes
 46           //              the modeling of storage hierarchies (extents,
 47           //              volumes, partitions, etc.).
 48           // 
 49           //              The object classes below are listed in an order that
 50           //              avoids forward references. Required objects, defined
 51           //              by other working groups, are omitted.
 52           // ==================================================================
 53           // Change Log for v2.8 Preliminary
 54           // CR891 - Add NameFormat to StorageVolume
 55           // 
 56           // Change Log for v2.7 Final
 57           // CR970 - Removal of the Experimental qualifier
 58           //       - Remove several properties from StorageVolume and make them
 59           //         Experimental in 2.8
 60           // 
 61           // Change Log for v2.7
 62           // CR722 - Add ProtectedExtentBasedOn, CompositeExtent, and
 63           //         CompositeExtentBasedOn
 64 tony  1.1 // CR882 - Deprecate Snapshot and SnapshotOfExtent. Therefore moved
 65           //         definitions to SccExtents.mof
 66           // CR884 - Move RAID centric properties from StorageExtent to
 67           //         StorageVolume
 68           // ==================================================================
 69           
 70           #pragma locale ("en_US")
 71           
 72           
 73           // ===================================================================
 74           // MediaPresent
 75           // ===================================================================
 76              [Association, Version ("2.6.0"), Description (
 77                  "Where a StorageExtent must be accessed through a MediaAccess "
 78                  "Device, this relationship is described by the MediaPresent "
 79                  "association."), 
 80               MappingStrings {"MIF.DMTF|Storage Devices|001.8"} ]
 81           class CIM_MediaPresent : CIM_Dependency {
 82           
 83                 [Override ("Antecedent"), Description (
 84                     "The MediaAccessDevice.") ]
 85 tony  1.1    CIM_MediaAccessDevice REF Antecedent;
 86           
 87                 [Override ("Dependent"), Description (
 88                     "The StorageExtent accessed using the MediaAccessDevice.") ]
 89              CIM_StorageExtent REF Dependent;
 90           
 91                 [Description (
 92                     "Boolean indicating that the accessed StorageExtent is fixed "
 93                     "in the MediaAccessDevice and can not be ejected.") ]
 94              boolean FixedMedia;
 95           };
 96           
 97           
 98           // ===================================================================
 99           // RealizesExtent
100           // ===================================================================
101              [Association, Version ("2.6.0"), Description (
102                  "StorageExtents can be realized by PhysicalComponents.  For "
103                  "example, disks or tapes are realized by PhysicalMedia.  Memory "
104                  "is realized by PhysicalMemory.  This relationship of Extents "
105                  "to PhysicalComponents is made explicit by the RealizesExtent "
106 tony  1.1        "association.  In addition, the StartingAddress of the "
107                  "StorageExtent on the Component is specified here.") ]
108           class CIM_RealizesExtent : CIM_Realizes {
109           
110                 [Override ("Antecedent"), Max (1), Description (
111                     "The PhysicalComponent on which the Extent is realized.") ]
112              CIM_PhysicalComponent REF Antecedent;
113           
114                 [Override ("Dependent"), Description (
115                     "The StorageExtent that is located on the Component.") ]
116              CIM_StorageExtent REF Dependent;
117           
118                 [Description (
119                     "The starting address on the PhysicalComponent where the "
120                     "StorageExtent begins.  Ending address of the StorageExtent "
121                     "is determined using the NumberOfBlocks and Block Size "
122                     "properties of the StorageExtent object.") ]
123              uint64 StartingAddress;
124           };
125           
126           
127 tony  1.1 // ===================================================================
128           // RealizedOnSide
129           // ===================================================================
130              [Association, Version ("2.6.0"), Description (
131                  "Since removable PhysicalMedia can be dual-sided, there is the "
132                  "possibility for StorageExtents to be realized on a single side "
133                  "of the Media.  This association is a specialization of the "
134                  "RealizesExtent relationship, adding a Side property to express "
135                  "the Media's orientation details.") ]
136           class CIM_RealizedOnSide : CIM_RealizesExtent {
137           
138                 [Override ("Antecedent"), Max (1), Description (
139                     "The PhysicalMedia on which the Extent is realized.") ]
140              CIM_PhysicalMedia REF Antecedent;
141           
142                 [Override ("Dependent"), Description (
143                     "The StorageExtent that is located on the Component.") ]
144              CIM_StorageExtent REF Dependent;
145           
146                 [Description (
147                     "An enumeration expressing on which 'Side' the Extent is "
148 tony  1.1           "realized.  Since sides can be named by various schemes (0/1 "
149                     "or A/B), both schemes are expressed in the Values array of "
150                     "this property."), 
151                  ValueMap {"0", "1", "2", "3", "4"}, 
152                  Values {"Unknown", "Side 0", "Side 1", "Side A", "Side B"} ]
153              uint16 Side;
154           };
155           
156           
157           // ===================================================================
158           // StorageVolume
159           // ===================================================================
160              [Version ("2.7.0"), Description (
161                  "A StorageVolume is an Extent that is presented to the "
162                  "Operating System (for example, by a hardware RAID cabinet), to "
163                  "a File System (for example, by a software volume manager) or "
164                  "to another entity.  StorageVolumes do NOT participate in "
165                  "StorageRedundancy Groups.  They are directly Realized in "
166                  "hardware or are the end result of assembling lower level "
167                  "Extents.") ]
168           class CIM_StorageVolume : CIM_StorageExtent {
169 tony  1.1 
170                 [Override ("Name"), Description (
171                     "A unique identifier for the Volume."), 
172                  MappingStrings {"ANSI|T10|SCSI SPC-3|8.6"}, 
173                  ModelCorrespondence { "CIM_StorageVolume.NameFormat"} ]
174              string Name;
175           
176                 [Experimental, Description (
177                     "Format of the Name property.  Values are (per SCSI SPC-3):\n"
178                     "2 = VPD Page 83, NAA IEEE Registered Extended (VPD83NAA6)\n"
179                     "3 = VPD Page 83, NAA IEEE Registered (VPD83NAA5)\n"
180                     "4 = VPD Page 83, EIU-64 (VPD83Type2)\n"
181                     "5 = VPD Page 83, T10 Vendor Identification (VPD83Type1)\n"
182                     "6 = VPD Page 83, Vendor Specific (VPD83Type0)\n"
183                     "7 = Serial Number/Vendor/Model (SNVM)\n"
184                     "8 = Node WWN (for single LUN/controller) (NodeWWN)\n"
185                     "For non SCSI volumes, 'SNVM' may be the most appropriate "
186                     "choice."), 
187                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"}, 
188                  Values {"Unknown", "Other", "VPD83NAA6", "VPD83NAA5",
189                     "VPD83Type2", "VPD83Type1", "VPD83Type0", "SNVM", "NodeWWN"}, 
190 tony  1.1        MappingStrings {"ANSI|T10|SCSI SPC-3|8.6"}, 
191                  ModelCorrespondence { "CIM_StorageVolume.Name",
192                     "CIM_StorageVolume.OtherNameFormat"} ]
193              uint16 NameFormat;
194           
195                 [Experimental, Description (
196                     "A string describing the format of the Name property when "
197                     "NameFormat includes the value 1, \"Other\"."), 
198                  ModelCorrespondence {"CIM_StorageVolume.NameFormat"} ]
199              string OtherNameFormat;
200           };
201           
202           
203           // ===================================================================
204           // MediaPartition
205           // ===================================================================
206              [Version ("2.6.0"), Description (
207                  "A MediaPartition is a presentation of a contiguous range of "
208                  "logical blocks and has identifying data written on/to it.  It "
209                  "may include a signature written by the OS or by an "
210                  "application.  This class is a common superclass for Disk and "
211 tony  1.1        "TapePartions.  Partitions are directly realized by Physical "
212                  "Media (indicated by the RealizesExtent association) or built "
213                  "on StorageVolumes (indicated by the BasedOn association).") ]
214           class CIM_MediaPartition : CIM_StorageExtent {
215           
216                 [Description (
217                     "Boolean indicating that the Partition is labeled as "
218                     "bootable.  (Note that this does not mean that an Operating "
219                     "System is actually loaded on the Partition.) With the "
220                     "advent of bootable Tape and other bootable media, this "
221                     "property is included in the higher level MediaPartition "
222                     "class, rather than in a subclass such as DiskPartition.") ]
223              boolean Bootable;
224           
225                 [Description (
226                     "Boolean indicating that the Partition is available and may "
227                     "be allocated for use.") ]
228              boolean Allocatable;
229           
230                 [Description (
231                     "An identifying string written to the Partition.  Additional "
232 tony  1.1           "information related to this 'Signature' may be found in the "
233                     "properties, SignatureState and SignatureAlgorithm."), 
234                  ModelCorrespondence {"CIM_MediaPartition.SignatureState",
235                     "CIM_MediaPartition.SignatureAlgorithm"} ]
236              string Signature;
237           
238                 [Description (
239                     "A free-form string describing the algorithm used to define "
240                     "the Partition Signature.  The value of this property is "
241                     "dependent on the Signature's State."), 
242                  ModelCorrespondence {"CIM_MediaPartition.Signature",
243                     "CIM_MediaPartition.SignatureState"} ]
244              string SignatureAlgorithm;
245           
246                 [Description (
247                     "An enumeration describing the state of the Partition's "
248                     "identifying Signature string.  Information such as "
249                     "\"Uninitialized\" (value=2), or \"Assigned by Owning "
250                     "Application\" (value=5) are possible entries."), 
251                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
252                  Values {"Unknown", "Unimplemented", "Uninitialized",
253 tony  1.1            "Calculated by Operating System",
254                      "Calculated by a Media Manager",
255                      "Assigned by Owning Application"}, 
256                  ModelCorrespondence {"CIM_MediaPartition.Signature",
257                     "CIM_MediaPartition.SignatureAlgorithm"} ]
258              string SignatureState;
259           
260                 [Description (
261                     "Boolean indicating that the Partition can be grown/extended "
262                     "without reformatting.") ]
263              boolean Extendable;
264           };
265           
266           
267           // ===================================================================
268           // DiskPartition
269           // ===================================================================
270              [Version ("2.6.0"), Description (
271                  "A DiskPartition is a presentation of a contiguous range of "
272                  "logical blocks that is identifiable by the Operating System "
273                  "via the Partition's type and subtype fields.  Disk Partitions "
274 tony  1.1        "should be directly realized by PhysicalMedia (indicated by the "
275                  "RealizesDiskPartition association) or built on StorageVolumes "
276                  "(indicated by the PartitionBasedOnVolume association.") ]
277           class CIM_DiskPartition : CIM_MediaPartition {
278           
279                 [Description (
280                     "Boolean indicating that the DiskPartition is labelled as "
281                     "the primary partition for a ComputerSystem.") ]
282              boolean PrimaryPartition;
283           
284                 [Description (
285                     "The type of Partition."), 
286                  ValueMap {"0", "1", "2", "3"}, 
287                  Values {"Unknown", "Primary", "Extended", "Logical"} ]
288              uint16 PartitionType;
289           
290                 [Description (
291                     "The 'sub' type of a primary, extended, or logical "
292                     "Partition.  The list of possible values corresponds to the "
293                     "decimal representation of the typical values in the "
294                     "Partition record."), 
295 tony  1.1        ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
296                     "10", "11", "12", "14", "15", "16", "17", "18", "20", "22",
297                     "23", "27", "28", "33", "35", "36", "38", "49", "51", "52",
298                     "53", "54", "55", "60", "64", "65", "66", "67", "80", "81",
299                     "82", "83", "84", "85", "86", "97", "99", "100", "101",
300                     "102", "103", "104", "105", "113", "115", "116", "117",
301                     "118", "119", "120", "121", "128", "129", "130", "131",
302                     "132", "134", "135", "147", "148", "161", "163", "164",
303                     "165", "166", "177", "179", "180", "182", "183", "184",
304                     "193", "196", "198", "199", "216", "219", "225", "227",
305                     "228", "229", "230", "239", "240", "241", "242", "243",
306                     "244", "246", "254", "255", "65535"}, 
307                  Values {"Empty | Microsoft", "DOS 12-bit FAT", "XENIX root",
308                     "XENIX usr", "DOS 16-bit FAT", "DOS Extended",
309                     "DOS 16-bit FAT (> 32MB)",
310                     "OS/2 HPFS | Win NTFS | QNX Ver 2 | Adv UNIX",
311                     "AIX Boot | OS /2 | Dell (Array) | Commodore DOS",
312                     "AIX Data, Coherent", "OS/2 Boot Manager", "32-bit FAT",
313                     "32-bit FAT", "Microsoft 16-bit FAT",
314                     "Microsoft DOS Extended", "OPUS | OS/2 2.0",
315                     "OS/2 (MOSS) Inactive Type 1",
316 tony  1.1           "Compaq Diagnostics Partition | Microsoft",
317                     "OS/2 (MOSS) Inactive Type 4",
318                     "OS/2 (MOSS) Inactive Type 6",
319                     "OS/2 (MOSS) Inactive Type 7",
320                     "OS/2 (MOSS) Inactive Type B",
321                     "OS/2 (MOSS) Inactive Type C", "Microsoft", "Microsoft",
322                     "Microsoft", "Microsoft", "Microsoft", "Microsoft",
323                     "Microsoft", "OS/2 Logical Volume Manager", "Microsoft",
324                     "OS/2 JFS Log", "PowerQuest", "VENIX 80286 | Series/1 Disk",
325                     "Personal RISC Boot", "Veritas", "Veritas",
326                     "OnTrack Disk Manager Read Only DOS",
327                     "OnTrack Disk Manager Read/Write DOS",
328                     "CPM | Microport System V/386 | OnTrack Disk Mgr | " 
329                     "Microsoft", "OnTrack Disk Manager",
330                     "OnTrack Disk Manager Non-DOS",
331                     "Micro House EZ-Drive Non-DOS",
332                     "Golden Bow Vfeature | Microsoft",
333                     "Storage Dimensions SpeedStor | Microsoft",
334                     "UNIX - AT&T System V/386 | SCO UNIX",
335                     "Novell NetWare | Speedstore", "Novell NetWare",
336                     "Novell NetWare", "Novell", "Novell", "Novell", "Microsoft",
337 tony  1.1           "Microsoft", "Microsoft", "PC/IX IBM", "Microsoft",
338                     "QNX POSIX", "QNX POSIX (Secondary)",
339                     "QNX POSIX (Secondary)",
340                     "Minix (<=1.4a) | Linux | Microsoft",
341                     "Minix (>=1.4b) | Microsoft", "Linux Swap | Prime",
342                     "Linux Native | Apple", "System Hibernation for APM",
343                     "Microsoft", "HPFS FT mirror", "Amoeba | Microsoft",
344                     "Amoeba BBT | Microsoft", "Microsoft", "Microsoft",
345                     "Microsoft", "BSD/386", "Microsoft", "Microsoft",
346                     "Microsoft", "Microsoft", "Microsoft", "BSDI fs | Microsoft",
347                     "BSDI Swap | Microsoft", "Microsoft", "Microsoft",
348                     "Microsoft", "Syrinx | HPFS FT Disabled Mirror", "CP/M 86",
349                     "Digital Research CPM-86 | Concurrent DOS | OUTRIGGER",
350                     "SpeedStor 12-bit FAT Extended",
351                     "DOS Read-Only | Storage Dimensions",
352                     "SpeedStor 16-bit FAT Extended", "Microsoft", "Microsoft",
353                     "Intel", "OS/2 Raw Data", "Storage Dimensions",
354                     "DOS (Secondary)", "Microsoft",
355                     "SpeedStor Large | Storage Dimensions", "Microsoft",
356                     "Lan Step | SpeedStor | IBM PS/2 IML", "Bad Block Tables",
357                     "Unknown"} ]
358 tony  1.1    uint16 PartitionSubtype;
359           };
360           
361           
362           // ===================================================================
363           // DiskPartitionBasedOnVolume
364           // ===================================================================
365              [Association, Version ("2.6.0"), Description (
366                  "DiskPartitions should be BasedOn a single StorageVolume (for "
367                  "example, exposed by a hardware RAID cabinet), an SCC "
368                  "VolumeSet, or realized directly in PhysicalMedia.  The first "
369                  "two relationships are made explicit in this association.  The "
370                  "latter is conveyed by the RealizesDiskPartition association.") ]
371           class CIM_DiskPartitionBasedOnVolume : CIM_BasedOn {
372           
373                 [Override ("Antecedent"), Max (1), Description (
374                     "The StorageVolume.") ]
375              CIM_StorageVolume REF Antecedent;
376           
377                 [Override ("Dependent"), Description (
378                     "The DiskPartition which is built on the Volume.") ]
379 tony  1.1    CIM_DiskPartition REF Dependent;
380           };
381           
382           
383           // ===================================================================
384           // RealizesDiskPartition
385           // ===================================================================
386              [Association, Version ("2.6.0"), Description (
387                  "DiskPartitions can be directly realized on a PhysicalMedia.  "
388                  "This is used to model the creation of Partitions on a raw SCSI "
389                  "or IDE drive, using the fdisk (DOS and Unix) or pdisk (Unix) "
390                  "command.  The StartingAddress of the DiskPartition on the "
391                  "PhysicalMedia is also specified as a property of this "
392                  "relationship.  An alternative is that Partitions can be "
393                  "BasedOn StorageVolumes, such as a VolumeSet or a Volume "
394                  "exposed by a hardware RAID cabinet.  The latter relationship "
395                  "is modeled using the DiskPartitionBasedOnVolume association.") ]
396           class CIM_RealizesDiskPartition : CIM_RealizesExtent {
397           
398                 [Override ("Antecedent"), Max (1), Description (
399                     "The PhysicalMedia on which the Extent is realized.") ]
400 tony  1.1    CIM_PhysicalMedia REF Antecedent;
401           
402                 [Override ("Dependent"), Description (
403                     "The DiskPartition that is located on the Media.") ]
404              CIM_DiskPartition REF Dependent;
405           };
406           
407           
408           // ===================================================================
409           // TapePartition
410           // ===================================================================
411              [Version ("2.6.0"), Description (
412                  "Capabilities and management of a TapePartition StorageExtent.  "
413                  "Note that if a PhysicalTape is not partitioned, only a generic "
414                  "StorageExtent that represents the entire Tape should be "
415                  "instantiated.  TapePartitions may be BasedOn other "
416                  "StorageExtents or directly Realized on a PhysicalTape.") ]
417           class CIM_TapePartition : CIM_MediaPartition {
418           
419                 [Description (
420                     "Number of blocks that are currently unused/not written on "
421 tony  1.1           "the Partition.  When this number is multiplied by the "
422                     "BlockSize, inherited from StorageExtent, the total number "
423                     "of bytes available for writing can be computed."), 
424                  Gauge ]
425              uint64 UnusedBlocks;
426           };
427           
428           
429           // ===================================================================
430           // TapePartitionOnSurface
431           // ===================================================================
432              [Association, Version ("2.6.0"), Description (
433                  "TapePartitionOnSurface represents the ability to have one or "
434                  "more TapePartitions on each surface of a PhysicalTape.  The "
435                  "individual surfaces are represented as instances of "
436                  "CIM_StorageExtent.") ]
437           class CIM_TapePartitionOnSurface : CIM_BasedOn {
438           
439                 [Override ("Antecedent"), Max (1), Description (
440                     "The StorageExtent that represents the Tape's surface.") ]
441              CIM_StorageExtent REF Antecedent;
442 tony  1.1 
443                 [Override ("Dependent"), Description (
444                     "The TapePartition which is built on the Extent.") ]
445              CIM_TapePartition REF Dependent;
446           };
447           
448           
449           // ===================================================================
450           // RealizesTapePartition
451           // ===================================================================
452              [Association, Version ("2.6.0"), Description (
453                  "TapePartitions are realized on PhysicalTape.  This "
454                  "relationship is made explicit by the RealizesTapePartition "
455                  "association.") ]
456           class CIM_RealizesTapePartition : CIM_RealizesExtent {
457           
458                 [Override ("Antecedent"), Max (1), Description (
459                     "The PhysicalTape on which the Partition is realized.") ]
460              CIM_PhysicalTape REF Antecedent;
461           
462                 [Override ("Dependent"), Description (
463 tony  1.1           "The TapePartition that is located on the Media.") ]
464              CIM_TapePartition REF Dependent;
465           };
466           
467           
468           // ===================================================================
469           // LogicalDisk
470           // ===================================================================
471              [Version ("2.6.0"), Description (
472                  "A LogicalDisk is a presentation of a contiguous range of "
473                  "logical blocks that is identifiable by a FileSystem via the "
474                  "Disk's DeviceId (key) field.  For example in a Windows "
475                  "environment, the DeviceID field would contain a drive letter.  "
476                  "In a Unix environment, it would contain the access path; and "
477                  "in a NetWare environment, DeviceID would contain the volume "
478                  "name.  LogicalDisks are typically built on a DiskPartition or "
479                  "Storage Volume (for example, exposed by a software volume "
480                  "manager) using the LogicalDiskBasedOnPartition or "
481                  "LogicalDiskBasedOn Volume associations.  However, it can be "
482                  "based on other StorageExtents, like CIM_Memory, in the case of "
483                  "a RAM disk.  The latter is described using the "
484 tony  1.1        "LogicalDiskBasedOnExtent relationship.  (Indeed, the "
485                  "BasedOnExtent association is the superclass for the "
486                  "BasedOnPartition and BasedOnVolume relationships.)") ]
487           class CIM_LogicalDisk : CIM_StorageExtent {
488           };
489           
490           
491           // ===================================================================
492           // LogicalDiskBasedOnExtent
493           // ===================================================================
494              [Association, Version ("2.6.0"), Description (
495                  "LogicalDisks can be BasedOn a single StorageVolume, Memory (in "
496                  "the case of a RAM Disk), a DiskPartition or other "
497                  "StorageExtent.  These relationships are made explicit in this "
498                  "association.  Subclasses of the association, "
499                  "LogicalDiskBasedOn Partition and LogicalDiskBasedOnVolume, "
500                  "detail the 'typical' semantics.") ]
501           class CIM_LogicalDiskBasedOnExtent : CIM_BasedOn {
502           
503                 [Override ("Antecedent"), Max (1), Description (
504                     "The StorageExtent.") ]
505 tony  1.1    CIM_StorageExtent REF Antecedent;
506           
507                 [Override ("Dependent"), Description (
508                     "The LogicalDisk which is built on the StorageExtent.") ]
509              CIM_LogicalDisk REF Dependent;
510           };
511           
512           
513           // ===================================================================
514           // LogicalDiskBasedOnVolume
515           // ===================================================================
516              [Association, Version ("2.6.0"), Description (
517                  "LogicalDisks can be BasedOn a single Volume (for example, "
518                  "exposed by a software volume manager), or be BasedOn a Disk "
519                  "Partition directly.  The former relationship is made explicit "
520                  "in this association.") ]
521           class CIM_LogicalDiskBasedOnVolume : CIM_LogicalDiskBasedOnExtent {
522           
523                 [Override ("Antecedent"), Max (1), Description (
524                     "The StorageVolume.") ]
525              CIM_StorageVolume REF Antecedent;
526 tony  1.1 
527                 [Override ("Dependent"), Description (
528                     "The LogicalDisk which is built on the StorageExtent.") ]
529              CIM_LogicalDisk REF Dependent;
530           };
531           
532           
533           // ===================================================================
534           // LogicalDiskBasedOnPartition
535           // ===================================================================
536              [Association, Version ("2.6.0"), Description (
537                  "LogicalDisks can be BasedOn a DiskPartition.  For example, a "
538                  "personal computer's C: drive may be located on a Partition on "
539                  "local PhysicalMedia.  In this association of LogicalDisks to "
540                  "Partitions, note that the cardinality of the Antecedent, Disk "
541                  "Partition, is Max (1).  This dictates that a LogicalDisk can "
542                  "not span more than one Partition.  However, there are cases "
543                  "where this is true.  When it occurs, the LogicalDisk is really "
544                  "based on some kind of RAID configuration (for example, a "
545                  "mirror or stripe set).  In these scenarios, the LogicalDisk is "
546                  "more correctly BasedOn a StorageVolume.  To prevent "
547 tony  1.1        "incorrectly using the LogicalDiskBasedOnPartition association, "
548                  "the Max (1) qualifier was put on the Antecedent reference to "
549                  "the DiskPartition.") ]
550           class CIM_LogicalDiskBasedOnPartition : CIM_LogicalDiskBasedOnExtent {
551           
552                 [Override ("Antecedent"), Max (1), Description (
553                     "The DiskPartition.") ]
554              CIM_DiskPartition REF Antecedent;
555           
556                 [Override ("Dependent"), Description (
557                     "The LogicalDisk which is built on the StorageExtent.") ]
558              CIM_LogicalDisk REF Dependent;
559           };
560           
561           
562           // ===================================================================
563           // ProtectedExtentBasedOn
564           // ===================================================================
565              [Association, Version ("2.7.0"), Description (
566                  "Protected StorageExtents map to an underlying StorageExtent.  "
567                  "This mapping includes information about the placement of check "
568 tony  1.1        "data on the underlying extent.  The mapping is made explicit "
569                  "in this association.") ]
570           class CIM_ProtectedExtentBasedOn : CIM_BasedOn {
571           
572                 [Override ("Antecedent"), Description (
573                     "The underlying StorageExtent.") ]
574              CIM_StorageExtent REF Antecedent;
575           
576                 [Override ("Dependent"), Description (
577                     "The Protected Space is built on this StorageExtent.") ]
578              CIM_StorageExtent REF Dependent;
579           
580                 [Override ("StartingAddress"), Description (
581                     "The starting logical block address of the underlying "
582                     "StorageExtent from which this protected StorageExtent is "
583                     "derived.  In SCC, this is equivalent to the START LBA_P "
584                     "field in the Redundancy Group P_Extent Descriptor."), 
585                  MappingStrings {"MIF.DMTF|Physical Extent|001.2"} ]
586              uint64 StartingAddress;
587           
588                 [Description (
589 tony  1.1           "The size of the protected space.  Note that this is limited "
590                     "by the Antecedent->NumberOfBlocks, but is included "
591                     "explicitly to provide for the DMTF MIF mapping.  In SCC, "
592                     "this is equivalent to the NUMBER OF LBA_P(s) field in the "
593                     "Redundancy Group P_Extent Descriptor."), 
594                  MappingStrings {"MIF.DMTF|Physical Extent|001.3"}, 
595                  ModelCorrespondence {"CIM_StorageExtent.NumberOfBlocks"} ]
596              uint64 NumberOfBlocks;
597           
598                 [Description (
599                     "The block size of the protected space.  Note that this is "
600                     "limited by the Antecedent->BlockSize.  In SCC, this is "
601                     "equivalent to the NUMBER OF BYTES PER LBA_P field in the "
602                     "Redundancy Group P_Extent Descriptor."), 
603                  Units ("Bytes"), 
604                  MappingStrings {"MIF.DMTF|Physical Extent|001.4"}, 
605                  ModelCorrespondence {"CIM_StorageExtent.BlockSize"} ]
606              uint64 BlockSize;
607           
608                 [Description (
609                     "Number of bytes of user data to skip before starting the "
610 tony  1.1           "check data interleave."), 
611                  Units ("Bytes"), 
612                  MappingStrings {"MIF.DMTF|Physical Extent|001.6"} ]
613              uint64 UnitsBeforeCheckDataInterleave;
614           
615                 [Description (
616                     "Number of bytes to be reserved for check data."), 
617                  Units ("Bytes"), 
618                  MappingStrings {"MIF.DMTF|Physical Extent|001.7"} ]
619              uint64 UnitsOfCheckData;
620           
621                 [Description (
622                     "Number of bytes to be reserved for user data."), 
623                  Units ("Bytes"), 
624                  MappingStrings {"MIF.DMTF|Physical Extent|001.8"} ]
625              uint64 UnitsOfUserData;
626           };
627           
628           
629           // ===================================================================
630           // CompositeExtent
631 tony  1.1 // ===================================================================
632              [Version ("2.7.0"), Description (
633                  "A CompositeExtent is used to model the distribution of user "
634                  "data across one or more underlying StorageExtents, which may "
635                  "or not be protected by some redundancy mechanism.  "
636                  "CompositeExtents represent a contiguous range of logical "
637                  "blocks.  CompositeExtents may overlap, however, the underlying "
638                  "StorageExtents within the overlap shall not contain any check "
639                  "data.  Distribution of check data may be specified using the "
640                  "CompositeExtentBasedOn association.") ]
641           class CIM_CompositeExtent : CIM_StorageExtent {
642           
643                 [Override ("NumberOfBlocks"), 
644                  MappingStrings {"MIF.DMTF|Volume Set|001.3"} ]
645              uint64 NumberOfBlocks;
646           
647                 [Description (
648                     "Number of contiguous underlying StorageExtents counted "
649                     "before looping back to the first underlying StorageExtent "
650                     "of the current stripe.  It is the number of StorageExtents "
651                     "forming the user data stripe."), 
652 tony  1.1        MappingStrings {"MIF.DMTF|Volume Set|001.4"} ]
653              uint64 ExtentStripeLength;
654           
655                 [Description (
656                     "Number of StorageExtents to stripe as a collective set.  In "
657                     "SCC, this value is defined as the number of stripes to "
658                     "count before continuing to map into the next contiguous set "
659                     "of Extents, beyond the current stripe."), 
660                  MappingStrings {"MIF.DMTF|Volume Set|001.5"} ]
661              uint64 ExtentInterleaveDepth;
662           
663                 [Description (
664                     "True indicates that the data is concatenated across the "
665                     "various StorageExtents in the Group.") ]
666              boolean IsConcatenated;
667           };
668           
669           
670           // ===================================================================
671           // CompositeExtentBasedOn
672           // ===================================================================
673 tony  1.1    [Association, Version ("2.7.0"), Description (
674                  "This specialization defines how data is striped across "
675                  "StorageExtents.  Additionally, it includes information on "
676                  "distribution of check data so that the 'usual case' RAID "
677                  "devices can be created in one step.") ]
678           class CIM_CompositeExtentBasedOn : CIM_BasedOn {
679           
680                 [Override ("Antecedent"), Min (1), Description (
681                     "The underlying StorageExtent.") ]
682              CIM_StorageExtent REF Antecedent;
683           
684                 [Override ("Dependent"), Description (
685                     "The CompositeExtent which is built on the StorageExtent.") ]
686              CIM_CompositeExtent REF Dependent;
687           
688                 [Required, Override ("OrderIndex"), Description (
689                     "Order matters to CompositeExtents.  An example of the use "
690                     "of this property is when defining a RAID-0 striped array of "
691                     "3 disks.  The resultant RAID array is a CompositeExtent "
692                     "that is dependent on (as described by "
693                     "CompositeExtentBasedOn) the StorageExtents that represent "
694 tony  1.1           "each of the 3 disks.  The OrderIndex of each "
695                     "CompositeExtentBasedOn association from the disk Extents to "
696                     "the RAID array could be specified as 1, 2 and 3 to indicate "
697                     "the order in which the disk Extents are used to access the "
698                     "RAID data."), 
699                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.1"} ]
700              uint16 OrderIndex;
701           
702                 [Description (
703                     "True if logical blocks in the underlying StorageExtents are "
704                     "mapped in decrementing order.  This property corresponds to "
705                     "the INCDEC value in the SCC-2 Volume Set PS_Extent "
706                     "Descriptor.") ]
707              boolean LBAsMappedByDecrementing;
708           
709                 [Description (
710                     "True if the logical block mapping algorithm includes check "
711                     "data bytes.  This property corresponds to the NOCHKSKIP "
712                     "attribute in the SCC-2 Volume Set PS_Extent Descriptor.") ]
713              boolean LBAMappingIncludesCheckData;
714           
715 tony  1.1       [Description (
716                     "The total number of blocks that will be consumed on the "
717                     "Dependent Extent.  This is limited by the Antecedent's "
718                     "NumberOfBlocks, but is included explicitly to provide for "
719                     "the DMTF MIF mapping.  In SCC, this is equivalent to the "
720                     "NUMBER OF LBA_PS(s) field in the Volume Set PS_Extent "
721                     "Descriptor."), 
722                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.3"}, 
723                  ModelCorrespondence {"CIM_StorageExtent.NumberOfBlocks"} ]
724              uint64 NumberOfBlocks;
725           
726                 [Description (
727                     "The Dependent's BlockSize is limited by the Antecedent's.  "
728                     "In SCC, this is equivalent to the NUMBER OF BYTES PER "
729                     "LBA_PS field in the RedundancyGroup P_Extent Descriptor."), 
730                  Units ("Bytes"), 
731                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.4"}, 
732                  ModelCorrespondence {"CIM_StorageExtent.BlockSize"} ]
733              uint64 BlockSize;
734           
735                 [Description (
736 tony  1.1           "Number of bytes which form the stripe size for the "
737                     "Dependent StorageExtent.  If the CompositeExtent is "
738                     "concatenated instead of striped, then UserDataStripeDepth "
739                     "should be set to zero."), 
740                  Units ("Bytes"), 
741                  MappingStrings {"MIF.DMTF|Protected Space Extent|001.6"} ]
742              uint64 UserDataStripeDepth;
743           
744                 [Description (
745                     "Number of bytes of user data to skip before starting the "
746                     "check data interleave."), 
747                  Units ("Bytes"), 
748                  MappingStrings {"MIF.DMTF|Physical Extent|001.6"} ]
749              uint64 UnitsBeforeCheckDataInterleave;
750           
751                 [Description (
752                     "Number of bytes to be reserved for check data."), 
753                  Units ("Bytes"), 
754                  MappingStrings {"MIF.DMTF|Physical Extent|001.7"} ]
755              uint64 UnitsOfCheckData;
756           
757 tony  1.1       [Description (
758                     "Number of bytes to be reserved for user data."), 
759                  Units ("Bytes"), 
760                  MappingStrings {"MIF.DMTF|Physical Extent|001.8"} ]
761              uint64 UnitsOfUserData;
762           };
763           
764           
765           // ===================================================================
766           // StorageError
767           // ===================================================================
768              [Version ("2.6.0"), Description (
769                  "StorageError defines blocks of media or memory space that are "
770                  "mapped 'out of use' due to errors.  The Key of the class is "
771                  "the StartingAddress of the bytes in error.") ]
772           class CIM_StorageError : CIM_ManagedElement {
773           
774                 [Key, Propagated ("CIM_StorageExtent.SystemCreationClassName"), 
775                  Description (
776                     "The scoping System's CreationClassName."), 
777                  MaxLen (256) ]
778 tony  1.1    string SystemCreationClassName;
779           
780                 [Key, Propagated ("CIM_StorageExtent.SystemName"), Description (
781                     "The scoping System's Name."), 
782                  MaxLen (256) ]
783              string SystemName;
784           
785                 [Key, Propagated ("CIM_StorageExtent.CreationClassName"), 
786                  Description (
787                     "The scoping StorageExtent's CreationClassName."), 
788                  MaxLen (256) ]
789              string DeviceCreationClassName;
790           
791                 [Key, Propagated ("CIM_StorageExtent.DeviceID"), Description (
792                     "The scoping StorageExtent's DeviceID."), 
793                  MaxLen (64) ]
794              string DeviceID;
795           
796                 [Key, Description (
797                     "The starting address of the bytes in error.") ]
798              uint64 StartingAddress;
799 tony  1.1 
800                 [Description (
801                     "The ending address of the bytes in error.") ]
802              uint64 EndingAddress;
803           };
804           
805           
806           // ===================================================================
807           // StorageDefect
808           // ===================================================================
809              [Association, Aggregation, Version ("2.6.0"), Description (
810                  "The StorageDefect aggregation collects the StorageErrors for a "
811                  "StorageExtent.") ]
812           class CIM_StorageDefect {
813           
814                 [Key, Aggregate, Min (1), Max (1), Description (
815                     "The Extent reference defines the StorageExtent on which the "
816                     "errors occurred.") ]
817              CIM_StorageExtent REF Extent;
818           
819                 [Key, Weak, Description (
820 tony  1.1           "Error references the Error object, defining the starting "
821                     "and ending addresses that are 'mapped out' of the Storage "
822                     "Extent.") ]
823              CIM_StorageError REF Error;
824           };
825           
826           
827           // ===================================================================
828           // end of file
829           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2