Sun Cluster Data Services Planning and Administration Guide for Solaris OS

Appendix B Standard Properties

This appendix describes the standard resource type, resource, and resource group properties. This appendix also describes the resource property attributes that are available for changing system-defined properties and creating extension properties.


Note –

Property names for resource types, resources, and resource groups are not case sensitive. You can use any combination of uppercase and lowercase letters when you specify property names.


This appendix covers the following topics:

Resource Type Properties

The following information describes the resource type properties that are defined by the Sun Cluster software.

The property values are categorized as follows:

Resource type properties cannot be updated by administrative utilities with the exception of Installed_nodes and RT_system. Installed_nodes cannot be declared in the RTR file and can only be set by the cluster administrator. RT_system can be assigned an initial value in the RTR file, and can also be set by the cluster administrator.

Property names are shown first, followed by a description.


Note –

Resource type property names, such as API_version and Boot, are not case sensitive. You can use any combination of uppercase and lowercase letters when you specify property names.


API_version (integer)

The minimum version of the resource management API that is required to support this resource type implementation.

The following information summarizes the maximum API_version that is supported by each release of Sun Cluster.

Before and up to 3.1

2

3.1 10/03

3

3.1 4/04

4

3.1 9/04

5

3.1 8/05

6

3.2

7

Declaring a value for API_version that is greater than 2 in the RTR file prevents that resource type from being installed on a version of Sun Cluster that supports a lower maximum version. For example, if you declare API_version=7 for a resource type, that resource type cannot be installed on any version of Sun Cluster that was released before 3.2.


Note –

If you do not declare this property or set this property to the default value (2), the data service can be installed on any version of Sun Cluster starting with Sun Cluster 3.0.


Category:

Optional

Default:

2

Tunable:

NONE

Boot (string)

An optional callback method: the path to the program that the RGM runs on a node or zone, which joins or rejoins the cluster when a resource of this type is already managed. This method initializes resources of this type as the Init method does.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Failover (boolean)

TRUE indicates that resources of this type cannot be configured in any group that can be online on multiple nodes or zones at the same time.

The following table shows how to use this resource type property in combination with the Scalable resource property.

Value of the Failover Resource Type

Value of the Scalable Resource

Description 

TRUE

TRUE

Do not specify this illogical combination. 

TRUE

FALSE

Specify this combination for a failover service. 

FALSE

TRUE

Specify this combination for a scalable service that uses a SharedAddress resource for network load balancing.

The Sun Cluster Concepts Guide for Solaris OS describes SharedAddress in more detail.

FALSE

FALSE

Although it is an unusual combination, you can use this combination to select a multi-master service that does not use network load balancing. 

The description of Scalable in the r_properties(5) man page and Chapter 3, Key Concepts for System Administrators and Application Developers, in Sun Cluster Concepts Guide for Solaris OS contain additional information.

Category:

Optional

Default:

FALSE

Tunable:

NONE

Fini (string)

An optional callback method: the path to the program that the RGM runs when a resource of this type is no longer managed by the RGM.

The Fini method usually undoes any initializations that were performed by the Init method.

The RGM executes Fini on each node or zone on which the resource becomes unmanaged when the following situations arise:

  • The resource group that contains the resource is switched to an unmanaged state. In this case, the RGM executes the Fini method on all nodes and zones in the node list.

  • The resource is deleted from a managed resource group. In this case, the RGM executes the Fini method on all nodes and zones in the node list.

  • A node or zone is deleted from the node list of the resource group that contains the resource. In this case, the RGM executes the Fini method on only the deleted node or zone.

A “node list” is either the resource group's Nodelist or the resource type's Installed_nodes list. Whether “node list” refers to the resource group's Nodelist or the resource type's Installed_nodes list depends on the setting of the resource type's Init_nodes property. The Init_nodes property can be set to RG_nodelist or RT_installed_nodes. For most resource types, Init_nodes is set to RG_nodelist, the default. In this case, both the Init and Fini methods are executed on the nodes and zones that are specified in the resource group's Nodelist.

The type of initialization that the Init method performs defines the type of cleanup that the Fini method that you implement needs to perform, as follows:

  • Cleanup of node-specific configuration.

  • Cleanup of cluster-wide configuration.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Global_zone (boolean)

A Boolean value that, if declared in the RTR file, indicates whether the methods of this resource type execute in the global zone. If this property is set to TRUE, methods execute in the global zone even if the resource group that contains the resource runs in a non-global zone. Set this property to TRUE only for services that can be managed only from the global zone, such as network addresses and file systems.


Caution – Caution –

Do not register a resource type for which the Global_zone property is set to TRUE unless the resource type comes from a known and trusted source. Resource types for which this property is set to TRUE circumvent zone isolation and present a risk.


Category:

Optional

Default:

FALSE

Tunable:

ANYTIME

Init (string)

An optional callback method: the path to the program that the RGM runs when a resource of this type becomes managed by the RGM.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Init_nodes (enum)

Indicates the nodes or zones on which the RGM is to call the Init, Fini, Boot, and Validate methods. You can set this property to RG_PRIMARIES (just the nodes or zones that can master the resource) or RT_INSTALLED_NODES (all nodes or zones on which the resource type is installed).

Category:

Optional

Default:

RG_PRIMARIES

Tunable:

NONE

Installed_nodes (string_array)

A list of the cluster node or zone names on which the resource type can be run. The RGM automatically creates this property. The cluster administrator can set the value. You cannot declare this property in the RTR file.

Category:

The cluster administrator can configure this property

Default:

All cluster nodes and zones

Tunable:

ANYTIME

