Previous  |  Next  >  
Product: Storage Foundation Guides   
Manual: Storage Foundation 4.1 Intelligent Storage Provisioning Administrator's Guide   

Storage Selection Rules

The following sections describe storage selection rules:

See Compound Rules for details of how to limit the scope of interpretation of rules to the components of an application volume, such as its plexes, columns and logs.

Multiple arguments to the confineto, exclude and select storage selection rules can be combined using the operators listed in Storage Selection Rule Operators. If an operator is not specified, ISP uses the default operator for the rule.


Note   Note    The =, !=, <, <=, > and >= comparative operators can be used with the confineto, exclude and select storage selection rules. However, the operand arguments to the <, <=, > and >= operators must be signed or unsigned integers that are capable of being represented by 64 or fewer bits. If the operands are character strings, real numbers, or are integers longer than 64 bits, the result of the comparison may be incorrect.

affinity

An affinity rule expresses attraction between VxVM objects. Objects that conform to this rule share as many attribute values as possible.


Note   Note    The affinity rule does not take any rule operators.

The following example demonstrates the application of affinity rules:

  • Allocate storage from as few enclosures as possible:

  • desired affinity "Enclosure"

confineto

A confineto rule restricts a VxVM object, such as volume or mirror, to being configured from a specific set of LUNs. The scope of the rule determines the VxVM object for which the restrictions apply. When a confineto rule is used at the top level, it usually applies to the volume. Refer to Compound Rules for details on confining a mirror, column or log to a set of LUNs.


Note   Note    Expressions involving confineto can use the allof, anyof, eachof, noneof and oneof operators to combine multiple arguments. By default, ISP applies the eachof operator. See Storage Selection Rule Operators for more information.

The expression argument of a confineto rule usually consists of one or more LUN attributes that can be specified either with or without an accompanying value. The LUN attributes can be auto-discovered or user-defined. A value that is not quoted is interpreted as the name of a variable whose value is to be determined when a VxVM object is created.

The following examples demonstrate the application of confineto rules:

  • Use storage having the same value for the user-defined attribute, Room:

  • confineto "Room"
  • By default, the eachof operator is assumed for a confineto rule. The following rules, which specify that storage is only to be assigned from EMC LUNs or from LUNs that share the same value for the Room attribute, are equivalent:

  • confineto "Room", "VendorName"="EMC"
    confineto eachof("Room", "VendorName"="EMC")
  • Use only EMC LUNs that have their Room attribute set to the value Room1:

  • confineto eachof("VendorName"="EMC", "Room"="Room1")
  • Use only storage with VendorName set to the value of the variable VENDOR_NAME, and with Room set to the value of the variable ROOM_NAME:

  • confineto eachof("VendorName"=VENDOR_NAME, "Room"=ROOM_NAME)
    Note   Note    VENDOR_NAME and ROOM_NAME are variables that are defined in a capability. Their values are resolved when you enter values for the capability during the creation of a VxVM object.
  • Create a volume using one or more LUNs from either or both of the enclosures EMC1 and EMC2, and not from anywhere else:

  • confineto anyof("Enclosure"="EMC1", "Enclosure"="EMC2")
    Note   Note    When the anyof operator is used, ISP takes storage from the operands in the order that they are specified. In this example, ISP first attempts to select LUNs from the enclosure EMC1, and if this is not possible, it selects LUNs from the enclosure EMC2. If this also is not possible, ISP selects LUNs from both EMC1 and EMC2.
  • Use LUNs that originate either only from EMC or only from Hitachi:

  • confineto oneof("VendorName"="EMC", "VendorName"="Hitachi")
    Note   Note    When the oneof operator is used, ISP takes storage from the operands in the order that they are specified. In this example, ISP first attempts to select EMC LUNs, and if this is not possible, it selects Hitachi LUNs.
  • Confine storage to be allocated from either Room1 or from Room2. If storage is selected from Room1, Hitachi LUNs cannot be used. Similarly, if storage is selected from Room2, EMC LUNs cannot be used.

  • confineto oneof(eachof("Room"="Room1",noneof("VendorName"="Hitachi")), \
    eachof("Room"="Room2", noneof("VendorName"="EMC")))

    Note   Note    In this example, ISP first attempts to select LUNs from Room1, and if this is not possible, it selects LUNs from Room2.
  • Do not use LUNs from Room1 or LUNs from vendor EMC:

  • confineto noneof("VendorName"="EMC", "Room"="Room1")
    Note   Note    The noneof operator implies the logical union of its operands.
  • Allocate storage from LUNs in Room1 and Room2:

  • confineto allof("Room"="Room1", "Room"="Room2")
    Note   Note    In the absence of a specified operator, the eachof operator is assumed.
  • Do not mix EMC LUNs with LUNs from other vendors when allocating storage:

  • confineto oneof("VendorName"="EMC", noneof("VendorName"="EMC"))
  • Allocate storage only from LUNs that have a Columns attribute value greater than 1, and a Parity attribute value of 0:

  • confineto eachof("Columns">"1", "Parity"="0"))

