Sun Cluster Data Services Planning and Administration Guide for Solaris OS

Freeing Node Resources by Offloading Noncritical Resource Groups


Note –

The use of strong negative affinities between resource groups provides a simpler method for offloading noncritical resource groups. For more information, see Distributing Online Resource Groups Among Cluster Nodes.


Prioritized Service Management (RGOffload) enables your cluster automatically to free a node's resources for critical data services. Use RGOffload when the startup of a critical failover data service requires a noncritical, scalable or failover data service to be brought offline. Use RGOffload to offload resource groups that contain noncritical data services.


Note –

The critical data service must be a failover data service. The data service to be offloaded can be a failover or scalable data service.


ProcedureHow to Set Up an RGOffload Resource

Steps
  1. Become superuser on a cluster member.

  2. Determine whether the RGOffload resource type is registered.

    The following command prints a list of resource types.


    # scrgadm -p|egrep SUNW.RGOffload
    
  3. If necessary, register the resource type.


    # scrgadm -a -t SUNW.RGOffload
    
  4. Set the Desired_primaries property to zero in each resource group that the RGOffload resource is to be offload.


    # scrgadm -c -g offload-rg -y Desired_primaries=0
    
  5. Add the RGOffload resource to the critical failover resource group and set the extension properties.

    Do not place a resource group on more than one resource's rg_to_offload list. Placing a resource group on multiple rg_to_offload lists might cause the resource group to be taken offline and brought back online repeatedly.

    For a description of RGOffload extension properties, see Configuring RGOffload Extension Properties.


    # scrgadm -aj rgoffload-resource \
    -t SUNW.RGOffload -g critical-rg \
    -x rg_to_offload=offload-rg-1, offload-rg-2, ... \
    -x continue_to_offload=TRUE \
    -x max_offload_retry=15
    

    Note –

    Extension properties other than rg_to_offload are shown with default values here. rg_to_offload is a comma-separated list of resource groups that are not dependent on each other. This list cannot include the resource group to which the RGOffload resource is being added.


  6. Enable the RGOffload resource.


    # scswitch -ej rgoffload-resource
    
  7. Set the dependency of the critical failover resource on the RGOffload resource.


    # scrgadm -c -j critical-resource \
    -y Resource_dependencies=rgoffload-resource
    

    You can also use Resource_dependencies_weak. Using Resource_dependencies_weak on the RGOffload resource type allows the critical failover resource to start even if errors are encountered during offload of offload-rg.

  8. Bring online the resource group that is to be offloaded


    # scswitch -z -g offload-rg, offload-rg-2, ... -h [nodelist]

    The resource group remains online on all nodes where the critical resource group is offline. The fault monitor prevents the resource group from running on the node where the critical resource group is online.

    In Step 4, Desired_primaries for resource groups that are to be offloaded was set to 0. Therefore, the -Zoption cannot bring these resource groups online.

  9. If the critical failover resource group is not online, bring it online.


    # scswitch -Z -g critical-rg
    

Example 2–39 Configuring an RGOffload Resource

This example shows how to configure the RGOffload resource rgofl as follows:


[Determine whether the SUNW.RGOffload resource type is registered.]
# scrgadm -p|egrep SUNW.RGOffload
 
[If needed, register the resource type.]
# scrgadm -a -t SUNW.RGOffload

[Set the Desired_primaries to zero in each resource group to be 
offloaded by the RGOffload resource.]
# scrgadm -c -g IWS-SC-2 -y Desired_primaries=0
# scrgadm -c -g IWS-SC -y Desired_primaries=0

[Add the RGOffload resource to the critical resource group and set 
the extension properties.]
# scrgadm -aj rgofl -t SUNW.RGOffload -g oracle_rg \
-x rg_to_offload=IWS-SC,IWS-SC-2 -x continue_to_offload=TRUE \
-x max_offload_retry=15

[Enable the RGOffload resource.]
# scswitch -ej rgofl

[Set the dependency of the critical failover resource to the RGOffload resource.]
# scrgadm -c -j oracle-server-rs -y Resource_dependencies=rgofl

[Bring online on all nodes the resource groups that are to be offloaded.]
# scswitch -z -g IWS-SC,IWS-SC-2 -h phys-triped-1,phys-triped-2,phys-triped-3

[If the critical failover resource group is not online, bring it online.]
# scswitch -Z -g oracle_rg

Configuring RGOffload Extension Properties

This section lists the extension properties that you can configure for RGOffload. The Tunable entry indicates when you can update the property.

Typically, you use the command line scrgadm -x parameter=value to configure extension properties when you create the RGOffload resource.

continue_to_offload (Boolean)

Specifies whether to continue offloading the remaining resource groups in the rg_to_offload list after an error in offloading a resource group.

This property is used only by the START method.

Default: True

Tunable: Any time

max_offload_retry (integer)

Specifies the number of attempts to offload a resource group during startup if cluster reconfiguration or resource group reconfiguration causes a failure to offload. The interval between successive retries is 10 seconds.

If max_offload_retry is too high, the START method of the RGOffload resource might time out before the maximum offload attempts are completed. To avoid this possibility, use the following formula to calculate max_offload_retry:

max-offload-retry < start-timeout /(num-rg × offload-retry-interval)
max-offload-retry

The value of the max_offload_retry extension property

start-timeout

The value of the Start_timeout of property the RGOffload resource

num-rg

The number of resource groups to that are to be offloaded

offload-retry-interval

The interval between successive retries, which is 10 seconds

This property is used only by the START method.

Default: 15

Tunable: Any time

rg_to_offload (string)

Specifies a comma-separated list of resource groups that are to be offloaded on a node when a critical failover resource group starts on that node. This property has no default and must be set.

This list should not contain resource groups that depend upon each other. RGOffload does not check for dependency loops in the list of resource groups that are set in the rg_to_offload extension property.

For example, if resource group RG-B depends in some way on RG-A, do not include both resource groups in rg_to_offload.

Default: None

Tunable: Any time

Fault Monitor

The RGOffload fault monitor prevents noncritical resource groups from being brought online on the node that masters the critical resource. The fault monitor might detect that a noncritical resource group is online on the node that masters the critical resource. In this situation, the fault monitor attempts to start the resource group on other nodes. The fault monitor also brings offline the resource group on the node that masters the critical resource.

Because desired_primaries for noncritical resource groups is set to 0, offloaded resource groups are not restarted on nodes that become available later. Therefore, the RGOffload fault monitor attempts to start noncritical resource groups on as many primaries as possible, until maximum_primaries limit is reached. However, the fault monitor keeps noncritical resource groups offline on the node that masters the critical resource.

RGOffload attempts to start all offloaded resource groups unless the resource groups are in the MAINTENANCE or UNMANAGED state. To place a resource group in an UNMANAGED state, use the scswitch command.


# scswitch -u -g resourcegroup

The value of the RGOffload resource's Thorough_probe_interval property specifies the interval between fault monitor probes.