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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2