Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

设置资源和资源类型属性

Sun Cluster 提供了一组用来定义数据服务静态配置的资源类型属性和资源属性。资源类型属性可指定资源的类型及其版本、API 版本和每个回调方法的路径。资源类型属性中列出了所有资源类型属性。

资源属性(例如 Failover_modeThorough_probe_interval 和方法超时)还定义资源的静态配置。动态资源属性(例如 Resource_state Status)反映受管理资源的活动状态。资源属性中介绍了资源属性。

资源类型和资源属性在资源类型注册 (RTR) 文件中声明,该文件是数据服务的基本组件。RTR 文件用于在群集管理员使用 Sun Cluster 注册数据服务时定义数据服务的初始配置。

请使用 Agent Builder 生成数据服务的 RTR 文件,这是因为 Agent Builder 声明了一组对任何数据服务既有用又必需的属性。例如,某些特殊属性(如 Resource_type)必须在 RTR 文件中声明。否则,数据服务注册将失败。其他属性尽管没有此方面的要求,但是如果不在 RTR 文件中声明它们,群集管理员将无法使用。而某些属性无论是否进行了声明都可以使用,这是因为 RGM 对其进行了定义并为其提供默认值。为了避免这种复杂的情况,请使用 Agent Builder 以确保生成正确的 RTR 文件。如果需要,您可以在以后对该 RTR 文件进行编辑,以更改特定值。

本节的其余部分介绍了由 Agent Builder 创建的 RTR 文件样例。

声明资源类型属性

群集管理员无法配置您在 RTR 文件中声明的资源类型属性。这些属性将成为永久资源类型配置中的一部分。


注 –

资源类型属性 Installed_nodes 只能由群集管理员进行配置。您无法在 RTR 文件中声明 Installed_nodes


资源类型声明的语法如下所示:

property-name = value;

注 –

资源组、资源和资源类型的属性名称区分大小写。在指定属性名称时,您可以使用大小写字母的任意组合。


以下是 RTR 文件中用于样例 (smpl) 数据服务的资源类型声明:

# Sun Cluster Data Services Builder template version 1.0
# Registration information and resources for smpl
#
#NOTE: Keywords are case insensitive, i.e., you can use
#any capitalization style you prefer.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Sample Service on Sun Cluster";

RT_version ="1.0"; 
API_version = 2;
Failover = TRUE;

Init_nodes = RG_PRIMARIES;

RT_basedir=/opt/SUNWsmpl/bin;

Start           =    smpl_svc_start;
Stop            =    smpl_svc_stop;

Validate        =    smpl_validate;
Update          =    smpl_update;

Monitor_start   =    smpl_monitor_start;
Monitor_stop    =    smpl_monitor_stop;
Monitor_check   =    smpl_monitor_check;

提示 –

您必须将 Resource_type 属性声明为 RTR 文件中的第一项。否则,资源类型注册将失败。


第一组资源类型声明提供了有关资源类型的基本信息。

Resource_typeVendor_id

提供资源类型的名称。您可以仅使用 Resource_type 属性指定资源类型名称 (smpl),或使用 Vendor_id 属性作为前缀,并用“.”将该属性与资源类型分隔开 (SUNW.smpl),如样例中所示。如果您使用 Vendor_id,请使其成为公司用于定义资源类型的股市符号。在群集中资源类型的名称必须唯一。


注 –

按照约定,资源类型名称 (vendoridApplicationname) 用作软件包名称。从 Solaris 9 操作系统开始,供应商 ID 和应用程序名称的组合可以超过九个字符。但是,如果您使用的是 Solaris 操作系统的早期版本,则供应商 ID 和应用程序名称的组合不能超过九个字符(尽管 RGM 并没有强制此限制)。

另外,在所有情况下,Agent Builder 都明确地根据资源类型名称生成软件包名称,因此它将强制执行九个字符的限制。


RT_description

简要地介绍资源类型。

RT_version