exclude

An exclude rule omits a set of LUNs from being allocated to a VxVM object.


Note   Note    Expressions involving exclude can only use the allof and eachof operators to combine multiple arguments. By default, ISP applies the allof operator. See Storage Selection Rule Operators for more information.

The following examples demonstrate the application of exclude rules:

  • The following rules, which prevent storage being assigned from EMC or Hitachi disks, are equivalent:

  • exclude "VendorName"="EMC", "VendorName"="Hitachi"
    exclude allof("VendorName"="EMC", "VendorName"="Hitachi")
  • Do not use EMC LUNs from Room1:

  • exclude eachof("VendorName"="EMC", "Room"="Room1")
  • Do not use disks with VendorName set to the value of the variable VENDOR_NAME:

  • exclude "VendorName"=VENDOR_NAME
    Note   Note    VENDOR_NAME is a variable that is defined in a capability. Its value is resolved when the VxVM object is created.
  • Exclude certain LUNs from the enclosure Enclr1:

  • exclude allof("DeviceName"="Enclr1_1", "DeviceName"="Enclr1_2")

multipath

A multipath rule specifies how tolerant a VxVM object is to the failure of a number of specified components. The rule defines how many paths a VxVM object should have available through each component.


Note   Note    The multipath rule does not take any rule operators.

The following examples demonstrate the application of multipath rules:

  • Tolerate the failure of one controller:

  • multipath 2 "Controller"
  • Tolerate the failure of one controller and one switch:

  • multipath 2 "Controller", 2 "Switch"

select

A select rule specifies which storage to use for creating VxVM objects. When used outside of a sub clause, this rule is applied to an entire volume.


Note   Note    Expressions involving select can use the allof, anyof, eachof, noneof and oneof operators to combine multiple arguments. By default, ISP applies the anyof operator. See Storage Selection Rule Operators for more information.

The following examples demonstrate the application of select rules:

  • The following rules, which try to allocate LUNs first from Room1, then from Room2 if unsuccessful, and then from both locations, are equivalent:

  • select "Room"="Room1", "Room"="Room2"
    select anyof("Room"="Room1", "Room"="Room2")
    Note   Note    When the anyof operator is used, ISP takes storage from the operands in the order that they are specified.
  • Use only EMC LUNs from Room1:

  • select eachof("VendorName"="EMC", "Room"="Room1")
    Note   Note    Here the eachof operator is used rather than the allof operator. The eachof operator implies the logical intersection of its operands. The allof operator implies the logical union of its operands.
  • Use the specified LUNs from an enclosure:

  • select "DeviceName"="Enclr1_1","DeviceName"="Enclr1_2"

separateby

A separateby rule is used to describe separation between VxVM objects. This is typically used to define failure domains to provide greater reliability by avoiding a single point of failure. For example, a separateby rule can be used to define that the mirrors of a volume should not share a controller. This makes the volume resilient to the failure of a controller.


Note   Note    The separateby rule does not take any rule operators.

The following examples demonstrate the application of separateby rules:

  • Allocate VxVM objects on separate enclosures:

  • separateby "Enclosure"
  • Allocate VxVM objects so that each object tolerates the failure of one controller and also uses LUNs from different manufacturers:

  • separateby "VendorName", "Controller"

strong separateby

The strong separateby rule is a more restrictive form of separateby rule, which does not permit any sharing of attributes for the storage that is assigned to VxVM objects.


Note   Note    The strong separateby rule does not take any rule operators.

The following example demonstrates the application of the strong separateby rule:

  • Allocate VxVM objects so that each object is configured on a totally independent set of spindles.

  • strong separateby "Spindles"

 ^ Return to Top Previous  |  Next  >  
Product: Storage Foundation Guides  
Manual: Storage Foundation 4.1 Intelligent Storage Provisioning Administrator's Guide  
VERITAS Software Corporation
www.veritas.com