314 lines
15 KiB
Plaintext
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;
|
|
|
|
|
|
};
|