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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2