// 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; };