Go to main content

Oracle Solaris Cluster 4.3 Reference Manual

Exit Print View

Updated: September 2015
 
 

gds (5)

Name

ORCL.gds, gds - resource type for making simple network-aware and non-network-aware applications highly available or scalable

Description

The Generic Data Service (GDS) Version 2 is a mechanism that enables you to make simple network-aware and non-network-aware applications highly available or scalable by plugging them into the Oracle Solaris Cluster Resource Group Manager (RGM) framework.

The GDSv2 contains a fully functional Oracle Solaris Cluster resource type, complete with callback methods (rt_callbacks(1HA)) and a Resource Type Registration (RTR) file (rt_reg(4)).

Standard Properties

Boot_timeout (integer)

Specifies the timeout value, in seconds, for the boot command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Failover_mode (enum)

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

For more information on the failover_mode property, see the r_properties(5) man page.

Category

Optional

Default

SOFT

Tunable

Any time

Fini_timeout (integer)

Specifies the timeout value, in seconds, for the fini command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Init_timeout (integer)

Specifies the timeout value, in seconds, for the init command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Monitor_start_timeout (integer)

Specifies the timeout value, in seconds, for the monitor_start command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Monitor_stop_timeout (integer)

Specifies the timeout value, in seconds, for the monitor_stop command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Retry_count (integer)

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

For more information on the retry_count property, see the r_properties(5) man page.

Category

Conditional

Maximum

10

Default

2

Tunable

Any time

Retry_interval (integer)

The number of seconds in which to count attempts to restart a failed resource.

For more information on the retry_interval property, see the r_properties(5) man page.

Category

Conditional

Maximum

3600

Default

370 seconds

Tunable

Any time

Scalable (boolean)

Indicates whether the resource is scalable, which means that the resource uses the networking load balancing features of Oracle Solaris Cluster software.

If the scalable property is set to TRUE, then additional properties such as load_balancing_policy and load_balancing_weights are used to configure the load balancing behavior.

For more information on the scalable, load_balancing_policy, and load_balancing_weights properties, see the r_properties(5) man page.

Category

Optional

Default

FALSE

Tunable

At creation

Start_timeout (integer)

Specifies the timeout value, in seconds, for the start command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Stop_timeout (integer)

Specifies the timeout value, in seconds, for the stop command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Thorough_probe_interval (integer)

Specifies the number of seconds between invocations of the fault probe of the resource.

For more information on thorough_probe_interval, see the r_properties(5) man page.

Category

Conditional

Maximum

3600 seconds

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Update_timeout (integer)

Specifies the timeout value, in seconds, for the update command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Validate_timeout (integer)

Specifies the timeout value, in seconds, for the validate command.

Category

Optional

Minimum

60 seconds

Default

300 seconds

Tunable

Any time

Extension Properties

Boot_command (string)

Specifies the command that is run when the node or zone has been booted or rebooted. This command must be a complete command line that can be passed directly to a shell. The command normally performs the same initialization as the init_command. You must ensure that the command is idempotent -- even if the command has initialized the resource during a previous execution, subsequent calls to the command must exit successfully.

Category

Optional

Default

Null

Tunable

When disabled

Child_mon_level (integer)

Provides control over the processes that are monitored through the Process Monitor Facility (PMF). This property denotes the level to which the forked children processes are monitored. Omitting this property or setting this property to the default value is the same as omitting the –C option for pmfadm(1M): all children (and their descendents) are monitored.

Category

Optional

Default

-1

Tunable

At creation

Debug_gds (boolean)

Debug_gds is typically used by Oracle Solaris Cluster development and support. However, it can be useful to understand the various calls and sequences that occur within GDSv2.

If debug_gds=FALSE is set, no GDSv2 internal debug messages are sent to the system log.

If debug_gds=TRUE is set, all GDSv2 internal debug messages are sent to the system log.

Category

Optional

Default

TRUE

Tunable

When disabled

Debug_level (string)

Specifies the command that sets up trace and debug messages. Increasing the debug_level allows more messages to be written to the system-log. You can set debug_level as a per-node extension property by setting it for one node or different values for each node.

