Sun Cluster Data Services Developer's Guide for Solaris OS

Appendix A Standard Properties

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

This appendix includes the following major sections:


Note –

The property values, such as True and False, are not case sensitive.


Resource Type Properties

The following table describes the resource type properties defined by Sun Cluster. The property values are categorized as follows (in the Category column):

Resource type properties cannot be updated by administrative utilities with the exception of Installed_nodes, which cannot be declared in the RTR file and must be set by the administrator.

Table A–1 Resource Type Properties

Property Name 

Description 

Can Be Updated? 

Category 

Allow_hosts (string array)

Controls the set of clients that are allowed to register with the cl_apid daemon to receive cluster reconfiguration events. The general form of this property is ipaddress/masklength, which defines a subnet from which the clients are allowed to register. For example, the setting 129.99.77.0/24 allows clients on the subnet 129.99.77 to register for events. As another example, 192.9.84.231/32 allows only the client 192.9.84.231 to register for events. This property provides security to the CRNP. The cl_apid daemon is described in SUNW.Event(5).

In addition, the following special keywords are recognized. LOCAL refers to all clients that are located in directly connected subnets of the cluster. ALL allows all clients to register. Note that if a client matches an entry in both the Allow_hosts and the Deny_hosts property, that client is prevented from registering with the implementation.

The default is LOCAL.

Optional 

API_version (integer)

The version of the resource management API used by this resource type implementation. 

The default for Sun Cluster 3.1 4/04 is 2. 

Optional 

Boot (string)

An optional callback method: the path to the program that the RGM invokes on a node, which joins or rejoins the cluster when a resource of this type is already managed. This method is expected to do initialization actions for resources of this type similar to the Init method.

Conditional/ Explicit 

Client_retry_count (integer)

Controls the number of attempts made by the cl_apid daemon while communicating with external clients. If a client fails to respond within Client_retry_count attempts, the client times out. The client is subsequently removed from the list of registered clients that are eligible to receive cluster reconfiguration events. The client must re-register in order to start receiving events again. See the description of the Client_retry_interval property to learn more about how often these retries are made by the implementation. The cl_apid daemon is described in SUNW.Event(5).

The default is 3. 

Optional 

Client_retry_interval (integer)

Defines the time period (in seconds) used by the cl_apid daemon while communicating with unresponsive external clients. Up to Client_retry_count attempts are made during this interval to contact the client. The cl_apid daemon is described in SUNW.Event(5).

The default is 1800. 

Optional 

Client_timeout (integer)

The time-out value (in seconds) that is used by the cl_apid daemon while communicating with external clients. However, the cl_apid daemon continues to attempt to contact the client for a tunable number of times. See the descriptions of the Client_retry_count and Client_retry_interval properties to learn more about the means that you can use to tune this property. The cl_apid daemon is described in SUNW.Event(5).

The default is 60. 

Optional 

Deny_hosts (string array)

Controls the set of clients that are prevented from registering to receive cluster reconfiguration events. To determine access, the settings of this property take precedence over those in the Allow_hosts list. The format of this property is the same as the format that is defined in the Allow_hosts property. This property provides security to the CRNP.

The default is NULL.

Optional 

Failover (Boolean)

True indicates that resources of this type cannot be configured in any group that can be online on multiple nodes at once. The default is False.

Optional 

Fini (string)

An optional callback method: the path to the program that the RGM invokes when a resource of this type is removed from RGM management. 

Conditional/ Explicit 

Init (string)

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

Conditional/ Explicit 

Init_nodes (enum)

The values can be RG_primaries (just the nodes that can master the resource) or RT_installed_nodes (all nodes on which the resource type is installed). Indicates the nodes on which the RGM is to call the Init, Fini, Boot and Validate methods.

The default value is RG_primaries.

Optional 

Installed_nodes (string array)

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

The default is all cluster nodes. 

Can be configured by the cluster administrator 

Max_clients (integer)

Controls the maximum number of clients that can register with the cl_apid daemon to receive notification of cluster events. Attempts by additional clients to register for events are rejected by your application. Since each client registration uses resources on the cluster, tuning this property allows users to control resource usage on the cluster by external clients. The cl_apid daemon is described in SUNW.Event(5).

The default is 1000. 

Optional 

Monitor_check (string)

An optional callback method: the path to the program that the RGM invokes before doing a monitor-requested failover of a resource of this type. 

Conditional/ Explicit 

Monitor_start (string)

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

Conditional/ Explicit 

Monitor_stop (string)

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

Conditional/ Explicit 

Num_resource_restarts on each cluster node (integer)