用于标识数据服务样例的版本。

API_version

用于标识 API 的版本。例如,API_version = 2 表明数据服务可以安装在从 Sun Cluster 3.0 开始的 Sun Cluster 的所有版本上;API_version = 5 表明数据服务可以安装在从 Sun Cluster 3.1 9/04 开始的 Sun Cluster 的所有版本上。但是,API_version = 5 还表明数据服务无法安装在 Sun Cluster 3.1 9/04 发行之前的 Sun Cluster 的所有版本上。有关该属性的详细信息,请参见资源类型属性中有关 API_version 条目下的内容。

Failover = TRUE

表明数据服务无法在可同时在多个节点上联机的资源组中运行。换句话说,该声明指定了一个故障转移数据服务。有关该属性的详细信息,请参见资源类型属性中有关 Failover 条目下的内容。

StartStopValidate

提供由 RGM 调用的各个回调方法程序的路径。这些路径是 RT_basedir 所指定的目录的相对路径。

其余的资源类型声明提供了配置信息。

Init_nodes = RG_PRIMARIES

指定 RGM 仅在可以主控数据服务的节点上调用 InitBootFiniValidate 方法。RG_PRIMARIES 所指定的节点是安装有数据服务的所有节点的一个子集。将值设置为 RT_INSTALLED_NODES 可指定 RGM 在安装有数据服务的所有节点上调用这些方法。

RT_basedir

指向 /opt/SUNWsample/bin,作为指向完整相对路径(例如回调方法路径)的目录路径。

StartStop Validate

提供指向由 RGM 调用的各个回调方法程序的路径。这些路径是 RT_basedir 所指定的目录的相对路径。

声明资源属性

与资源类型属性一样,资源属性也在 RTR 文件中声明。按照惯例,在 RTR 文件中资源属性声明位于资源类型声明之后。资源声明的语法是一组用花括号括起来的属性值对:

{
    attribute = value;
    attribute = value;
             .
             .
             .
    attribute = value;
}

对于 Sun Cluster 提供的资源属性(称为系统定义的属性),您可以在 RTR 文件中更改特定属性。例如,Sun Cluster 为每个回调方法的方法超时属性提供默认值。在 RTR 文件中,您可以指定各种缺省值。

您还可以使用一组由 Sun Cluster 提供的属性的属性,在 RTR 文件中定义新的资源属性(称为扩展属性)。资源特性属性中列出了用于更改和定义资源属性的属性。在 RTR 文件中,扩展属性声明位于系统定义的属性声明之后。

第一组系统定义的资源属性指定了回调方法的超时值。

...

# Resource property declarations appear as a list of bracketed
# entries after the resource type declarations. The property 
# name declaration must be the first attribute after the open
# curly bracket of a resource property entry.
#
# Set minimum and default for method timeouts.
{
        PROPERTY = Start_timeout;
        MIN=60;
        DEFAULT=300;
}