Category

Optional

Per Node

True

Data Type

Integer

Minimum

0

Maximum

3

Default

0

Tunable

Any time

Failover_enabled (boolean)

Allows the resource to fail over. If this property is set to False, failover of the resource is disabled. You can use this property to prevent the application resource from initiating a failover of the resource group.

Category

Optional

Default

True

Tunable

When disabled


Note -  The Failover_mode=RESTART_ONLY setting matches the behavior of the Failover_enabled=FALSE setting. The Failover_mode=LOG_ONLY setting goes a step further and prevents resources from restarting. Use the Failover_mode property instead of the Failover_enabled extension property to better control failover behavior. For more information, see the descriptions of the LOG_ONLY and RESTART_ONLY values for Failover_mode in r_properties(5).
Fini_command (string)

Specifies the command that is run when the resource is no longer managed by the RGM. This command must be a complete command line that can be passed directly to a shell. The command normally performs some cleanup or undoes any initializations that were performed by the init_command. The command is run on the node or zone where the resource becomes unmanaged when the following situations occur:

  • The resource group that contains the resource is switched to an unmanaged state. In this case, the RGM executes the GDSv2 fini method which executes the fini_command 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 GDSv2 fini method which executes the fini_command 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 GDSv2 fini method which executes the fini_command on all nodes and zones in the node list.

Category

Optional

Default

Null

Tunable

When disabled

Init_command (string)

Specifies the command that is run when the resource becomes managed by the RGM as a result of one of the following conditions. This command must be a complete command line that can be passed directly to a shell.

  • The resource group in which the resource is located is switched from the unmanaged to a managed state.

  • The resource is created in a resource group that is already managed.

Category

Optional

Default

Null

Tunable

When disabled

Interpose_logical_hostname (string)

Specifies the logical host name to interpose whenever a system call to retrieve the hostname is made. The logical host is interposed as long as the following has been done:

  • The clreslogicalhostname(1CL) command has created a resource for the logical host name.

  • Your resource has a dependency on the logical host resource, if the logical host is in a different resource group from your resource.

  • /usr/lib/secure/libschost.so.1 must be symbolically linked to /usr/cluster/lib/libschost.so.1.

  • /usr/lib/secure/64/libschost.so.1 must be symbolically linked to /usr/cluster/lib/[amd64|sparcv9]/libschost.so.1.

Category

Optional

Per Node

TRUE

Default

Null

Tunable

When disabled

Monitor_retry_count

The number of times that the process monitor facility (PMF) restarts the fault monitor during the time window that the monitor_retry_interval property specifies. This property refers to restarts of the fault monitor itself rather than to the resource. The system-defined properties retry_interval and retry_count control restarting of the resource.

Category

Optional

Data type

Integer

Default

4

Range

0 - 2147483647

-1 indicates an infinite number of retry attempts.

Tunable

At any time

Num_probe_timeouts (integer)

Specifies the number of times that a probe timeout can occur before a complete failure is declared.

A probe timeout can occur if the system is heavily loaded and the probe is not able to complete within the probe_timeout value. Alternatively, a probe timeout can occur if the application being checked has become unresponsive.

If a probe timeout does occur, GDSv2 does not know if the application is running or not and defers declaring a complete failure to num_probe_timeouts. Consequently, if num_probe_timeouts=2 then two successive probe timeouts need to occur for GDSv2 to declare a complete failure. If a complete failure is declared, the RGM checks the failover_mode property to determine what action to take.

Category

Optional

Minimum

1

Default

2

Tunable

Any time

PMF_managed (boolean)

Ensures that the application is started under the control of the Process Monitor Facility (PMF) as described under the child_mon_level extension property. If all the monitored processes exit, they are restarted according to the settings of the retry_count and retry_interval resource properties. If the retry count is exceeded, the RGM checks the failover _mode property to determine what action to take.

Category

Optional

Default

TRUE

Tunable

When disabled

Probe_command (string)

Specifies the command that periodically checks the health of a network-aware or non network-aware application. This command must be a complete command line that can be passed directly to a shell to probe the application. The probe command returns with an exit status of 0 if the application is running correctly.

