summaryrefslogtreecommitdiffstats
path: root/Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof
diff options
context:
space:
mode:
Diffstat (limited to 'Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof')
-rw-r--r--Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof229
1 files changed, 229 insertions, 0 deletions
diff --git a/Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof b/Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof
new file mode 100644
index 0000000..231f690
--- /dev/null
+++ b/Schemas/CIM236/DMTF/Device/CIM_StoragePool.mof
@@ -0,0 +1,229 @@
+// Copyright (c) 2008 DMTF. All rights reserved.
+ [Version ( "2.19.0" ),
+ UMLPackagePath ( "CIM::Device::StorageServices" ),
+ Description (
+ "A StoragePool is a conglomeration of storage capacity for the "
+ "purpose of assignment and allocation based on service "
+ "characteristics, such as location, available space or other "
+ "criteria (for example, cost per megabyte or hardware "
+ "ownership). A StoragePool is managed within the scope of a "
+ "particular System. StoragePools may consist of component "
+ "StoragePools or StorageExtents. StorageExtents that belong to "
+ "the StoragePool have a Component relationship to the "
+ "StoragePool. StorageExtents/StoragePools that are elements of "
+ "a pool have their available space aggregated into the pool. "
+ "StoragePools, StorageVolumes and LogicalDisks may be created "
+ "from StoragePools. This is indicated by the "
+ "AllocatedFromStoragePool association. StoragePool is scoped to "
+ "a system by the HostedStoragePool association." )]
+class CIM_StoragePool : CIM_LogicalElement {
+
+ [Key, Override ( "InstanceID" ),
+ Description (
+ "Within the scope of the instantiating Namespace, "
+ "InstanceID opaquely and uniquely identifies an instance "
+ "of this class. In order to ensure uniqueness within the "
+ "NameSpace, the value of InstanceID SHOULD be constructed "
+ "using the following \'preferred\' algorithm: \n"
+ "<OrgID>:<LocalID> \n"
+ "Where <OrgID> and <LocalID> are separated by a colon "
+ "\':\', and where <OrgID> MUST include a copyrighted, "
+ "trademarked or otherwise unique name that is owned by "
+ "the business entity creating/defining the InstanceID, or "
+ "is a registered ID that is assigned to the business "
+ "entity by a recognized global authority (This is similar "
+ "to the <Schema Name>_<Class Name> structure of Schema "
+ "class names.) In addition, to ensure uniqueness <OrgID> "
+ "MUST NOT contain a colon (\':\'). When using this "
+ "algorithm, the first colon to appear in InstanceID MUST "
+ "appear between <OrgID> and <LocalID>. \n"
+ "<LocalID> is chosen by the business entity and SHOULD "
+ "not be re-used to identify different underlying "
+ "(real-world) elements. If the above \'preferred\' "
+ "algorithm is not used, the defining entity MUST assure "
+ "that the resultant InstanceID is not re-used across any "
+ "InstanceIDs produced by this or other providers for this "
+ "instance\'s NameSpace. \n"
+ "For DMTF defined instances, the \'preferred\' algorithm "
+ "MUST be used with the <OrgID> set to \'CIM\'." )]
+ string InstanceID;
+
+ [Required, Description (
+ "A unique name in the context of the System that "
+ "identifies this pool." ),
+ MaxLen ( 256 )]
+ string PoolID;
+
+ [Description (
+ "If true, \"Primordial\" indicates that this StoragePool "
+ "is the base from which storage capacity is drawn and "
+ "returned in the activity of storage management. Being "
+ "primordial means that this StoragePool shall not be "
+ "created or deleted by consumers of this model. However, "
+ "other actions, modeled or not, may affect the "
+ "characteristics or size of primordial StoragePools. If "
+ "false, \"Primordial\" indicated that the StoragePool, a "
+ "concrete Storage Pool, is subject to storage services "
+ "functions. This distinction is important because "
+ "higher-level StoragePools may be assembled using the "
+ "Component or AllocatedFromStoragePool associations. "
+ "Although the higher-level abstractions can be created "
+ "and deleted, the most basic, (i.e. primordial), "
+ "hardware-based StoragePools 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." )]
+ boolean Primordial = false;
+
+ [Description (
+ "The total amount of capacity usable for the allocation "
+ "of StorageVolumes, LogicalDisks, or child Storage Pools. \n"
+ "For primordial Storage Pools, this capacity reflects the "
+ "usable capacity of Disk Drives or LUNs, for example, to "
+ "the owning storage device or application. For example, "
+ "in storage array, a primordial Storage Pool\'s "
+ "TotalManagedSpace does not include metadata such as the "
+ "disk label area and absolute disk drive capacity lost in "
+ "disk formatting. \n"
+ "For concrete Storage Pools, the same applies, but the "
+ "metadata not included in TotalManagedSpace is consumed "
+ "in virtualization like RAID and concatenation. Concrete "
+ "Storage Pool may also be simple reserve of capacity. In "
+ "such a case, no capacity may be lost in formation of the "
+ "Storage Pool. \n"
+ "Conceptually TotalManagedSpace is the sum of all storage "
+ "known via AssociatedComponentExtent associations to "
+ "underlying StorageExtents. However, note some of these "
+ "underlying storage may not be modeled by the "
+ "instrumentation." ),
+ Units ( "Bytes" ),
+ ModelCorrespondence { "CIM_StoragePool.RemainingManagedSpace" }]
+ uint64 TotalManagedSpace;
+
+ [Required, Description (
+ "The remaining usable capacity after the allocation of "
+ "StorageVolumes, LogicalDisks, or child Storage Pools. "
+ "This property is maintained here to provide efficient "
+ "access to this information. However, note that it is "
+ "possible to compute RemainingManagedSpace as "
+ "(TotalManagedSpace minus the sum of SpaceConsumed from "
+ "all of the AllocatedFromStoragePool references from this "
+ "StoragePool). Note that SpaceConsumed remains useful to "
+ "determine the amount of capacity consumed by a "
+ "particular allocated element." ),
+ Units ( "Bytes" ),
+ ModelCorrespondence { "CIM_StoragePool.TotalManagedSpace",
+ "CIM_AllocatedFromStoragePool.SpaceConsumed" }]
+ uint64 RemainingManagedSpace;
+
+
+ [Description (
+ "For pools that support discrete sizes for volume or pool "
+ "creation, this method can be used to retrieve a list of "
+ "supported sizes. Note that different pool "
+ "implementations may support either or both the "
+ "GetSupportedSizes and GetSupportedSizeRanges methods at "
+ "different times, depending on Pool configuration. Also "
+ "note that the advertised sizes may change after the call "
+ "due to requests from other clients. If the pool "
+ "currently only supports a range of sizes, then the "
+ "return value will be set to 1." ),
+ ValueMap { "0", "1", "2" },
+ Values { "Method completed OK", "Method not supported",
+ "Use GetSupportedSizeRange instead" }]
+ uint32 GetSupportedSizes(
+ [IN, Description (
+ "The type of element for which supported sizes are reported for."
+ ),
+ ValueMap { "2", "3", "4" },
+ Values { "Storage Pool", "Storage Volume",
+ "Logical Disk" }]
+ uint16 ElementType,
+ [IN, Description (
+ "The StorageSetting for which supported sizes "
+ "should be reported for." )]
+ CIM_StorageSetting REF Goal,
+ [IN ( false ), OUT, Description (
+ "List of supported sizes for a Volume/Pool creation "
+ "or modification." ),
+ Units ( "Bytes" )]
+ uint64 Sizes[]);
+
+ [Description (
+ "For pools that that support a range of sizes for volume "
+ "or pool creation, this method can be used to retrieve "
+ "the supported range. Note that different pool "
+ "implementations may support either or both the "
+ "GetSupportedSizes and GetSupportedSizeRanges methods at "
+ "different times, depending on Pool configuration. Also "
+ "note that the advertised sizes may change after the call "
+ "due to requests from other clients. If the pool "
+ "currently only supports discrete sizes, then the return "
+ "value will be set to 1." ),
+ ValueMap { "0", "1", "2" },
+ Values { "Method completed OK", "Method not supported",
+ "Use GetSupportedSizes instead" }]
+ uint32 GetSupportedSizeRange(
+ [IN, Description (
+ "The type of element for which supported size "
+ "ranges are reported for." ),
+ ValueMap { "2", "3", "4" },
+ Values { "Storage Pool", "Storage Volume",
+ "Logical Disk" }]
+ uint16 ElementType,
+ [IN, Description (
+ "The StorageSetting for which supported size ranges "
+ "should be reported for." )]
+ CIM_StorageSetting REF Goal,
+ [IN ( false ), OUT, Description (
+ "The minimum size for a volume/pool in bytes." ),
+ Units ( "Bytes" )]
+ uint64 MinimumVolumeSize,
+ [IN ( false ), OUT, Description (
+ "The maximum size for a volume/pool in bytes." ),
+ Units ( "Bytes" )]
+ uint64 MaximumVolumeSize,
+ [IN ( false ), OUT, Description (
+ "A volume/pool size must be a multiple of this "
+ "value which is specified in bytes." ),
+ Units ( "Bytes" )]
+ uint64 VolumeSizeDivisor);
+
+ [Description (
+ "This method can be used to retrieve a list of available "
+ "Extents that may be used in the creation or modification "
+ "of a StoragePool, StorageVolume, or LogicalDisk. The "
+ "GetAvailableExtents method MUST return the Extents from "
+ "the set of Component Extents of the Pool on which the "
+ "method is being invoked. The returned Extents are "
+ "available at the time the method returns. There is no "
+ "guarantee that the same Extents will be available later. "
+ "This method MUST return the Extents that are not being "
+ "used as supporting capacity for any other Pools, "
+ "Volumes, or LogicalDisks that have been allocated from "
+ "this Pool. The Extent returned MUST be a component "
+ "Extent of the Pool or subdivisions of a component "
+ "Extent, the subdivisions themselves represented as "
+ "Extents." ),
+ ValueMap { "0", "1", "2", "3", "4", "5", "6", "..",
+ "4098..32767", "32768..65535" },
+ Values { "Completed with No Error", "Not Supported",
+ "Unknown", "Timeout", "Failed", "Invalid Parameter",
+ "In Use", "DMTF Reserved", "Method Reserved",
+ "Vendor Specific" }]
+ uint32 GetAvailableExtents(
+ [IN, Description (
+ "The StorageSetting (Goal) for which supported "
+ "extents should be retrieved as available. \n"
+ "If a NULL is passed for the Goal, the method will "
+ "return all available extents, regardless of the "
+ "goal. There exists a possibility of error in "
+ "creating a Pool, Volume, or LogicalDisk retrieved "
+ "in this manner." )]
+ CIM_StorageSetting REF Goal,
+ [OUT, Description (
+ "List of references to available StorageExtents, or "
+ "subclass instances." )]
+ CIM_StorageExtent REF AvailableExtents[]);
+
+};