{
        PROPERTY = Stop_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Validate_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Update_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Start_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Stop_timeout;
        MIN=60;
        DEFAULT=300;
{
        PROPERTY = Monitor_Check_timeout;
        MIN=60;
        DEFAULT=300;
}

属性名称 (PROPERTY = value) 必须是每个资源属性声明的第一个属性。您可以在由 RTR 文件中属性的属性定义的限制内配置资源属性。例如,样例中每个方法超时的缺省值都是 300 秒。群集管理员可以更改此值。但是,由 MIN 属性指定的最小允许值是 60 秒。资源特性属性中包含资源属性的属性列表。

下一组资源属性用于定义在数据服务中有特定用法的属性。

{
        PROPERTY = Failover_mode;
        DEFAULT=SOFT;
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Thorough_Probe_Interval;
        MIN=1;
        MAX=3600;
        DEFAULT=60;
        TUNABLE = ANYTIME;
}

# The number of retries to be done within a certain period before concluding
# that the application cannot be successfully started on this node.
{
        PROPERTY = Retry_count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME; 
}

# Set Retry_interval as a multiple of 60 since it is converted from seconds
# to minutes, rounding up. For example, a value of 50 (seconds)
# is converted to 1 minute. Use this property to time the number of
# retries (Retry_count).
{
        PROPERTY = Retry_interval;
        MAX=3600;
        DEFAULT=300;
        TUNABLE = ANYTIME;
}

{
        PROPERTY = Network_resources_used;
        TUNABLE = WHEN_DISABLED;
        DEFAULT = "";
}
{
        PROPERTY = Scalable;
        DEFAULT = FALSE;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_policy;
        DEFAULT = LB_WEIGHTED;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_weights;
        DEFAULT = "";
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Port_list;
        TUNABLE = ANYTIME;
        DEFAULT = ;
}

这些资源属性声明包含 TUNABLE 属性。该属性将限制在哪种情况下群集管理员可以更改与该属性相关的属性值。例如,值 AT_CREATION 表明群集管理员仅能在创建资源时指定值,并且以后无法更改此值。

对于这些属性中的大多数,您可以接受由 Agent Builder 生成的默认值,除非您有理由更改它们。以下是有关这些属性的信息。有关附加信息,请参见资源属性r_properties(5) 手册页。

Failover_mode

表明在 StartStop 方法失败的情况下,RGM 是应重新查找资源组还是应异常中止节点。

Thorough_probe_intervalRetry_countRetry_interval

用于故障监视器。Tunable 等于 ANYTIME,因此如果故障监视器不能发挥最佳工作效果,群集管理员可以对它们进行调整。

Network_resources_used

数据服务使用的逻辑主机名或共享地址资源的列表。Agent Builder 将声明该属性,以便群集管理员对数据服务进行配置时,可以指定资源列表(如果有)。

Scalable

设置为 FALSE 以表明该资源没有使用群集网络(共享地址)设备。如果将该属性设置为 FALSE,资源类型属性 Failover 必须设置为 TRUE 以表明故障转移服务。有关如何使用该属性的附加信息,请参见将数据服务传送到群集实现回调方法

Load_balancing_policyLoad_balancing_weights

自动声明这些属性。但是,这些属性在故障转移资源类型中不起作用。

Port_list

标识服务器侦听的端口的列表。Agent Builder 将声明该属性,以便群集管理员对数据服务进行配置时,可以指定端口列表。

声明扩展属性

扩展属性位于样例 RTR 文件的结尾处。

# Extension Properties
#

# The cluster administrator must set the value of this property to point to the 
# directory that contains the configuration files used by the application.
# For this application, smpl, specify the path of the configuration file on
# PXFS (typically named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "The Configuration Directory Path(s)";
}

# The following two properties control restart of the fault monitor.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Number of PMF restarts allowed for fault monitor.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time window (minutes) for fault monitor restarts.";
}
# Time out value in seconds for the probe.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time out value for the probe (seconds)";
}

# Child process monitoring level for PMF (-C option of pmfadm).
# Default of -1 means to not use the -C option of pmfadm.
# A value of 0 or greater indicates the desired level of child-process.
# monitoring.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Child monitoring level for PMF";
}
# User added code -- BEGIN VVVVVVVVVVVV
# User added code -- END   ^^^^^^^^^^^^

Agent Builder 将创建以下扩展属性,这些属性对于大多数数据服务来说都有用。

Confdir_list

指定应用程序配置目录的路径,这对于很多应用程序是有用的信息。当群集管理员对数据服务进行配置时,可以提供该目录的位置。

Monitor_retry_countMonitor_retry_intervalProbe_timeout

控制故障监视器本身的重新启动操作,而非服务器守护进程。

Child_mon_level

设置 PMF 要执行的监视级别。有关更多信息,请参见 pmfadm(1M) 手册页。

您可以在由 User added code 注释分界的区域内创建其他扩展属性。