The exit status of the probe command is used to determine the severity of the failure of the application. This exit status, called probe status, is an integer between 0 (for success) and 100 (for complete failure). The probe status can also be 201, which causes the application to fail over unless Failover_enabled is set to FALSE.

If probe_command is not set and PMF_managed=TRUE is set, then an internal probe is used. That probe checks the application PMF tag to provide a faster application restart using PMF if all the application processes fail. If PMF_managed=FALSE is set, then a probe_command entry is required.

Category

Optional

Default

" "

Tunable

When disabled

Start_command (string)

Specifies the command that starts the application. This command must be a complete command line that can be passed directly to a shell to start the application.

If PMF_managed=TRUE is set, then the start command (or one of its forked children) is expected to be a long-running program or daemon which actually provides the service to clients. The start_command process tree is monitored by the PMF as described under the child_mon_level extension property.

Category

Required

Minimum

1

Default

No default

Tunable

When disabled

Start_exit_on_error (boolean)

Specifies if a start_failed should be declared if the application fails to starts on the first attempt.

If start_exit_on_error=FALSE is set, the application is started as often as possible within the start_timeout period until the application successfully starts.

If start_exit_on_error=TRUE is set, if the application fails to start on the first attempt a start_failed state is declared.

Category

Optional

Default

FALSE

Tunable

When disabled

Stop_command (string)

Specifies the command that stops the application. This command must be a complete command line that can be passed directly to a shell.

If PMF_managed=TRUE is set, the stop_command can be omitted. If stop_command is omitted, the stop_signal extension property value is sent to the application processes running under the PMF tag. If PMF_managed=FALSE is set, the stop_command is required.

Category

Optional

Default

Null

Tunable

When disabled

Stop_exit_on_error (boolean)

Specifies if a stop_failed should be declared if the application fails to stop.

If stop_exit_on_error=TRUE=TRUE is set and the application fails to stop, a stop_failed is declared.

If stop_exit_on_error=FALSEis set and the application fails to stop, then the PMF_managed extension property is checked. If PMF_managed=TRUE is set then the stop_signal extension property value is sent to the application processes running under the PMF tag. If PMF_managed=FALSE is set and the application fails to stop then a stop_failed is declared.

Category

Optional

Default

FALSE

Tunable

When disabled

Stop_signal (integer)

Specifies the signal that stops the application if the application fails to stop with the stop_command and if PMF_managed=TRUE was set. The values for this property are the same as those defined in the signal (3HEAD) man page.

Category

Optional

Minimum

1

Maximum

37

Default

15

Tunable

When disabled

Timeout_delay (boolean)

The GDSv2 probe executes the probe_command under a timeout clock and uses the fork(2) and exec(2) calls to execute the probe_command as a new process. On a heavily loaded system, there can be seconds of delay from the time that the child process is forked until the time that the child process is executing the probe_command.

If timeout_delay=FALSE is set, the timeout clock is started as soon as the child process is forked.

If timeout_delay=TRUE is set, the timeout clock is started only when the child process has started to execute.

There are advantages to either setting and you should consider the impact of setting timeout_delay.

If the system is heavily loaded, you may want a probe timeout to occur so that the RGM can attempt an application recovery by querying the failover_mode property. In this case, on a heavily loaded system setting timeout_delay=FALSE would be appropriate and is the default setting.

If the system is heavily loaded and you want to guarantee that the timeout clock is only started when the Probe_command has started to execute, then setting timeout_delay=TRUE would be appropriate. However, there is no guarantee that a probe timeout might not still occur. Instead, the timeout clock is just delayed until probe_command has started to start execute. If the probe_command still struggles to complete, once the timeout clock has been started, then a probe timeout can still occur.

If a probe timeout occurs, a failure is returned to GDSv2. By default, num_probe_timeouts=2 is set, meaning that two consecutive probe timeouts will result in a complete failure. When a complete failure is returned by GDSv2, the RGM queries the failover_mode property to determine what action to take.

Category

Optional

Default

FALSE

Tunable

Any time

Validate_command (string)