This property is set by the RGM to the number of scha_control RESTART calls that have been made for this resource on this node within the past n seconds, where n is the value of the Retry_interval property of the resource. If a resource type does not declare the Retry_interval property, then the Num_resource_restarts property is not available for resources of that type.

Query-only 

Pkglist (string array)

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

Conditional/ Explicit 

Postnet_stop (string)

An optional callback method: the path to the program that the RGM invokes after calling the Stop method of any network-address resources (Network_resources_used) on which a resource of this type depends. This method is expected to do STOP actions that must be done after the network interfaces are configured down.

Conditional/ Explicit 

Prenet_start (string)

An optional callback method: the path to the program that the RGM invokes before calling the Start method of any network-address resources (Network_resources_used) that a resource of this type is dependent on. This method is expected to do START actions that must be done before network interfaces are configured up.

Conditional/ Explicit 

Resource_type (string)

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


scrgadm -p
In Sun Cluster 3.1 and later releases, a resource type name includes the version, which is mandatory:

vendor_id.resource_type:version
The three components of the resource type name are properties specified in the RTR file as Vendor_id, Resource_type, and RT_version. The scrgadm 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, the recommended approach is to use the stock symbol for the company creating the resource type. Resource type names created prior to Sun Cluster 3.1 continue to use the syntax:

vendor_id.resource_type
The default is the empty string.

Required 

RT_basedir (string)

The directory path that is used to complete relative paths for callback methods. This path is expected to be set to the installation location for the resource type packages. It must be a complete path, that is, it must start with a forward slash (/). This property is not required if all the method path names are absolute.

Required unless all method path names are absolute 

RT_description (string)

A brief description of the resource type. 

The default is the empty string. 

Conditional 

RT_version (string)

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

Conditional/ Explicit 

Single_instance (Boolean)

If True, indicates that only one resource of this type can exist in the cluster. The RGM allows only one resource of this type to run cluster-wide at one time.

The default value is False.

Optional 

Start (string)

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

Required unless the RTR file declares a Prenet_start method

Stop (string)

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

Required unless the RTR file declares a Postnet_stop method

Update (string)

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

Conditional/ Explicit 

Validate (string)

An optional callback method: the path to the program that will be invoked to check values for properties of resources of this type. 

Conditional/ Explicit 

Vendor_ID (string)

See the Resource_type property.

Conditional 

Resource Properties

Table A–2 describes the resource properties defined by Sun Cluster. The property values are categorized as follows (in the Category column):

Table A–2 also lists whether and when you can update resource properties (in the Can Be Updated? column), as follows:

None or False

Never 

True or Anytime

Any time 

At_creation

When the resource is added to a cluster 

When_disabled

When the resource is disabled 

Table A–2 Resource Properties

Property Name 

Description 

Can Be Updated? 

Category 

Affinity_timeout (integer)

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

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 (the default value).

This property is only used for scalable services. 

Any time 

Optional 

Cheap_probe_interval (integer)

The number of seconds between invocations of a quick fault probe of the resource. This property is only created by the RGM and available to the administrator 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 resource type file, the Tunable value for the property is When_disabled.

This property is required if the Default attribute is not specified in the property declaration in the RTR file.

When disabled  

Conditional 

Extension properties 

Extension properties as declared in the RTR file of the resource's type. The implementation of the resource type defines these properties. For information on the individual attributes you can set for extension properties, see Table A–4.

Depends on the specific property 

Conditional 

Failover_mode (enum)

Possible settings are NONE, SOFT, and HARD. Controls whether the RGM relocates a resource group or aborts a node in response to a failure of a Start, Stop, or Monitor_stop method call on the resource. NONE indicates that the RGM should just set the resource state on method failure and wait for operator intervention. SOFT indicates that failure of a Start method should cause the RGM to relocate the resource's group to a different node while failure of a Stop or Monitor_stop method should cause the RGM to set the resource to STOP_FAILED state and the resource group to ERROR_STOP_FAILED state and wait for operator intervention. For Stop or Monitor_stop failures, the NONE and SOFT settings are equivalent. HARD indicates that failure of a Start method should cause the relocation of the group and failure of a Stop or Monitor_stop method should cause the forcible stop of the resource by aborting the cluster node.

The default is NONE.

Any time 

