314 lines
15 KiB
Plaintext

// Copyright (c) 2011 DMTF. All rights reserved.
[Version ( "2.29.0" ),
UMLPackagePath ( "CIM::Core::StorageExtent" ),
Description (
"StorageExtent describes the capabilities and management of the "
"various media that exist to store data and allow data "
"retrieval. This superclass could be used to represent the "
"various components of RAID (Hardware or Software) or as a raw "
"logical extent on top of physical media." )]
class CIM_StorageExtent : CIM_LogicalDevice {
[Description ( "Type of data organization used." ),
ValueMap { "0", "1", "2", "3", "4" },
Values { "Other", "Unknown", "Fixed Block", "Variable Block",
"Count Key Data" }]
uint16 DataOrganization;
[Description (
"A free form string describing the media and/or its use." ),
MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr" }]
string Purpose;
[Description (
"Access describes whether the media is readable "
"(value=1), writeable (value=2), or both (value=3). "
"\"Unknown\" (0) and \"Write Once\" (4) can also be "
"defined." ),
ValueMap { "0", "1", "2", "3", "4" },
Values { "Unknown", "Readable", "Writeable",
"Read/Write Supported", "Write Once" }]
uint16 Access;
[Description (
"ErrorMethodology is a free-form string describing the "
"type of error detection and correction supported by this "
"StorageExtent." )]
string ErrorMethodology;
[Description (
"Size in bytes of the blocks which form this "
"StorageExtent. If variable block size, then the maximum "
"block size in bytes should be specified. If the block "
"size is unknown or if a block concept is not valid (for "
"example, for AggregateExtents, Memory or LogicalDisks), "
"enter a 1." ),
Units ( "Bytes" ),
MappingStrings { "MIF.DMTF|Host Storage|001.4",
"MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits",
"MIF.DMTF|Storage Devices|001.5" }]
uint64 BlockSize;
[Description (
"Total number of logically contiguous blocks, of size "
"Block Size, which form this Extent. The total size of "
"the Extent can be calculated by multiplying BlockSize by "
"NumberOfBlocks. If the BlockSize is 1, this property is "
"the total size of the Extent." ),
MappingStrings { "MIF.DMTF|Host Storage|001.5",
"MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize" }]
uint64 NumberOfBlocks;
[Description (
"The maximum number of blocks, of size BlockSize, which "
"are available for consumption when layering "
"StorageExtents using the BasedOn association. This "
"property only has meaning when this StorageExtent is an "
"Antecedent reference in a BasedOn relationship. For "
"example, a StorageExtent could be composed of 120 "
"blocks. However, the Extent itself may use 20 blocks for "
"redundancy data. If another StorageExtent is BasedOn "
"this Extent, only 100 blocks would be available to it. "
"This information (\'100 blocks is available for "
"consumption\') is indicated in the ConsumableBlocks "
"property." )]
uint64 ConsumableBlocks;
[Description (
"True indicates that the underlying StorageExtent(s) "
"participate in a StorageRedundancyGroup." )]
boolean IsBasedOnUnderlyingRedundancy;
[Description (
"Boolean set to TRUE if the Storage is sequentially "
"accessed by a MediaAccessDevice. A TapePartition is an "
"example of a sequentially accessed StorageExtent. "
"StorageVolumes, Disk Partitions and LogicalDisks "
"represent randomly accessed Extents." )]
boolean SequentialAccess;
[Description (
"StorageExtents have additional status information beyond "
"that captured in the OperationalStatus and other "
"properties, inherited from ManagedSystemElement. This "
"additional information (for example, \"Protection "
"Disabled\", value=9) is captured in the ExtentStatus "
"property. \n"
"\'In-Band Access Granted\' says that access to data on "
"an extent is granted to some consumer and is only valid "
"when \'Exported\' is also set. It is set as a side "
"effect of PrivilegeManagementService.ChangeAccess or "
"equivalent interfaces. \n"
"\'Imported\' indicates that the extent is used in the "
"current system, but known to be managed by some other "
"system. For example, a server imports volumes from a "
"disk array. \n"
"\'Exported\' indicates the extent is meant to be used by "
"some comsumer. A disk array\'s logical units are "
"exported. \n"
"Intermediate composite extents may be neither imported "
"nor exported.\n"
"\'Relocating\' indicates the extent is being relocated." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "14", "15", "16", "17", "18",
"..", "32768..65535" },
Values { "Other", "Unknown", "None/Not Applicable", "Broken",
"Data Lost", "Dynamic Reconfig", "Exposed",
"Fractionally Exposed", "Partially Exposed",
"Protection Disabled", "Readying", "Rebuild",
"Recalculate", "Spare in Use", "Verify In Progress",
"In-Band Access Granted", "Imported", "Exported",
"Relocating", "DMTF Reserved", "Vendor Reserved" }]
uint16 ExtentStatus[];
[Description (
"Indicates whether or not there exists no single point of failure."
),
ModelCorrespondence {
"CIM_StorageSetting.NoSinglePointOfFailure" }]
boolean NoSinglePointOfFailure;
[Description (
"Number of complete copies of data currently maintained." ),
ModelCorrespondence {
"CIM_StorageSetting.DataRedundancyGoal",
"CIM_StorageSetting.DataRedundancyMax",
"CIM_StorageSetting.DataRedundancyMin" }]
uint16 DataRedundancy;
[Description (
"How many physical packages can currently fail without "
"data loss. For example, in the storage domain, this "
"might be disk spindles." ),
ModelCorrespondence {
"CIM_StorageSetting.PackageRedundancyGoal",
"CIM_StorageSetting.PackageRedundancyMax",
"CIM_StorageSetting.PackageRedundancyMin" }]
uint16 PackageRedundancy;
[Description (
"Current value for Delta reservation. This is a "
"percentage that specifies the amount of space that "
"should be reserved in a replica for caching changes." ),
Units ( "Percentage" ),
MinValue ( 1 ),
MaxValue ( 100 ),
ModelCorrespondence {
"CIM_StorageSetting.DeltaReservationGoal",
"CIM_StorageSetting.DeltaReservationMax",
"CIM_StorageSetting.DeltaReservationMin" }]
uint8 DeltaReservation;
[Description (
"If true, \"Primordial\" indicates that the containing "
"System does not have the ability to create or delete "
"this operational element. This is important because "
"StorageExtents are assembled into higher-level "
"abstractions using the BasedOn association. Although the "
"higher-level abstractions can be created and deleted, "
"the most basic, (i.e. primordial), hardware-based "
"storage entities cannot. They are physically realized as "
"part of the System, or are actually managed by some "
"other System and imported as if they were physically "
"realized. In other words, a Primordial StorageExtent "
"exists in, but is not created by its System and "
"conversely a non-Primordial StorageExtent is created in "
"the context of its System. For StorageVolumes, this "
"property will generally be false. One use of this "
"property is to enable algorithms that aggregate "
"StorageExtent.ConsumableSpace across all, StorageExtents "
"but that also want to distinquish the space that "
"underlies Primordial StoragePools. Since implementations "
"are not required to surface all Component StorageExtents "
"of a StoragePool, this information is not accessible in "
"any other way." )]
boolean Primordial = false;
[Override ( "Name" ),
Description ( "A unique identifier for the Extent." ),
MappingStrings {
"SPC.INCITS-T10| VPD 83, Association 0 | Identifier" },
ModelCorrespondence { "CIM_StorageExtent.NameFormat",
"CIM_StorageExtent.NameNamespace" }]
string Name;
[Description (
"The list here applies to all StorageExtent subclasses. "
"Please look at the Description in each subclass for "
"guidelines on the approriate values for that subclass. "
"Note that any of these formats could apply to a "
"CompositeExtent. \n"
"\n"
"Note - this property originally touched on two concepts "
"that are now separated into this property and "
"NameNamespace. Values 2,3,4,5,6, and 8 are retained for "
"backwards compatibility but are deprecated in lieu of "
"the corresponding values in "
"CIM_StorageExtent.NameNamespace. \n"
"\n"
"For example, the preferred source for SCSI virtual "
"(RAID) disk names is from Inquiry VPD page 83 response, "
"type 3 identifiers. These will have NameFormat set to "
"\'NAA\' and NameNamespace to \'VPD83Type3\'. \n"
"\n"
"Format of the Name property. Values for extents "
"representing SCSI volumes are (per SCSI SPC-3): \n"
"2 = VPD Page 83, NAA IEEE Registered Extended "
"(VPD83NAA6) \n"
"(DEPRECATED) \n"
"3 = VPD Page 83, NAA IEEE Registered (VPD83NAA5) \n"
"(DEPRECATED) \n"
"4 = VPD Page 83, (VPD83Type2) (DEPRECATED) \n"
"5 = VPD Page 83, \n"
"T10 Vendor Identification (VPD83Type1) (DEPRECATED) \n"
"6 = VPD Page 83, Vendor Specific (VPD83Type0) "
"(DEPRECATED) \n"
"7 = Serial Number/Vendor/Model (SNVM) SNVM is 3 strings "
"representing the vendor name, product name within the "
"vendor namespace, and the serial number within the model "
"namespace. Strings are delimited with a \'+\'. Spaces "
"may be included and are significant. The serial number "
"is the text representation of the serial number in "
"hexadecimal upper case. This represents the vendor and "
"model ID from SCSI Inquiry data; the vendor field MUST "
"be 8 characters wide and the product field MUST be 16 "
"characters wide. For example, \n"
"\'ACME____+SUPER DISK______+124437458\' (_ is a space "
"character) \n"
"8 = Node WWN (for single LUN/controller) (NodeWWN) \n"
"(DEPRECATED) \n"
"9 = NAA as a generic format. See \n"
"http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html. "
"Formatted as 16 or 32 unseparated uppercase hex "
"characters (2 per binary byte). For example "
"\'21000020372D3C73\' \n"
"10 = EUI as a generic format (EUI64) See \n"
"http://standards.ieee.org/regauth/oui/tutorials/EUI64.html. \n"
"Formatted as 16 unseparated uppercase hex characters (2 "
"per binary byte) \n"
"11 = T10 vendor identifier format as returned by SCSI "
"Inquiry VPD page 83, identifier type 1. See T10 SPC-3 "
"specification. This is the 8-byte ASCII vendor ID from "
"the T10 registry followed by a vendor specific ASCII "
"identifier; spaces are permitted. For non SCSI volumes, "
"\'SNVM\' may be the most appropriate choice. 12 = OS "
"Device Name (for LogicalDisks). See LogicalDisk Name "
"description for details." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12" },
Values { "Unknown", "Other", "VPD83NAA6", "VPD83NAA5",
"VPD83Type2", "VPD83Type1", "VPD83Type0", "SNVM",
"NodeWWN", "NAA", "EUI64", "T10VID", "OS Device Name" },
ModelCorrespondence { "CIM_StorageExtent.Name",
"CIM_StorageExtent.NameNamespace",
"CIM_StorageExtent.OtherNameFormat" }]
uint16 NameFormat;
[Description (
"The preferred source SCSI for volume names is SCSI VPD "
"Page 83 responses. Page 83 returns a list of identifiers "
"for various device elements. The metadata for each "
"identifier includes an Association field, identifiers "
"with association of 0 apply to volumes. Page 83 supports "
"several namespaces specified in the Type field in the "
"identifier metadata. See SCSI SPC-3 specification. \n"
"2 = VPD Page 83, Type 3 NAA (NameFormat SHOULD be NAA) \n"
"3 = VPD Page 83, Type 2 EUI64 (NameFormat EUI) \n"
"4 = VPD Page 83, Type 1 T10 Vendor Identification \n"
"(NameFormat T10) \n"
"Less preferred volume namespaces from other interfaces: \n"
"5 = VPD page 80, Serial number (NameFormat SHOULD be "
"Other) \n"
"6 = FC NodeWWN (NameFormat SHOULD be NAA or EUI) \n"
"7 = Serial Number/Vendor/Model (NameFormat SHOULD be "
"SNVM) \n"
"The preferred namespace for LogigicalDisk names is "
"platform specific device namespace; see LogigicalDIsk "
"Description. \n"
"8 = OS Device Namespace." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
Values { "Unknown", "Other", "VPD83Type3", "VPD83Type2",
"VPD83Type1", "VPD80", "NodeWWN", "SNVM",
"OS Device Namespace" },
MappingStrings {
"SPC.INCITS-T10| VPD 83, Association 0 | Identifier" },
ModelCorrespondence { "CIM_StorageExtent.Name",
"CIM_StorageExtent.OtherNameNamespace",
"CIM_StorageExtent.NameFormat" }]
uint16 NameNamespace;
[Description (
"A string describing the namespace of the Name property "
"when NameNamespace includes the value 1, \"Other\"." ),
ModelCorrespondence { "CIM_StorageExtent.NameNamespace" }]
string OtherNameNamespace;
[Description (
"A string describing the format of the Name property when "
"NameFormat includes the value 1, \"Other\"." ),
ModelCorrespondence { "CIM_StorageExtent.NameFormat" }]
string OtherNameFormat;
};