Specifies the absolute path to the command that validates the application. If you do not provide an absolute path, the application is not validated.

The exit status of the validate command is used to determine whether the creation or update of the GDSv2 resource should be permitted. Before creating or updating the resource, the specified validate command is executed on each node of the node list of the resource group that contains the resource. If the validate command exits nonzero, the requested resource creation or update is not permitted. Any output that is written to stdout or stderr by the validate command will be passed back to the user who issued the administrative command to create or update the resource. Such output can be used to explain why the resource validation failed.

The validate command is also executed before performing the GIVEOVER option of the scha_control command to relocate the resource group to a new node. If the command exits nonzero, the GIVEOVER is blocked and the resource group remains mastered on its current node.

Category

Optional

Default

Null

Tunable

When disabled

Wait_for_online (boolean)

If wait_for_online=TRUE is set, the probe_command is issued when the start_command is being attempted. If the probe_command returns a zero exit status, the application is deemed to be available and the resource enters an online state.

If wait_for_online=FALSE is set, the probe_command is not issued when the start_command is being attempted. If the start_command exits with a zero exit status, then the resource enters an online state. Otherwise, the resource enters a start_failed state.

If the probe_command is not set and PMF_managed=TRUE is set, a dummy probe is used for the probe_command. This dummy probe simply checks if the associated PMF tag exists.

Category

Optional

Default

TRUE

Tunable

When disabled

Wait_probe_limit (integer)

This extension property is only used when wait_for_online=TRUE is set.

If wait_for_online=TRUE is set, the probe_command is executed when the start_command is attempted for the duration of start_timeout or until the probe_command returns a zero exit status. Otherwise, the probe_command is attempted every two seconds. By default, start_timeout=300 is set and consequently the probe_command could be attempted many times until it is successful.

Wait_probe_limit provides the ability to limit how many times the probe_command is executed within start_timeout.

  • If wait_probe_limit=0 is set, the probe_command is attempted for the duration of start_timeout, until the probe_command returns a zero exit status. Otherwise the probe_command attempts will continue until the RGM declares a START timeout.

  • If wait_probe_limit=1 is set, the probe_command is attempted just once during the duration of start_timeout. If the probe_command returns a zero exit status, the resource enters an online state. Otherwise, the resource enters a start_failed state. Likewise, if wait_probe_limit=8 is set, the probe_command is attempted up to eight times during the duration of start_timeout. If the probe_command returns a zero exit status, the resource enters an online state. Otherwise, the resource enters a start_failed state.

Category

Optional

Minimum

0

Default

0

Tunable

When disabled

Examples

Configuring a Demo Application

The following example uses the supplied demo application called "sleep 1800 &". See Oracle Solaris Cluster Generic Data Service (GDS) Guide for more information about GDSv2 demo applications.

# clresourcegroup create -p pathprefix=/opt/ORCLscgds/demo myrg
# clresource create -g myrg -t ORCL.gds \
# -p Start_command="%RG_PATHPREFIX/demo_start -R %RS_NAME -G %RG_NAME -T %RT_NAME" \
# -p Stop_command="%RG_PATHPREFIX/demo_stop -R %RS_NAME -G %RG_NAME -T %RT_NAME" \
# -p Probe_command="%RG_PATHPREFIX/demo_probe -R %RS_NAME -G %RG_NAME -T %RT_NAME" \
# -p Validate_command="%RG_PATHPREFIX/demo_validate -R %RS_NAME -G %RG_NAME \
# -T %RT_NAME" -d myrs
# clresourcegroup online -eM myrg
# clresource status myrs

Attributes

See attributes (5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
ha-cluster/ha-service/gds2

See Also

ORCL.gds_proxy(5), clreslogicalhostname(1CL ), clresource(1CL), clresourcegroup(1CL), clresourcetype(1CL), clressharedaddress(1CL), rt_callbacks(1HA), scdsbuilder(1HA), scha_control(1HA), scha_resource_get(1HA), hatimerun(1M), pmfadm(1M), signal(3HEAD), rt_reg(4), attributes(5), r_properties(5), scalable_service(5)