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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2