Is_logical_hostname (boolean

TRUE indicates that this resource type is some version of the LogicalHostname resource type that manages failover Internet Protocol (IP) addresses.

Category:

Query-only

Default:

No default

Tunable:

NONE

Is_shared_address (boolean)

TRUE indicates that this resource type is some version of the SharedAddress resource type that manages shared Internet Protocol (IP) addresses.

Category:

Query-only

Default:

No default

Tunable:

NONE

Monitor_check (string)

An optional callback method: the path to the program that the RGM runs before performing a monitor-requested failover of a resource of this type. If the monitor-check program exits with nonzero on a node or zone, any attempt to fail over to that node or zone as a result of calling scha_control with the GIVEOVER tag is prevented.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Monitor_start (string)

An optional callback method: the path to the program that the RGM runs to start a fault monitor for a resource of this type.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Monitor_stop (string)

A callback method that is required if Monitor_start is set: the path to the program that the RGM runs to stop a fault monitor for a resource of this type.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Pkglist (string_array)

An optional list of packages that are included in the resource type installation.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Postnet_stop (string)

An optional callback method: the path to the program that the RGM runs after calling the Stop method of any network-address resources on which a resource of this type depends. After the network interfaces are configured down, this method must perform Stop actions.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Prenet_start (string)

An optional callback method: the path to the program that the RGM runs before the RGM calls the Start method of any network-address resources on which a resource of this type depends. This method performs Start actions that must be performed before network interfaces are configured.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Proxy (boolean)

A Boolean value that indicates whether a resource of this type is a proxy resource.

A proxy resource is a Sun Cluster resource that imports the state of a resource from another cluster framework such as Oracle Cluster Ready Services (CRS). Oracle CRS, which is now known as Oracle clusterware CRS, is a platform-independent set of system services for cluster environments.

If set to TRUE, the resource is a proxy resource.

Category:

Optional

Default:

FALSE

Tunable:

ANYTIME

Resource_list (string_array)

The list of all resources of the resource type. The cluster administrator does not set this property directly. Rather, the RGM updates this property when the cluster administrator adds or removes a resource of this type to or from any resource group.

Category:

Query-only

Default:

Empty list

Tunable:

NONE

Resource_type (string)

The name of the resource type. To view the names of the currently registered resource types, use:

resourcetype show +

In Sun Cluster 3.1 and Sun Cluster 3.2, a resource type name includes the version, which is mandatory:

vendor-id.resource-type:rt-version

The three components of the resource type name are properties that are specified in the RTR file as vendor-id, resource-type, and rt-version. The resourcetype command inserts the period (.) and colon (:) delimiters. The rt-version suffix of the resource type name is the same value as the RT_version property. To ensure that the vendor-id is unique, use the stock symbol of the company that is creating the resource type. Resource type names that were created before Sun Cluster 3.1 continue to use the syntax:

vendor-id.resource-type

Category:

Required

Default:

Empty string

Tunable:

NONE

RT_basedir (string)

The directory path that is used to complete relative paths for callback methods. This path must be set to the directory in which the resource type packages are installed. The path must be a complete path, that is, it must start with a forward slash (/).

Category:

Required unless all method path names are absolute

Default:

No default

Tunable:

NONE

RT_description (string)

A brief description of the resource type.

Category:

Conditional

Default:

Empty string

Tunable:

NONE

RT_system (boolean)

If the RT_system property is TRUE for a resource type, you cannot delete the resource type (resourcetype unregister resource-type-name). This property prevents the accidental deletion of resource types, such as LogicalHostname, that are used to support the cluster infrastructure. However, you can apply the RT_system property to any resource type.

To delete a resource type whose RT_system property is set to TRUE, you must first set the property to FALSE. Use care when you delete a resource type whose resources support cluster services.

Category:

Optional

Default:

FALSE

Tunable:

ANYTIME

RT_version (string)

Starting with the Sun Cluster 3.1 release, a mandatory version string of this resource type implementation. This property was optional in Sun Cluster 3.0. The RT_version is the suffix component of the full resource type name.

Category:

Conditional/Explicit or Required

Default:

No default

Tunable:

NONE

Single_instance (boolean)

If TRUE, indicates that only one resource of this type can exist in the cluster.

Category:

Optional

Default:

FALSE

Tunable:

NONE

Start (string)

A callback method: the path to the program that the RGM runs to start a resource of this type.

Category:

Required unless the RTR file declares a Prenet_start method

Default:

No default

Tunable:

NONE

Stop (string)

A callback method: the path to the program that the RGM runs to stop a resource of this type.

Category:

Required unless the RTR file declares a Postnet_stop method

Default:

No default

Tunable:

NONE

Update (string)

An optional callback method: the path to the program that the RGM runs when properties of a running resource of this type are changed.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Validate (string)

An optional callback method: the path to the program that the RGM runs to check values for properties of resources of this type.

Category:

Conditional or Explicit

Default:

No default

Tunable:

NONE

Vendor_ID (string)

See the Resource_type property.

Category:

Conditional

Default:

No default

Tunable:

NONE

Resource Properties

This section describes the resource properties that are defined by the Sun Cluster software.

The property values are categorized as follows:

The Tunable attribute, which is described in Resource Property Attributes, lists whether and when you can update resource properties, as follows:

FALSE or NONE

Never

TRUE or ANYTIME

Any time

AT_CREATION

When the resource is added to a cluster

WHEN_DISABLED

When the resource is disabled

Property names are shown first, followed by a description.

Affinity_timeout (integer)

Length of time in seconds during which connections from a given client IP address for any service in the resource are sent to the same server node or zone.

This property is relevant only when Load_balancing_policy is either Lb_sticky or Lb_sticky_wild. In addition, Weak_affinity must be set to FALSE.

This property is used only for scalable services.

Category:

Optional

Default:

No default

Tunable:

ANYTIME

Boot_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Cheap_probe_interval (integer)

The number of seconds between invocations of a quick fault probe of the resource. This property is created by the RGM and is available to the cluster administrator only if it is declared in the RTR file. This property is optional if a default value is specified in the RTR file.

If the Tunable attribute is not specified in the RTR file, the Tunable value for the property is WHEN_DISABLED.

Category:

Conditional

Default:

No default

Tunable:

WHEN_DISABLED

Extension properties

Extension properties as declared in the RTR file of the resource's type. The implementation of the resource type defines these properties. Resource Property Attributes contains information about the individual attributes that you can set for extension properties.

Category:

Conditional

Default:

No default

Tunable:

Depends on the specific property

Failover_mode (enum)

Modifies the recovery actions that the RGM takes when a resource fails to start or to stop successfully, or when a resource monitor finds a resource to be unhealthy and consequently requests a restart or failover.

NONE, SOFT, or HARD (method failures)

These settings affect only failover behavior when a start or stop method (Prenet_start, Start, Monitor_stop, Stop, Postnet_stop) fails. The RESTART_ONLY and LOG_ONLY settings can also affect whether the resource monitor can initiate the execution of the scha_control command or the scha_control() function. See the scha_control(1HA) and the scha_control(3HA) man pages. NONE indicates that the RGM is not to take any recovery action when one of the previously listed start or stop methods fails. SOFT or HARD indicates that if a Start or Prenet_start method fails, the RGM is to relocate the resource's group to a different node or zone. For Start or Prenet_start failures, SOFT and HARD are the same.

For failure of a stop method (Monitor_stop, Stop, or Postnet_stop), SOFT is the same as NONE. If Failover_mode is set to HARD when one of these stop methods fails, the RGM reboots the node or zone to force the resource group offline. The RGM might then attempt to start the group on another node or zone.

RESTART_ONLY or LOG_ONLY

Unlike NONE, SOFT, and HARD, which affect failover behavior when a start or stop method fails, RESTART_ONLY and LOG_ONLY affect all failover behavior. Failover behavior includes monitor-initiated (scha_control) restarts of resources and resource groups, and giveovers that are initiated by the resource monitor (scha_control). RESTART_ONLY indicates that the monitor can run scha_control to restart a resource or a resource group. The RGM allows Retry_count restarts within Retry_interval. If Retry_count is exceeded, no further restarts are permitted.


Note –

A negative value of Retry_count, which is permitted by some but not all resource types, specifies an unlimited number of resource restarts. A more dependable way to specify unlimited restarts is to do the following:

  • Set Retry_interval to a small value such as 1 or 0.

  • Set Retry_count to a large value such as 1000.

If the resource type does not declare the Retry_count and Retry_interval properties, an unlimited number of resource restarts is permitted.


If Failover_mode is set to LOG_ONLY, no resource restarts or giveovers are permitted. Setting Failover_mode to LOG_ONLY is the same as setting Failover_mode to RESTART_ONLY with Retry_count set to zero.

RESTART_ONLY or LOG_ONLY (method failures)

If a Prenet_start, Start, Monitor_stop, Stop, or Postnet_stop method fails, RESTART_ONLY and LOG_ONLY are the same as NONE. That is, the node or zone is neither failed over nor rebooted.

Effect of Failover_mode settings on a data service

The effect that each setting for Failover_mode has on a data service depends on whether the data service is monitored or unmonitored and whether it is based on the Data Services Development Library (DSDL).

  • A data service is monitored if it implements a Monitor_start method and monitoring of the resource is enabled. The RGM starts a resource monitor by executing the Monitor_start method after starting the resource itself. The resource monitor probes the health of the resource. If the probes fail, the resource monitor might request a restart or a failover by calling the scha_control() function. For DSDL-based resources, probes might reveal partial failure (degradation) or a complete failure of the data service. Repeated partial failures accumulate to a complete failure.

  • A data service is unmonitored if it does not provide a Monitor_start method or monitoring of the resource has been disabled.

  • DSDL-based data services include those that are developed with Agent Builder, through the GDS, or by using the DSDL directly. Some data services, HA Oracle for example, were developed without using the DSDL.

NONE, SOFT, or HARD (probe failures)

If you set Failover_mode to NONE, SOFT, or HARD and the data service is a monitored DSDL-based service, and if the probe fails completely, the monitor calls the scha_control() function to request a restart of the resource. If probes continue to fail, the resource is restarted up to a maximum of Retry_count number of times within Retry_interval. If the probes fail again after the Retry_count number of restarts is reached, the monitor requests a failover of the resource's group to another node or zone.

If you set Failover_mode to NONE, SOFT, or HARD and the data service is an unmonitored DSDL-based service, the only failure that is detected is the death of the resource's process tree. If the resource's process tree dies, the resource is restarted.

If the data service is a not a DSDL-based service, the restart or failover behavior depends on how the resource monitor is coded. For example, the Oracle resource monitor recovers by restarting the resource or the resource group, or by failing over the resource group.

RESTART_ONLY (probe failures)

If you set Failover_mode to RESTART_ONLY and the data service is a monitored DSDL-based service, and if the probe fails completely, the resource is restarted Retry_count times within Retry_interval. However, if Retry_count is exceeded, the resource monitor exits, sets the resource status to FAULTED, and generates the status message “Application faulted, but not restarted. Probe quitting.” At this point, although monitoring is still enabled, the resource is effectively unmonitored until it is repaired and restarted by the cluster administrator.

If you set Failover_mode to RESTART_ONLY and the data service is an unmonitored DSDL-based service, and if the process tree dies, the resource is not restarted.

If a monitored data service is not DSDL-based, the recovery behavior depends on how the resource monitor is coded. If you set Failover_mode to RESTART_ONLY, the resource or resource group can be restarted by a call to the scha_control() function Retry_count times within Retry_interval. If the resource monitor exceeds Retry_count, the attempt to restart fails. If the monitor calls the scha_control() function to request a failover, that request fails as well.

LOG_ONLY (probe failures)

If you set Failover_mode to LOG_ONLY for any data service, all scha_control() requests either to restart the resource or resource group or to fail over the group are precluded. If the data service is DSDL-based, a message is logged when a probe completely fails, but the resource is not restarted. If a probe fails completely more than Retry_count times within Retry_interval, the resource monitor exits, sets the resource status to FAULTED, and generates the status message “Application faulted, but not restarted. Probe quitting.” At this point, although monitoring is still enabled, the resource is effectively unmonitored until it is repaired and restarted by the cluster administrator.

If you set Failover_mode to LOG_ONLY and the data service is an unmonitored DSDL-based service, and if the process tree dies, a message is logged but the resource is not restarted.

If a monitored data service is not DSDL-based, the recovery behavior depends on how the resource monitor is coded. If you set Failover_mode to LOG_ONLY, all scha_control() requests either to restart the resource or resource group or to fail over the group fail.

Category:

Optional

Default:

NONE

Tunable:

ANYTIME

Fini_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Init_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Load_balancing_policy (string)

A string that defines the load-balancing policy in use. This property is used only for scalable services. The RGM automatically creates this property if the Scalable property is declared in the RTR file. Load_balancing_policy can take the following values:

Lb_weighted (the default). The load is distributed among various nodes according to the weights set in the Load_balancing_weights property.

Lb_sticky. A given client (identified by the client IP address) of the scalable service is always sent to the same node of the cluster.

Lb_sticky_wild. A given client's IP address that connects to an IP address of a wildcard sticky service is always sent to the same cluster node, regardless of the port number to which the IP address is coming.

Category:

Conditional or Optional

Default:

Lb_weighted

Tunable:

AT_CREATION

Load_balancing_weights (string_array)

For scalable resources only. The RGM automatically creates this property if the Scalable property is declared in the RTR file. The format is weight@node,weight@node, where weight is an integer that reflects the relative portion of load that is distributed to the specified node. The fraction of load that is distributed to a node is the weight for this node, divided by the sum of all weights. For example, 1@1,3@2 specifies that node 1 receives one-fourth of the load and node 2 receives three-fourths of the load. The empty string (“”), the default, sets a uniform distribution. Any node that is not assigned an explicit weight receives a default weight of 1.

If the Tunable attribute is not specified in the RTR file, the Tunable value for the property is ANYTIME. Changing this property revises the distribution for new connections only.

Category:

Conditional or Optional

Default:

The empty string (“”)

Tunable:

ANYTIME

Monitor_check_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Monitor_start_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Monitor_stop_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Monitored_switch (enum)

Set to Enabled or Disabled by the RGM if the cluster administrator enables or disables the monitor with an administrative utility. If Disabled, monitoring on the resource is stopped, although the resource itself remains online. The Monitor_start method is not called until monitoring is re-enabled. If the resource does not have a monitor callback method, this property does not exist.

Category:

Query-only

Default:

No default

Tunable:

NONE

Network_resources_used (string_array)

A list of logical-hostname or shared-address network resources on which the resource has a dependency. This list contains all network-address resources that appear in the properties Resource_dependencies, Resource_dependencies_weak, Resource_dependencies_restart, or Resource_dependencies_offline_restart.

The RGM automatically creates this property if the Scalable property is declared in the RTR file. If Scalable is not declared in the RTR file, Network_resources_used is unavailable unless it is explicitly declared in the RTR file.

This property is updated automatically by the RGM, based on the setting of the resource-dependencies properties. You do not need to set this property directly. However, if you add a resource name to this property, the resource name is automatically added to the Resource_dependencies property. In addition, if you delete a resource name from this property, the resource name is automatically deleted from any resource-dependencies property in which the resource also appears.

Category:

Conditional or Optional

Default:

The empty list

Tunable:

ANYTIME

Num_resource_restarts on each cluster node or zone (integer)

The number of restart requests that have occurred on this resource within the past n seconds, where n is the value of the Retry_interval property.

A restart request is any of the following calls:

  • The scha_control(1HA) command with the RESOURCE_RESTART argument.

  • The scha_control(3HA) function with the SCHA_RESOURCE_RESTART argument.

  • The scha_control command with the RESOURCE_IS_RESTARTED argument.

  • The scha_control() function with the SCHA_RESOURCE_IS_RESTARTED argument.

The RGM resets the restart counter to zero for a given resource on a given node or zone whenever that resource executes one of the following:

  • The scha_control command with the GIVEOVER argument.

  • The scha_control() function with the SCHA_GIVEOVER argument.

The counter is reset whether the giveover attempt succeeds or fails.

If a resource type does not declare the Retry_interval property, the Num_resource_restarts property is not available for resources of that type.

Category:

Query-only

Default:

No default

Tunable:

See description

Num_rg_restarts on each cluster node or zone (integer)

The number of resource group restart requests that have occurred for this resource within the past n seconds, where n is the value of the Retry_interval property.

A resource group restart request is either of the following calls:

If a resource type does not declare the Retry_interval property, the Num_rg_restarts property is not available for resources of that type.

Category:

Query-only

Default:

No default

Tunable:

See description

On_off_switch (enum)

Set to Enabled or Disabled by the RGM if the cluster administrator enables or disables the resource with an administrative utility. If disabled, a resource is brought offline and has no callbacks run until it is re-enabled.

Category:

Query-only

Default:

No default

Tunable:

NONE

Port_list (string_array)

A list of port numbers on which the server is listening. Appended to each port number is a slash (/) followed by the protocol that is being used by that port, for example, Port_list=80/tcp or Port_list=80/tcp6,40/udp6.

You can specify the following protocol values:

  • tcp, for TCP IPv4

  • tcp6, for TCP IPv6

  • udp, for UDP IPv4

  • udp6, for UDP IPv6

If the Scalable property is declared in the RTR file, the RGM automatically creates Port_list. Otherwise, this property is unavailable unless it is explicitly declared in the RTR file.

Setting up this property for Apache is described in the Sun Cluster Data Service for Apache Guide for Solaris OS.

Category:

Conditional or Required

Default:

No default

Tunable:

ANYTIME

Postnet_stop_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Prenet_start_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Proxied_service_instances

Includes information about the SMF services to be proxied by the resource. Its value is the path to a file that contains all the proxied SMF services. Each line in the file is dedicated to one SMF service and specifies svc fmri and the path to the corresponding service manifest file.

For example, if the resource has to manage two services, restarter_svc_test_1:default and restarter_svc_test_2:default, the file should include the following two lines:

<svc:/system/cluster/restarter_svc_test_1:default>,svc:/system/cluster/\
restarter_svc_test_1:default>,</var/svc/manifest/system/cluster/\
restarter_svc_test_1.xml>

<svc:/system/cluster/restarter_svc_test_2:default>,</var/svc/manifest/\
system/cluster/restarter_svc_test_2.xml>

Default: ""

Tunable: When_disabled

R_description (string)

A brief description of the resource.

Category:

Optional

Default:

The empty string

Tunable:

ANYTIME

Resource_dependencies (string_array)

A list of resources on which the resource has a strong dependency. A strong dependency determines the order of method calls.

A resource with resource dependencies, referred to as the dependent resource, cannot be started if any resource in the list, referred to as the depended-on resource, is not online. If the dependent resource and one of the depended-on resources in the list start at the same time, the RGM waits to start the dependent resource until the depended-on resource in the list starts. If the depended-on resource does not start, the dependent resource remains offline. The depended-on resource might not start because the resource group for the depended-on resource in the list remains offline or is in a Start_failed state. If the dependent resource remains offline because of a dependency on a depended-on resource in a different resource group that fails to start or is disabled or offline, the dependent resource's group enters a Pending_online_blocked state. If the dependent resource has a dependency on a depended-on resource in the same resource group that fails to start or is disabled or offline, the resource group does not enter a Pending_online_blocked state.

By default in a resource group, application resources have an implicit strong resource dependency on network address resources. Implicit_network_dependencies in Resource Group Properties contains more information.

Within a resource group, Prenet_start methods are run in dependency order before Start methods. Postnet_stop methods are run in dependency order after Stop methods. In different resource groups, the dependent resource waits for the depended-on resource to finish Prenet_start and Start before it runs Prenet_start. The depended-on resource waits for the dependent resource to finish Stop and Postnet_stop before it runs Stop.

To specify the scope of a dependency, append the following qualifiers, including the braces ({}), to the resource name when you specify this property.

{LOCAL_NODE}

Limits the specified dependency to a per-node or per-zone basis. The behavior of the dependent is affected by the depended-on resource only on the same node or zone. The dependent resource waits for the depended-on resource to start on the same node or zone. The situation is similar for stopping and restarting and enabling and disabling.

{ANY_NODE}

Extends the specified dependency to any node or zone. The behavior of the dependent is affected by the depended-on resource on any node or zone. The dependent resource waits for the depended-on resource to start on at least one primary node or zone before it starts itself. The situation is similar for stopping and restarting and enabling and disabling.

The dependency remains ANY_NODE, even if the dependent resource's resource group has a positive affinity for the depended-on resource's resource group.

{FROM_RG_AFFINITIES}

Specifies that the dependency is LOCAL_NODE or ANY_NODE, based on the RG_affinities relationship of the resource groups of the resources.

If the dependent resource's group has a positive affinity for the depended-on resource's group, and they are starting or stopping on the same node, then the dependency is considered to be LOCAL_NODE. If no such positive affinity exists, or if the groups are starting on different nodes, then the dependency is considered to be ANY_NODE.

If you do not specify a qualifier, the FROM_RG_AFFINITIES qualifier is used by default.

Resource dependencies between two resources in the same resource group are always LOCAL_NODE.

Category:

Optional

Default:

The empty list

Tunable:

ANYTIME

Resource_dependencies_offline_restart (string_array)

A list of resources on which the resource has an offline-restart dependency. An offline-restart dependency determines the order of method calls.

This property works as Resource_dependencies does, with one addition. If any resource in the offline-restart dependency list, referred to as a depended-on resource, goes offline, the RGM triggers a restart of the resource with resource dependencies, referred to as the dependent resource. The dependent resource immediately stops and remains offline until the depended-on resource is restarted. After the depended-on resource in the list comes back online, the RGM restarts the dependent resource. This restart behavior occurs when the resource groups that contain the dependent and depended-on resources remain online.

The dependent resource cannot be started if any depended-on resource is not online. If the dependent resource and one of the depended-on resources in the list start at the same time, the RGM waits to start the dependent resource until the depended-on resource in the list starts. If the depended-on resource does not start, the dependent resource remains offline. The depended-on resource might not start because the resource group for the depended-on resource in the list remains offline or is in a Start_failed state. If the dependent resource remains offline because a depended-on resource in a different resource group fails to start or is disabled or offline, the dependent resource's group enters a Pending_online_blocked state. If a depended-on resource in the same resource group fails to start or is disabled or offline, the resource group does not enter a Pending_online_blocked state.

To specify the scope of a dependency, append the following qualifiers, including the braces ({}), to the resource name when you specify this property.

{LOCAL_NODE}

Limits the specified dependency to a per-node or per-zone basis. The behavior of the dependent is affected by the depended-on resource only on the same node or zone. The dependent resource waits for the depended-on resource to start on the same node or zone. The situation is similar for stopping and restarting and enabling and disabling.

{ANY_NODE}

Extends the specified dependency to any node or zone. The behavior of the dependent is affected by the depended-on resource on any node or zone. The dependent resource waits for the depended-on resource to start on at least one primary node or zone before it starts itself. The situation is similar for stopping and restarting and enabling and disabling.

The dependency remains ANY_NODE, even if the dependent resource's resource group has a positive affinity for the depended-on resource's resource group.

{FROM_RG_AFFINITIES}

Specifies that the dependency is LOCAL_NODE or ANY_NODE, based on the RG_affinities relationship of the resource groups of the resources.

If the dependent resource's group has a positive affinity for the depended-on resource's group, and they are starting or stopping on the same node, then the dependency is considered to be LOCAL_NODE. If no such positive affinity exists, or if the groups are starting on different nodes, then the dependency is considered to be ANY_NODE.

If you do not specify a qualifier, the FROM_RG_AFFINITIES qualifier is used by default.

Resource dependencies between two resources in the same resource group are always LOCAL_NODE.

Category:

Optional

Default:

The empty list

Tunable:

ANYTIME

Resource_dependencies_restart (string_array)

A list of resources on which the resource has a restart dependency. A restart dependency determines the order of method calls.

This property works as Resource_dependencies does, with one addition. If any resource in the restart dependency list, referred to as a depended-on resource, is restarted, the resource with resource dependencies, referred to as the dependent resource, is restarted. After the depended-on resource in the list comes back online, the RGM stops and restarts the dependent resource. This restart behavior occurs when the resource groups that contain the dependent and depended-on resources remain online.

A resource with resource dependencies, referred to as the dependent resource, cannot be started if any resource in the list, referred to as the depended-on resource, is not online. If the dependent resource and one of the depended-on resources in the list start at the same time, the RGM waits to start the dependent resource until the depended-on resource in the list starts. If the depended-on resource does not start, the dependent resource remains offline. The depended-on resource might not start because the resource group for the depended-on resource in the list remains offline or is in a Start_failed state. If the dependent resource remains offline because of a dependency on a depended-on resource in a different resource group that fails to start or is disabled or offline, the dependent resource's group enters a Pending_online_blocked state. If the dependent resource has a dependency on a depended-on resource in the same resource group that fails to start or is disabled or offline, the resource group does not enter a Pending_online_blocked state.

To specify the scope of a dependency, append the following qualifiers, including the braces ({}), to the resource name when you specify this property.

{LOCAL_NODE}

Limits the specified dependency to a per-node or per-zone basis. The behavior of the dependent is affected by the depended-on resource only on the same node or zone. The dependent resource waits for the depended-on resource to start on the same node or zone. The situation is similar for stopping and restarting and enabling and disabling.

{ANY_NODE}

Extends the specified dependency to any node or zone. The behavior of the dependent is affected by the depended-on resource on any node or zone. The dependent resource waits for the depended-on resource to start on at least one primary node or zone before it starts itself. The situation is similar for stopping and restarting and enabling and disabling.

The dependency remains ANY_NODE, even if the dependent resource's resource group has a positive affinity for the depended-on resource's resource group.

{FROM_RG_AFFINITIES}

Specifies that the dependency is LOCAL_NODE or ANY_NODE, based on the RG_affinities relationship of the resource groups of the resources.

If the dependent resource's group has a positive affinity for the depended-on resource's group, and they are starting or stopping on the same node, then the dependency is considered to be LOCAL_NODE. If no such positive affinity exists, or if the groups are starting on different nodes, then the dependency is considered to be ANY_NODE.

If you do not specify a qualifier, the FROM_RG_AFFINITIES qualifier is used by default.

Resource dependencies between two resources in the same resource group are always LOCAL_NODE.

Category:

Optional

Default:

The empty list

Tunable:

ANYTIME

Resource_dependencies_weak (string_array)

A list of resources on which the resource has a weak dependency. A weak dependency determines the order of method calls.

The RGM calls the Start methods of the resources in this list, referred to as the depended-on resources, before the Start method of the resource with resource dependencies, referred to as the dependent resource. The RGM calls the Stop methods of the dependent resource before the Stop methods of the depended-on resources. The dependent resource can still start if the depended-on resources fail to start or remain offline.

If the dependent resource and a depended-on resource in its Resource_dependencies_weak list start concurrently, the RGM waits to start the dependent resource until the depended-on resource in the list starts. If the depended-on resource in the list does not start, for example, if the resource group for the depended-on resource in the list remains offline or the depended-on resource in the list is in a Start_failed state, the dependent resource starts. The dependent resource's resource group might enter a Pending_online_blocked state temporarily as resources in the dependent resource's Resource_dependencies_weak list start. When all depended-on resources in the list have started or failed to start, the dependent resource starts and its group reenters the Pending_online state.

Within a resource group, Prenet_start methods are run in dependency order before Start methods. Postnet_stop methods are run in dependency order after Stop methods. In different resource groups, the dependent resource waits for the depended-on resource to finish Prenet_start and Start before it runs Prenet_start. The depended-on resource waits for the dependent resource to finish Stop and Postnet_stop before it runs Stop.

To specify the scope of a dependency, append the following qualifiers, including the braces ({}), to the resource name when you specify this property.

{LOCAL_NODE}

Limits the specified dependency to a per-node or per-zone basis. The behavior of the dependent is affected by the depended-on resource only on the same node or zone. The dependent resource waits for the depended-on resource to start on the same node or zone. The situation is similar for stopping and restarting and enabling and disabling.

{ANY_NODE}

Extends the specified dependency to any node or zone. The behavior of the dependent is affected by the depended-on resource on any node or zone. The dependent resource waits for the depended-on resource to start on at least one primary node or zone before it starts itself. The situation is similar for stopping and restarting and enabling and disabling.

The dependency remains ANY_NODE, even if the dependent resource's resource group has a positive affinity for the depended-on resource's resource group.

{FROM_RG_AFFINITIES}

Specifies that the dependency is LOCAL_NODE or ANY_NODE, based on the RG_affinities relationship of the resource groups of the resources.

If the dependent resource's group has a positive affinity for the depended-on resource's group, and they are starting or stopping on the same node, then the dependency is considered to be LOCAL_NODE. If no such positive affinity exists, or if the groups are starting on different nodes, then the dependency is considered to be ANY_NODE.

If you do not specify a qualifier, the FROM_RG_AFFINITIES qualifier is used by default.

Resource dependencies between two resources in the same resource group are always LOCAL_NODE.

Category:

Optional

Default:

The empty list

Tunable:

ANYTIME

Resource_name (string)

The name of the resource instance. This name must be unique within the cluster configuration and cannot be changed after a resource has been created.

Category:

Required

Default:

No default

Tunable:

NONE

Resource_project_name (string)

The Solaris project name that is associated with the resource. Use this property to apply Solaris resource management features, such as CPU shares and resource pools, to cluster data services. When the RGM brings resources online, it starts the related processes under this project name. If this property is not specified, the project name is taken from the RG_project_name property of the resource group that contains the resource (see the rg_properties(5) man page). If neither property is specified, the RGM uses the predefined project name default. The specified project name must exist in the projects database(see the projects(1) man page and System Administration Guide: Solaris Containers-Resource Management and Solaris Zones).

This property is supported starting with the Solaris 9 OS.


Note –

Changes to this property take effect the next time that the resource is started.


Category:

Optional

Default:

Null

Tunable:

ANYTIME

Resource_state on each cluster node or zone (enum)

The RGM-determined state of the resource on each cluster node or zone. Possible states are Online, Offline, Start_failed, Stop_failed, Monitor_failed, Online_not_monitored, Starting, and Stopping.

You cannot configure this property.

Category:

Query-only

Default:

No default

Tunable:

NONE

Retry_count (integer)

The number of times that a monitor attempts to restart a resource if it fails.

If the Retry_count is exceeded, depending on the particular data service and the setting of the Failover_mode property, the monitor might perform one of the following actions:

  • Allow the resource group to remain on the current primary node or zone, even though the resource is in a faulted state

  • Request a failover of the resource group onto a different node or zone

This property is created by the RGM and is made available to the cluster administrator only if this property is declared in the RTR file. This property is optional if a default value is specified in the RTR file.

If the Tunable attribute is not specified in the RTR file, the Tunable value for the property is WHEN_DISABLED.


Note –

If you specify a negative value for this property, the monitor attempts to restart the resource an unlimited number of times.

However, some resource types do not allow you to set Retry_count to a negative value. A more dependable way to specify unlimited restarts is to do the following:

  • Set Retry_interval to a small value such as 1 or 0.

  • Set Retry_count to a large value such as 1000.


Category:

Conditional

Default:

See above

Tunable:

WHEN_DISABLED

Retry_interval (integer)

The number of seconds over which to count attempts to restart a failed resource. The resource monitor uses this property in conjunction with Retry_count. This property is created by the RGM and is available to the cluster administrator only if it is declared in the RTR file. This property is optional if a default value is specified in the RTR file.

If the Tunable attribute is not specified in the RTR file, the Tunable value for the property is WHEN_DISABLED.

Category:

Conditional

Default:

No default (see above)

Tunable:

WHEN_DISABLED

Scalable (boolean)

Indicates whether the resource is scalable, that is, whether the resource uses the networking load-balancing features of the Sun Cluster software.


Note –

You can configure a scalable resource group (which uses network load-balancing) to run in a non-global zone. However, you can run such a scalable resource group in only one zone per physical node.


If this property is declared in the RTR file, the RGM automatically creates the following scalable service properties for resources of that type: Affinity_timeout, Load_balancing_policy, Load_balancing_weights, Network_resources_used, Port_list, UDP_affinity, and Weak_affinity. These properties have their default values unless they are explicitly declared in the RTR file. The default for Scalable, when it is declared in the RTR file, is TRUE.

If this property is declared in the RTR file, it cannot be assigned a Tunable attribute other than AT_CREATION.

If this property is not declared in the RTR file, the resource is not scalable, you cannot tune this property, and no scalable service properties are set by the RGM. However, you can explicitly declare the Network_resources_used and Port_list properties in the RTR file. These properties can be useful in a nonscalable service as well as in a scalable service.

Using this resource property in combination with the Failover resource type property is described in more detail in the r_properties(5) man page.

Category:

Optional

Default:

No default

Tunable:

AT_CREATION

Start_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Status on each cluster node or zone (enum)

Set by the resource monitor with the scha_resource_setstatus command or the scha_resource_setstatus() or scha_resource_setstatus_zone() functions. Possible values are OK, DEGRADED, FAULTED, UNKNOWN, and OFFLINE. When a resource is brought online or offline, the RGM automatically sets the Status value if the Status value is not set by the resource's monitor or methods.

Category:

Query-only

Default:

No default

Tunable:

NONE

Status_msg on each cluster node or zone (string)

Set by the resource monitor at the same time as the Status property. When a resource is brought online or offline, the RGM automatically resets this property to the empty string if this property is not set by the resource's methods.

Category:

Query-only

Default:

No default

Tunable:

NONE

Stop_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Thorough_probe_interval (integer)

The number of seconds between invocations of a high-overhead fault probe of the resource. This property is created by the RGM and is available to the cluster administrator only if it is declared in the RTR file. This property is optional if a default value is specified in the RTR file.

If the Tunable attribute is not specified in the RTR file, the Tunable value for the property is WHEN_DISABLED.

Category:

Conditional

Default:

No default

Tunable:

WHEN_DISABLED

Type (string)

The resource type of which this resource is an instance.

Category:

Required

Default:

No default

Tunable:

NONE

Type_version (string)

Specifies which version of the resource type is currently associated with this resource. The RGM automatically creates this property, which cannot be declared in the RTR file. The value of this property is equal to the RT_version property of the resource's type. When a resource is created, the Type_version property is not specified explicitly, though it might appear as a suffix of the resource type name. When a resource is edited, the Type_version property can be changed to a new value.

The tunability of this property is derived from the following sources:

  • The current version of the resource type

  • The #$upgrade_from directive in the RTR file

Category:

See description

Default:

No default

Tunable:

See description

UDP_affinity (boolean)

If this property is set to TRUE, sends all UDP traffic from a given client to the same server node that currently handles all TCP traffic for the client.

This property is relevant only when Load_balancing_policy is either Lb_sticky or Lb_sticky_wild. In addition, Weak_affinity must be set to FALSE.

This property is only used for scalable services.

Category:

Optional

Default:

No default

Tunable:

WHEN_DISABLED

Update_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Validate_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of this method has failed. For a given resource type, timeout properties are defined only for those methods that are declared in the RTR file.

Category:

Conditional or Optional

Default:

3600 (one hour), if the method itself is declared in the RTR file

Tunable:

ANYTIME

Weak_affinity (boolean)

If this property is set to TRUE, this property enables the weak form of the client affinity.

The weak form of the client affinity allows connections from a given client to be sent to the same server node except when the following conditions occur:

  • A server listener starts in response to, for example, a fault monitor's restarting, a resource's failing over or switching over, or a node's rejoining a cluster after failing

  • Load_balancing_weights for the scalable resource changes because the cluster administrator performed an administrative action

Weak affinity provides a low-overhead alternative to the default form, both in terms of memory consumption and processor cycles.

This property is relevant only when Load_balancing_policy is either Lb_sticky or Lb_sticky_wild.

This property is only used for scalable services.

Category:

Optional

Default:

No default

Tunable:

WHEN_DISABLED

Resource Group Properties

The following information describes the resource group properties that are defined by the Sun Cluster software.

The property values are categorized as follows:

Property names are shown first, followed by a description.

Auto_start_on_new_cluster (boolean)

This property controls whether the Resource Group Manager (RGM) starts the resource group automatically when a new cluster is forming. The default is TRUE.

If set to TRUE, the RGM attempts to start the resource group automatically to achieve Desired_primaries when all the nodes of the cluster are simultaneously rebooted.

If set to FALSE, the resource group does not start automatically when the cluster is rebooted. The resource group remains offline until the first time that the resource group is manually switched online by using the clresourcegroup online command or the equivalent GUI instruction. After that, the resource group resumes normal failover behavior.

Category:

Optional

Default:

TRUE

Tunable:

ANYTIME

Desired_primaries (integer)

The preferred number of nodes or zones that the group can run on simultaneously.

The default is 1. The value of the Desired_primaries property must be less than or equal to the value of the Maximum_primaries property.

Category:

Optional

Default:

1

Tunable:

ANYTIME

Failback (boolean)

A Boolean value that indicates whether to recalculate the set of nodes or zones on which the group is online when a node or zone joins the cluster. A recalculation can cause the RGM to bring the group offline on less preferred nodes or zones and online on more preferred nodes or zones.

Category:

Optional

Default:

FALSE

Tunable:

ANYTIME

Global_resources_used (string_array)

Indicates whether cluster file systems are used by any resource in this resource group. Legal values that the cluster administrator can specify are an asterisk (*) to indicate all global resources, and the empty string (“”) to indicate no global resources.

Category:

Optional

Default:

All global resources

Tunable:

ANYTIME

Implicit_network_dependencies (boolean)

A Boolean value that indicates, when TRUE, that the RGM should enforce implicit strong dependencies of nonnetwork address resources on network address resources within the group. This means that the RGM starts all network address resources before all other resources and stops network address resources after all other resources within the group. Network address resources include the logical host name and shared address resource types.

In a scalable resource group, this property has no effect because a scalable resource group does not contain any network address resources.

Category:

Optional

Default:

TRUE

Tunable:

ANYTIME

Maximum_primaries (integer)

The maximum number of nodes or zones on which the group might be online at the same time.

If the RG_mode property is Failover, the value of this property must be no greater than 1. If the RG_mode property is Scalable, a value greater than 1 is allowed.

Category:

Optional

Default:

1

Tunable:

ANYTIME

Nodelist (string_array)

A list of cluster nodes or zones on which a resource group can be brought online in order of preference. These nodes or zones are known as the potential primaries or masters of the resource group.

Category:

Optional

Default:

The list of all cluster nodes in arbitrary order

Tunable:

ANYTIME

Pathprefix (string)

A directory in the cluster file system in which resources in the group can write essential administrative files. Some resources might require this property. Make Pathprefix unique for each resource group.

Category:

Optional

Default:

The empty string

Tunable:

ANYTIME

Pingpong_interval (integer)

A nonnegative integer value (in seconds) that is used by the RGM to determine where to bring the resource group online in these instances:

  • In the event of a reconfiguration.

  • As the result of the execution of a scha_control command with the GIVEOVER argument or the scha_control() function with the SCHA_GIVEOVER argument.

In the event of a reconfiguration, the resource group might fail more than once to come online within the past Pingpong_interval seconds on a particular node or zone. This failure occurs because the resource's Start or Prenet_start method exited with a nonzero status or timed out. As a result, that node or zone is considered ineligible to host the resource group, and the RGM looks for another master.

If a scha_control command or scha_control -O GIVEOVER command is executed on a given node or zone by a resource, thereby causing its resource group to fail over to another node or zone, the first node or zone (on which scha_control was run) cannot be the destination of another scha_control -O GIVEOVER by the same resource until Pingpong_interval seconds have elapsed.

Category:

Optional

Default:

3600 (one hour)

Tunable:

ANYTIME

Resource_list (string_array)

The list of resources that are contained in the group. The cluster administrator does not set this property directly. Rather, the RGM updates this property as the cluster administrator adds or removes resources from the resource group.

Category:

Query-only

Default:

No default

Tunable:

NONE

RG_affinities (string)

The RGM is to try to locate a resource group on a node or zone that is a current master of another given resource group (positive affinity) or that is not a current master of a given resource group (negative affinity).

You can set RG_affinities to the following strings:

  • ++, or strong positive affinity

  • +, or weak positive affinity

  • -, or weak negative affinity

  • --, or strong negative affinity

  • +++, or strong positive affinity with failover delegation

For example, RG_affinities=+RG2,--RG3 indicates that this resource group has a weak positive affinity for RG2 and a strong negative affinity for RG3.

Using the RG_affinities property is described in Chapter 2, Administering Data Service Resources.

Category:

Optional

Default:

The empty string

Tunable:

ANYTIME

RG_dependencies (string_array)

Optional list of resource groups that indicates a preferred ordering for bringing other groups online or offline on the same node or zone. The graph of all strong RG_affinities (positive and negative) together with RG_dependencies is not allowed to contain cycles.

For example, suppose that resource group RG2 is listed in the RG_dependencies list of resource group RG1, that is, RG1 has a resource group dependency on RG2.

The following list summarizes the effects of this resource group dependency:

  • When a node or zone joins the cluster, Boot methods on that node or zone are not run on resources in RG1 until all Boot methods on that node or zone have completed on resources in RG2.

  • If RG1 and RG2 are both in the PENDING_ONLINE state on the same node or zone at the same time, the starting methods (Prenet_start or Start) are not run on any resources in RG1 until all the resources in RG2 have completed their starting methods.

  • If RG1 and RG2 are both in the PENDING_OFFLINE state on the same node or zone at the same time, the stopping methods (Stop or Postnet_stop) are not run on any resources in RG2 until all the resources in RG1 have completed their stopping methods.

  • An attempt to switch the primaries of RG1 or RG2 fails if switching the primaries would leave RG1 online on any node or zone and RG2 offline on all nodes or zones. The clresourcegroup(1CL) and clsetup(1CL) man pages contain more information.

  • Setting the Desired_primaries property to a value that is greater than zero on RG1 is not permitted if Desired_primaries is set to zero on RG2.

  • Setting the Auto_start_on_new_cluster property to TRUE on RG1 is not permitted if Auto_start_on_new_cluster is set to FALSE on RG2.

Category:

Optional

Default:

The empty list

Tunable:

ANYTIME

RG_description (string)

A brief description of the resource group.

Category:

Optional

Default:

The empty string

Tunable:

ANYTIME

RG_is_frozen (boolean)

Indicates whether a global device on which a resource group depends is being switched over. If this property is set to TRUE, the global device is being switched over. If this property is set to FALSE, no global device is being switched over. A resource group depends on global devices as indicated by its Global_resources_used property.

You do not set the RG_is_frozen property directly. The RGM updates the RG_is_frozen property when the status of the global devices changes.

Category:

Optional

Default:

No default

Tunable:

NONE

RG_mode (enum)

Indicates whether the resource group is a failover or a scalable group. If the value is Failover, the RGM sets the Maximum_primaries property of the group to 1 and restricts the resource group to being mastered by a single node or zone.

If the value of this property is Scalable, the RGM allows the Maximum_primaries property to be set to a value that is greater than 1. As a result, the group can be mastered by multiple nodes or zones simultaneously. The RGM does not allow a resource whose Failover property is TRUE to be added to a resource group whose RG_mode is Scalable.

If Maximum_primaries is 1, the default is Failover. If Maximum_primaries is greater than 1, the default is Scalable.

Category:

Optional

Default:

Depends on the value of Maximum_primaries

Tunable:

NONE

RG_name (string)

The name of the resource group. This property is required and must be unique within the cluster.

Category:

Required

Default:

No default

Tunable:

NONE

RG_project_name (string)

The Solaris project name (see the projects(1) man page) that is associated with the resource group. Use this property to apply Solaris resource management features, such as CPU shares and resource pools, to cluster data services. When the RGM brings resource groups online, it starts the related processes under this project name for resources that do not have the Resource_project_name property set (see the r_properties(5) man page). The specified project name must exist in the projects database (see the projects(1) man page and System Administration Guide: Solaris Containers-Resource Management and Solaris Zones).

This property is supported starting with the Solaris 9 OS.


Note –

Changes to this property take affect the next time that the resource is started.


Category:

Optional

Default:

The text string “default

Tunable:

ANYTIME

RG_slm_cpu (decimal number)

If the RG_slm_type property is set to AUTOMATED, this number is the basis for the calculation of the number of CPU shares and the size of the processor set.


Note –

You can only use the RG_slm_cpu property if RG_slm_type is set to AUTOMATED. For more information, see the RG_slm_type property.


The maximum value for the RG_slm_cpu property is 655. You can include two digits after the decimal point. Do not specify 0 for the RG_slm_cpu property. If you set a share value to 0, a resource might not be scheduled by the Fair Share Scheduler (FFS) when the CPU is heavily loaded.

Changes that you make to the RG_slm_cpu property while the resource group is online are taken into account dynamically.

Because the RG_slm_type property is set to AUTOMATED, Sun Cluster creates a project named SCSLM_resourcegroupname. resourcegroupname represents the actual name that you assign to the resource group. Each method of a resource that belongs to the resource group is executed in this project. Starting with Solaris 10 OS, these projects are created in the resource group's zone, whether it is a global zone or a non-global zone. See the project(4) man page.

The project SCSLM_resourcegroupname has a project.cpu-shares value of 100 times the RG_slm_cpu property value. If the RG_slm_cpu property is not set, this project is created with a project.cpu-shares value of 1. The default value for the RG_slm_cpu property is 0.01.

Starting with the Solaris 10 OS, if the RG_slm_pset_type property is set to DEDICATED_STRONG or to DEDICATED_WEAK, the RG_slm_cpu property is used to calculate the size of processor sets. The RG_slm_cpu property is also used to calculate the value of zone.cpu-shares.

For information about processor sets, see the System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.

Category:

Optional

Default:

0.01

Tunable:

ANYTIME

RG_slm_cpu_min (decimal number)

Determines the minimum number of processors on which an application can run.

You can only use this property if all of the following factors are true:

  • The RG_slm_type property is set to AUTOMATED

  • The RG_slm_pset_type property is set to DEDICATED_STRONG or to DEDICATED_WEAK

  • The RG_slm_cpu property is set to a value that is greater than or equal to the value set for the RG_slm_cpu_min property

  • You are using the Solaris 10 OS

The maximum value for the RG_slm_cpu_min property is 655. You can include two digits after the decimal point. Do not specify 0 for the RG_slm_cpu_min property. The RG_slm_cpu_min and RG_slm_cpu properties determine the values of pset.min and pset.max, respectively, for the processor set that Sun Cluster generates.

Changes that you make to the RG_slm_cpu and the RG_slm_cpu_min properties while the resource group is online are taken into account dynamically. If the RG_slm_pset_type property is set to DEDICATED_STRONG, and not enough CPUs are available, the change that you request for the RG_slm_cpu_min property is ignored. In this case, a warning message is generated. On next switchover, if not enough CPUs are available for the RG_slm_cpu_min property, errors due to the lack of CPUs can occur.

For information about processor sets, see the System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.

Category:

Optional

Default:

0.01

Tunable:

ANYTIME

RG_slm_type (string)

Enables you to control system resource usage and automate some steps to configure the Solaris operating system for system resource management. Possible values for RG_SLM_type are AUTOMATED and MANUAL.

If you set the RG_slm_type property to AUTOMATED, the resource group is started with control of the CPU usage.

As a result, Sun Cluster does the following:

  • Creates a project named SCSLM_resourcegroupname. All methods in the resources in this resource group execute in this project. This project is created the first time a method of a resource in this resource group is executed on the node or zone.

  • Sets the value of project.cpu_shares that is associated with the project to the value of the RG_slm_cpu property times 100. By default, the value for project.cpu_shares is 1.

  • Starting with the Solaris 10 OS, sets zone.cpu_shares to 100 times the sum of the RG_slm_cpu property in all the online resource groups. This property also sets RG_slm_type to AUTOMATED in this zone. The zone can be global or non-global. The non-global zone is bound to a Sun Cluster generated pool. Optionally, if the RG_slm_pset_type property is set to DEDICATED_WEAK or to DEDICATED_STRONG, this Sun Cluster generated pool is associated with a Sun Cluster generated processor set. For information about dedicated processor sets, see the description of the RG_slm_pset_type property. When you set the RG_slm_type property to AUTOMATED, all operations that are performed are logged.

If you set the RG_slm_type property to MANUAL, the resource group executes in the project that is specified by the RG_project_name property.

For information about resource pools and processor sets, see the System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.


Note –
  • Do not specify resource group names that exceed 58 characters. If a resource group name contains more than 58 characters, you cannot configure CPU control, that is, you cannot set the RG_slm_type property to AUTOMATED.

  • Refrain from including dashes (-) in resource group names. The Sun Cluster software replaces all dashes in resource group names with underscores (_) when it creates a project. For example, Sun Cluster creates the project named SCSLM_rg_dev for a resource group named rg-dev. If a resource group named rg_dev already exists, a conflict arises when Sun Cluster attempts to create the project for the resource group rg-dev.


Category:

Optional

Default:

manual

Tunable:

ANYTIME

RG_slm_pset_type (string)

Enables the creation of a dedicated processor set.

You can only use this property if all of the following factors are true:

  • The RG_slm_type property is set to AUTOMATED

  • You are using the Solaris 10 OS

  • The resource group executes in a non-global zone

Possible values for RG_slm_pset_type are DEFAULT, DEDICATED_STRONG, and DEDICATED_WEAK.

For a resource group to execute as DEDICATED_STRONG or DEDICATED_WEAK, the resource group must be configured so there are only non-global zones in its node list.

The non-global zone must not be configured for a pool other than the default pool (POOL_DEFAULT). For information about zone configuration, see the zonecfg(1M) man page. This non-global zone must not be dynamically bound to a pool other than the default pool. For more information on pool binding, see the poolbind(1M) man page. These two pool conditions are verified only when the methods of the resources in the resource group are launched.

The values DEDICATED_STRONG and DEDICATED_WEAK are mutually exclusive for resource groups that have the same zone in their node list. You cannot configure resource groups in the same zone so that some have RG_slm_pset_type set to DEDICATED_STRONG and others set to DEDICATED_WEAK.

If you set the RG_slm_pset_type property to DEDICATED_STRONG, Sun Cluster does the following in addition to the actions performed by the RG_slm_type property when it is set to AUTOMATED:

  • Creates and dynamically binds a pool to the non-global zone in which the resource group starts for either or both the PRENET_START and START methods.

  • Creates a processor set with a size between the following sums

    • The sum of the RG_slm_cpu_min property in all the resource groups that are online in the zone in which this resource group starts.

    • The sum of the RG_slm_cpu property in the resource groups that are running in that zone.

    When either the STOP or POSTNET_STOP methods execute, the Sun Cluster generated processor set is destroyed. If resource groups are no longer online in the zone, the pool is destroyed, and the non-global zone is bound to the default pool (POOL_DEFAULT).

  • Associates the processor set to the pool.

  • Sets zone.cpu_shares to 100 times the sum of the RG_slm_cpu property in all the resource groups that are running the zone.

If you set the RG_slm_pset_type property to DEDICATED_WEAK, the resource group behaves the same as if RG_slm_pset_type was set to DEDICATED_STRONG. However, if enough processors are not available to create the processor set, the pool is associated to the default processor set.

If you set the RG_slm_pset_typeproperty to DEDICATED_STRONG and not enough processors are available to create the processor set, an error is generated. As a result, the resource group is not started on that node or zone.

When CPUs are allocated, the DEFAULTPSETMIN minimum size has priority over DEDICATED_STRONG, which has priority over DEDICATED_WEAK. However, when you use the clnode command to increase the size of the default processor, and not enough processors are available, this priority is ignored. For information about the DEFAULTPSETMIN property, see the clnode(1CL) man page.

The clnode command assigns a minimum of CPUs to the default processor set dynamically. If the number of CPUs that you specify is not available, Sun Cluster periodically retries to assign this number of CPUs. Failing that, Sun Cluster tries to assign smaller numbers of CPUs to the default processor set until the minimum number of CPUs are assigned. This action might destroy some DEDICATED_WEAK processor sets, but does not destroy DEDICATED_STRONG processor sets.

When you start a resource group for which you've set the RG_slm_pset_type property to DEDICATED_STRONG, it might destroy the processor sets that are associated with the DEDICATED_WEAK processor sets. This resource group might do so if not enough CPUs are available on the node or zone for both processor sets. In this case, the processes of the resource group that are running in the DEDICATED_WEAK processor sets are associated with the default processor set.

To swap the value of the RG_slm_pset_type property between DEDICATED_STRONG or DEDICATED_WEAK, you must first set it to the default.

If resource groups that are configured for CPU control are not online in a non-global zone, the CPU share value is set to zone.cpu-shares for that zone. By default, zone.cpu-shares is set to 1. For more information about zone configuration, see the zonecfg(1M) man page.

If you set the RG_slm_pset_type property to DEFAULT, Sun Cluster creates a pool named SCSLM_pool_zonename, but does not create a processor set. In this case, SCSLM_pool_zonename is associated with the default processor set. The shares that are assigned to the zone equal the sum of the values for RG_slm_cpu for all the resource groups in the zone.

For information about resource pools and processor sets, see the System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.

Category:

Optional

Default:

default

Tunable:

ANYTIME

RG_state on each cluster node or zone (enum)

Set by the RGM to UNMANAGED, ONLINE, OFFLINE, PENDING_ONLINE, PENDING_OFFLINE, ERROR_STOP_FAILED, ONLINE_FAULTED, or PENDING_ONLINE_BLOCKED to describe the state of the group on each cluster node or zone.

You cannot configure this property. However, you can indirectly set this property by running the clresourcegroup command or by using the equivalent clsetup or Sun Cluster Manager commands. A group can exist in an UNMANAGED state when that group is not under the control of the RGM.

The following descriptions summarize each state.


Note –

States apply to individual nodes or zones only, except the UNMANAGED state, which applies across all nodes or zones. For example, a resource group might be OFFLINE in zone 1 on node A, but PENDING_ONLINE in zone 2 on node B.


UNMANAGED

The initial state of a newly created resource group, or the state of a previously managed resource group. Either Init methods have not yet been run on resources in the group, or Fini methods have been run on resources in the group.

The group is not managed by the RGM.

ONLINE

The resource group has been started on the node or zone. In other words, the starting methods Prenet_start, Start, and Monitor_start, as applicable to each resource, have executed successfully on all enabled resources in the group.

OFFLINE

The resource group has been stopped on the node or zone. In other words, the stopping methods Monitor_stop, Stop, and Postnet_stop, as applicable to each resource, have executed successfully on all enabled resources in the group. This state also applies before a resource group has started for the first time on the node or zone.

PENDING_ONLINE

The resource group is starting on the node or zone. The starting methods Prenet_start, Start, and Monitor_start, as applicable to each resource, are being executed on enabled resources in the group.

PENDING_OFFLINE

The resource group is stopping on the node or zone. The stopping methods Monitor_stop, Stop, and Postnet_stop, as applicable to each resource, are being executed on enabled resources in the group.

ERROR_STOP_FAILED

One or more resources within the resource group failed to stop successfully and are in the Stop_failed state. Other resources in the group might remain online or offline. This resource group is not permitted to start on any node or zone until the ERROR_STOP_FAILED state is cleared.

You must use an administrative command, such as clresource clear, to manually kill the Stop_failed resource and reset its state to OFFLINE.

ONLINE_FAULTED

The resource group was PENDING_ONLINE and has finished starting on this node or zone. However, one or more resources ended up in the START_FAILED state or with FAULTED status.

PENDING_ONLINE_BLOCKED

The resource group failed to start fully because one or more resources within that resource group have an unsatisfied strong resource dependency on a resource in a different resource group. Such resources remain OFFLINE. When the resource dependencies are satisfied, the resource group automatically moves back to the PENDING_ONLINE state.

Category:

Query-only

Default:

No default

Tunable:

NONE

Suspend_automatic_recovery (boolean)

A Boolean value that indicates whether the automatic recovery of a resource group is suspended. A suspended resource group is not automatically restarted or failed over until the cluster administrator explicitly issues the command that resumes automatic recovery. Whether online or offline, suspended data services remain in their current state. You can still manually switch the resource group to a different state on specified nodes or zones. You can also still enable or disable individual resources in the resource group.

If the Suspend_automatic_recovery property is set to TRUE, automatic recovery of the resource group is suspended. If this property is set to FALSE, automatic recovery of the resource group is resumed and active.

You do not set this property directly. The RGM changes the value of the Suspend_automatic_recovery property when the cluster administrator suspends or resumes automatic recovery of the resource group. The cluster administrator suspends automatic recovery with the clresourcegroup suspend command. The cluster administrator resumes automatic recovery with the clresourcegroup resume command. The resource group can be suspended or resumed regardless of the setting of its RG_system property.

Category:

Query-only

Default:

FALSE

Tunable:

NONE

RG_system (boolean)

If the RG_system property is TRUE for a resource group, particular operations are restricted for the resource group and for the resources that the resource group contains. This restriction is intended to help prevent accidental modification or deletion of critical resource groups and resources. Only the clresourcegroupcommand is affected by this property. Operations for scha_control(1HA) and scha_control(3HA) are not affected.

Before performing a restricted operation on a resource group (or a resource group's resources), you must first set the RG_system property of the resource group to FALSE. Use care when you modify or delete a resource group that supports cluster services, or when you modify or delete the resources that such a resource group contains.

Operation 

Example 

Delete a resource group 

clresourcegroup delete RG1

Edit a resource group property (except for RG_system)

clresourcegroup set -p RG_desription=... +

Add a resource to a resource group 

clresource create -g RG1 -t SUNW.nfs R1

The resource is created in the enabled state and with resource monitoring turned on. 

Delete a resource from a resource group 

clresource delete R1

Edit a property of a resource that belongs to a resource group 

clresource set -g RG1 -t SUNW.nfs -p r_description="HA-NFS res" R1

Switch a resource group offline 

clresourcegroup offline RG1

Manage a resource group 

clresourcegroup manage RG1

Unmanage a resource group 

clresourcegroup unmanage RG1

Enable a resource in a resource group 

clresource enable R1

Enable monitoring for a resource in a resource group 

clresource monitor R1

Disable a resource in a resource group 

clresource disable R1

Disable monitoring for a resource 

clresource unmonitor R1

If the RG_system property is TRUE for a resource group, the only property of the resource group that you can edit is the RG_system property itself. In other words, editing the RG_system property is never restricted.

Category:

Optional

Default:

FALSE

Tunable:

ANYTIME

Resource Property Attributes

This section describes the resource property attributes that you can use to change system-defined properties or to create extension properties.


Caution – Caution –

You cannot specify Null or the empty string (“”) as the default value for boolean, enum, or int types.


Property names are shown first, followed by a description.

Array_maxsize

For a stringarray type, the maximum number of array elements that are permitted.

Array_minsize

For a stringarray type, the minimum number of array elements that are permitted.

Default

Indicates a default value for the property.

Description

A string annotation that is intended to be a brief description of the property. The Description attribute cannot be set in the RTR file for system-defined properties.

Enumlist

For an enum type, a set of string values that are permitted for the property.

Extension

If used, indicates that the RTR file entry declares an extension property that is defined by the resource type implementation. Otherwise, the entry is a system-defined property.

Max

For an int type, the maximum value that is permitted for the property.

Maxlength

For string and stringarray types, the maximum string length that is permitted.

Min

For an int type, the minimal value that is permitted for the property.

Minlength

For string and stringarray types, the minimum string length that is permitted.

Per_node

If used, indicates that the extension property can be set on a per-node or a per-zone basis.

If you specify the Per_node property attribute in a type definition, you must specify a default value with the Default property attribute as well. Specifying a default value ensures that a value is returned when a user requests a per-node or per-zone property value on a node or zone to which an explicit value has not been assigned.

You cannot specify the Per_node property attribute for a property of type stringarray.

Property

The name of the resource property.

Tunable

Indicates when the cluster administrator can set the value of this property in a resource. Set to NONE or FALSE to prevent the cluster administrator from setting the property. Values that enable a cluster administrator to tune a property are TRUE or ANYTIME (at any time), AT_CREATION (only when the resource is created), or WHEN_DISABLED (when the resource is disabled). To establish other conditions, such as “when monitoring is disabled” or “when offline”, set this attribute to ANYTIME and validate the state of the resource in the Validate method.

The default differs for each standard resource property, as shown in the following entry. The default setting for tuning an extension property, if not otherwise specified in the RTR file, is TRUE (ANYTIME).

Type of the property

Allowable types are string, boolean, integer, enum, and stringarray. You cannot set the type attribute in an RTR file entry for system-defined properties. The type determines acceptable property values and the type-specific attributes that are allowed in the RTR file entry. An enum type is a set of string values.