Optional 

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 (identified by the 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 it is coming to.

The default value is Lb_weighted.

At creation 

Conditional/ Optional 

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 distributed to the specified node. The fraction of load 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 1/4 of the load and node 2 receives 3/4. 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 resource type file, the Tunable value for the property is Anytime. Changing this property revises the distribution for new connections only.

The default value is the empty string (“”). 

Any time 

Conditional/ Optional 

method_timeout for each callback method in the Type (integer)

A time lapse, in seconds, after which the RGM concludes that an invocation of the method has failed.  

The default is 3,600 (one hour) if the method itself is declared in the RTR file. 

Any time 

Conditional/ 

Optional 

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, the monitor does not have its Start method called until it is enabled again. If the resource does not have a monitor callback method, this property does not exist.

The default is Enabled.

Never 

Query-only 

Network_resources_used (string array)

A list of logical host name or shared address network resources used by the resource. For scalable services, this property must refer to shared address resources that exist in a separate resource group. For failover services, this property refers to logical host name or shared address resources that exist in the same resource group. 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.

If the Tunable attribute is not specified in the resource type file, the Tunable value for the property is At_creation.

At creation 

Conditional/ Required 

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 has no callbacks invoked until it is enabled again.

The default is Disabled.

Never 

Query-only 

Port_list (string array)

A list of port numbers on which the server is listening. Appended to each port number is the protocol being used by that port, for example, Port_list=80/tcp. 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.

At creation 

Conditional/ 

Required 

R_description (string)

A brief description of the resource. 

The default is the empty string. 

Any time 

Optional 

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. 

Never 

Required 

Resource_project_name (string)

The Solaris project name 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 launches the related processes under this project name. If this property is not specified, the project name will be taken from the RG_project_name property of the resource group that contains the resource (see rg_properties (5)). If neither property is specified, the RGM will use the predefined project name default. The specified project name must exist in the projects database and the user root must be configured as a member of the named project. This property is only supported starting in Solaris 9.


Note –

Changes to this property take effect after the resource has been restarted.


The default is null. 

Any time 

Optional 

Resource_state on each cluster node (enum)

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

This property is not user configurable. 

Never 

Query-only 

Retry_count (integer)

The number of times a monitor attempts to restart a resource if it fails. This property is created by the RGM only and available to the administrator if it is declared in the RTR file. It is optional if a default value is specified in the RTR file. 

If the Tunable attribute is not specified in the resource type file, the Tunable value for the property is When_disabled.

This property is required if the Default attribute is not specified in the property declaration in the RTR file.

When disabled 

Conditional 

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 only and available to the administrator if it is declared in the RTR file. It is optional if a default value is specified in the RTR file.

If the Tunable attribute is not specified in the resource type file, the Tunable value for the property is When_disabled.

This property is required if the Default attribute is not specified in the property declaration in the RTR file.

When disabled 

Conditional 

Scalable (Boolean)

Indicates whether the resource is scalable. If this property is declared in the RTR file, the RGM automatically creates the following scalable service properties for resources of that type: Network_resources_used, Port_list, Load_balancing_policy, and Load_balancing_weights. 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.

When this property is declared in RTR file, the Tunable attribute must be set to At_creation or resource creation fails.

If this property is not declared in the RTR file, the resource is not scalable, the cluster administrator 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, if desired, because they can be useful in a non-scalable service as well as in a scalable service.

At creation 

Optional 

Status on each cluster node (enum)

Set by the resource monitor. Possible values are: OK, degraded, faulted, unknown, and offline. The RGM sets the value to unknown when the resource is brought online and to Offline when it is brought offline.

Never 

Query-only 

Status_msg on each cluster node (string)

Set by the resource monitor at the same time as the Status property. This property can be set per resource, per node. The RGM sets it to the empty string when the resource is brought offline.

Never 

Query-only 

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 only and available to the administrator if it is declared in the RTR file. It is optional if a default value is specified in the RTR file. 

If the Tunable attribute is not specified in the resource type file, the Tunable value for the property is When_disabled.

This property is required if the Default attribute is not specified in the property declaration in the RTR file.

When disabled 

Conditional 

Type (string)

The resource type of which this resource is an instance. 

Never 

Required 

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 may appear as a suffix of the resource type name. When a resource is edited, the Type_version may be changed to a new value.

Its tunability is derived from:

  • The current version of the resource type

  • The #$upgrade_from directive in the RTR file

See description 

See description 

UDP_affinity (Boolean)

If true, all UDP traffic from a given client is sent 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 (the default value).

This property is only used for scalable services. 

When disabled 

Optional 

Weak_affinity (Boolean)

If true, enable the weak form of the client affinity. This allows connections from a given client to be sent to the same server node except: 

  • When a server listener starts up, for example, due to a fault monitor restarts, a resource failover or switchover, or a node rejoining a cluster after failing.

  • When Load_balancing_weights for the scalable resource changes due to an administration 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. 

When disabled 

Optional 

Resource Group Properties

The following table describes the resource group properties defined by Sun Cluster. The property values are categorized as follows (in the Category column):

The Can Be Updated? column shows whether the property can be updated (Y) or not (N) after it is initially set.

Table A–3 Resource Group Properties

Property Name 

Description 

Can Be Updated? 

Category 

Auto_start_on_new_cluster (Boolean)

This property disallows automatic startup of the Resource Group when a new cluster is forming. 

 

The default is TRUE. If set to TRUE, the Resource Group Manager attempts to start the resource group automatically to achieve Desired_primaries when the cluster is rebooted. If set to FALSE, the Resource Group does not start automatically when the cluster reboots.

Optional 

Desired_primaries (integer)

The number of nodes where the group is desired to be online at once. 

The default is 1. 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.

Optional 

Failback (Boolean)

A Boolean value that indicates whether to recalculate the set of nodes where the group is online when the cluster membership changes. A recalculation can cause the RGM to bring the group offline on less preferred nodes and online on more preferred nodes. 

The default is False.

Optional 

Global_resources_used (string array)

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

The default is all global resources. 

Optional 

Implicit_network_dependencies (Boolean)

A Boolean value that indicates, when True, that the RGM should enforce implicit strong dependencies of non-network-address resources on network-address 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. 

The default is True.

Optional 

Maximum_primaries (integer)

The maximum number of nodes where the group might be online at once. 

The default is 1. 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.

Optional 

Nodelist (string array)

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

The default is the list of all cluster nodes. 

Optional 

Pathprefix (string)

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

The default is the empty string. 

Optional 

Pingpong_interval (integer)

A non-negative integer value (in seconds) used by the RGM to determine where to bring the resource group online in the event of a reconfiguration or as the result of a scha_control -O GIVEOVER command or scha_control() function with the SCHA_GIVEOVER argument being executed.

In the event of a reconfiguration, if the resource group fails to come online more than once within the past Pingpong_interval seconds on a particular node (because the resource's Start or Prenet_start method exited non-zero or timed out), that node is considered ineligible to host the resource group and the RGM looks for another master.

If a call to a resource's scha_control command or scha_control() function causes the resource group to be brought offline on a particular node within the past Pingpong_interval seconds, that node is ineligible to host the resource group as the result of a subsequent call to scha_control() originating from another node.

The default value is 3,600 (one hour). 

Optional 

Resource_list (string array)

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

The default is the empty list. 

Query-only 

RG_description (string)

A brief description of the resource group. 

The default is the empty string. 

Optional 

RG_mode (enum)

Indicates whether the resource group is a failover or 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.

If the value of this property is Scalable, the RGM allows the Maximum_primaries property to have a value greater than 1, meaning the group can be mastered by multiple nodes 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.

The default is Failover if Maximum_primaries is 1 and Scalable if Maximum_primaries is greater than 1.

Optional 

RG_name (string)

The name of the resource group. This name must be unique within the cluster. 

Required 

RG_project_name (string)

The Solaris project name 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 launches the related processes under this project name for resources that do not have the Resource_project_name property set. The specified project name must exist in the projects database and the user root must be configured as a member of the named project.

This property is only supported starting in Solaris 9. 


Note –

Changes to this property take effect after the resource has been restarted.


Any time 

Required 

RG_state on each cluster node (enum)

Set by the RGM to Online, Offline, Pending_online, Pending_offline, Pending_online_blocked, Error_stop_failed, or Online_faulted to describe the state of the group on each cluster node.

This property is not user configurable. However, you can indirectly set this property by invoking scswitch(1M) (or by using the equivalent scsetup(1M) or SunPlex Manager commands).

Query-only 

Resource Property Attributes

The following table describes the resource property attributes that can be used to change system-defined properties or create extension properties.


Caution – Caution –

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


Table A–4 Resource Property Attributes

Property 

Description 

Property

The name of the resource property. 

Extension

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

Description

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

Type of the property 

Allowable types are: string, boolean, int, 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.

Default

Indicates a default value for the property. 

Tunable

Indicates when the cluster administrator can set the value of this property in a resource. Can be set to None or False to prevent the administrator from setting the property. Values that allow administrator tuning are: True or Anytime (at any time), At_creation (only when the resource is created), or When_disabled (when the resource is offline).

The default is True (Anytime).

Enumlist

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

Min

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

Max

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

Minlength

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

Maxlength

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

Array_minsize

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

Array_maxsize

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