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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2