// Copyright (c) 2008 DMTF. All rights reserved. [Version ( "2.18.0" ), UMLPackagePath ( "CIM::Core::Redundancy" ), Description ( "A class derived from SystemSpecificCollection that is a " "special collection of ManagedElements. This collection " "indicates that the aggregated elements together provide " "redundancy, or that redundancy is provided via sparing. All " "elements collected in a RedundancySet SHOULD be instantiations " "of the same object class." )] class CIM_RedundancySet : CIM_SystemSpecificCollection { [Description ( "RedundancyStatus provides information on the state of " "the RedundancyGroup. \'Fully Redundant\' (value=2) means " "that all of the configured redundancy is still " "available; \'Degraded Redundancy\' (3) means that some " "configured elements are degraded, missing or failed but " "that the number of elements in the set is still greater " "than the minimum required (\'MinNumberNeeded\'); " "\'Redundancy Lost\' (4) means that sufficient configured " "elements are missing or failed that no redundancy is " "available and the next failure experienced will cause " "overall failure. \'Overall Failure\' (5) means that " "there has been an overall failure of the RedundancySet." ), ValueMap { "0", "1", "2", "3", "4", "5" }, Values { "Unknown", "DMTF Reserved", "Fully Redundant", "Degraded Redundancy", "Redundancy Lost", "Overall Failure" }, ModelCorrespondence { "CIM_RedundancySet.MinNumberNeeded" }] uint16 RedundancyStatus; [Description ( "TypeOfSet provides information on the type of " "redundancy. N+1 (=2) indicates all members are active, " "are unaware and function independent of one another. " "However, there exist at least one extra member to " "achieve functionality. \'Sparing\' is implied (i.e. each " "member can be a spare for the other(s). An example of " "N+1 is a system that has 2 power supplies, but needs " "only 1 power supply to functioning properly. N+1 is a " "special case of N+M redundancy where M=1. A value of N+1 " "(=2) shall be used for N+M redundancy. - Load Balanced " "(=3) indicates all members are active. However, there " "functionality is not independent of each other. Their " "functioning is determined by some sort of load balancing " "algrothim (implemented in hardware and/or software). " "\'Sparing\' is implied (i.e. each member can be a spare " "for the other(s). \n" "- Sparing (=4) indicates that all members are active and " "are aware of each others. However, their functionality " "is independent until failover. Each member can be a " "spare for the other(s). \n" "- Limited Sparing (=5) indicates that all members are " "active, and they may or may not be aware of each and " "they are not spares for each other. Instead, their " "redundancy is indicated by the IsSpare relationship." ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "0x8000.." }, Values { "Unknown", "Other", "N+1", "Load Balanced", "Sparing", "Limited Sparing", "DMTF Reserved", "Vendor Reserved" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_RedundancySet.OtherTypeOfSet" }] uint16 TypeOfSet[]; [Description ( "MinNumberNeeded indicates the smallest number of " "elements that MUST be operational in order to function. " "For example, in an N+1 redundancy relationship, the " "MinNumberNeeded property is set equal to N. In a " "\'LimitedSparing\' environment, this property is " "meaningless and SHOULD be set to zero." ), MinValue ( 0 )] uint32 MinNumberNeeded; [Description ( "MaxNumberSupported indicates the largest number of " "elements that can participate in the RedundancySet. A " "value of 0 indicates there is no limit on the number of " "elements." )] uint32 MaxNumberSupported; [Description ( "VendorIdentifyingInfo captures the vendor identifying " "data for the RedundancySet. One example is the product " "name for a cluster." )] string VendorIdentifyingInfo; [Description ( "When the corresponding array entry in TypeOfSet[] is " "\'Other\', this entry provides a string describing the " "type of set." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_RedundancySet.TypeOfSet" }] string OtherTypeOfSet[]; [Write, Description ( "The current load balance algorithm. \n" "Least Blocks, Least IO, and Address Region are used in " "storage device path redundancy drivers to optimize load " "balancing by routing requests to a path with the least " "queued blocks or IO requests, or based on locality of " "reference. \n" "\'Product Specific\' indicates that the algorithm is " "optimized for a particular type of product. Information " "about that product SHOULD be provided in an associated " "CIM_Product instance." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" }, Values { "Unknown", "Other", "No Load Balancing", "Round Robin", "Least Blocks", "Least IO", "Address Region", "Product Specific" }, ModelCorrespondence { "CIM_RedundancySet.OtherLoadBalanceAlgorithm" }] uint16 LoadBalanceAlgorithm = 2; [Write, Description ( "When LoadBalanceAlgorithm is Other, this property " "describes the algorithm." ), ModelCorrespondence { "CIM_RedundancySet.LoadBalanceAlgorithm" }] string OtherLoadBalanceAlgorithm; [Description ( "This method forces a failover from one ManagedElement to " "another. There are two parameters to the Failover " "method. \n" "- FailoverFrom is a reference to an \'active\' " "ManagedElement that will become inactive after the " "method. This element SHOULD be part of the RedundancySet " "via a MemberOfCollection relationship. \n" "- FailoverTo is a reference to the ManagedElement that " "will take over for the FailoverFrom element. This " "element SHOULD either be a member of the RedundancySet " "or be associated with the RedundancySet via an IsSpare " "relationship. \n" "\n" "Upon sucessful completion: \n" "- the FailoverTo element SHOULD be associated to the " "RedundancySet via MemberOfCollection. \n" "- the FailFrom element SHOULD either still be associated " "to the RedundandySet via MemberOfCollection with a " "OperationalStatus or EnableState that indicates it not " "active, or it SHOULD be associated to the \'Spared\' " "collection via the MemberOfCollection association." ), ValueMap { "0", "1", "2", "3", "4", "..", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Busy/In Use", "Paramter Error", "DMTF Reserved", "Vendor Reserved" }] uint32 Failover( [IN, Description ( "The primary ManagedSystemElement that will become " "inactive after the method." )] CIM_ManagedElement REF FailoverFrom, [IN, Description ( "The ManagedSystemElement that will take over from " "the primary MSE." )] CIM_ManagedElement REF FailoverTo); };