Oracle® Solaris Cluster 参考手册

退出打印视图

更新时间: 2014 年 7 月,E51743-01
 
 

rt_callbacks (1HA)

名称

rt_callbacks - 用于管理作为 Oracle Solaris Cluster 资源的服务的回调接口

用法概要

method-path -R resource -T type -G group [-Z zonename]
validate-path [-c | -u] -R resource -T type -G group [-r prop=
     val] [-x prop=val] [-g prop=val] [-Z zonename] [-X prop{nodeid}=
     val]

描述

Oracle Solaris Cluster 资源类型的回调接口定义资源组管理器 (Resource Group Manager, RGM) 用于控制作为群集资源的服务的接口。资源类型的实现器提供充当回调方法的程序或脚本。

method-path

在资源类型注册文件中声明的程序的路径。该程序在 clresourcetype 命令中已注册为资源类型的以下回调方法之一:STARTSTOPINITFINIBOOTPRENET_STARTPOSTNET_STOPMONITOR_STARTMONITOR_STOPMONITOR_CHECKUPDATE。请参见 clresourcetype(1CL)rt_reg(4) 手册页。

validate-path

在资源类型注册文件中已声明为资源类型的 VALIDATE 方法的程序的路径。该程序已在 clresourcetype 命令中注册。

回调方法是传递的指定选项,预计用于采取特定操作以控制群集上的服务操作。

资源类型开发者在资源类型注册文件中声明回调方法程序的路径。群集管理员使用 clresourcetype 命令在群集配置中注册资源类型。随后群集管理员可以使用该注册的资源类型创建资源。这些资源是在 RGM 管理的资源组中配置的。

RGM 通过自动调用 RGM 所管理的资源组中的资源的回调方法来响应事件。回调方法预计用于对由资源表示的服务采取特定操作。这些操作的示例包括在某个群集节点上停止和启动服务。

回调方法返回的退出状态代码告知 RGM 回调方法是成功还是失败。如果方法失败,RGM 会采取操作,或者报告资源状态为故障。因此,群集管理员可以记下该故障并采取相应操作。

选项

支持以下选项:

–c

指定在群集管理员创建资源时调用该方法,以验证所有资源和资源组属性的初始设置。

RGM 可指定 –c 选项或 –u 选项,但从不会同时指定这两个选项。

当群集管理员创建资源且调用 VALIDATE 方法时,所有系统定义的属性、扩展属性和资源组属性均将传递给 VALIDATE 方法。当群集管理员更新资源且调用 VALIDATE 方法时,仅将要更新的属性传递给 VALIDATE 方法。

–g prop =val

指定要传递给 VALIDATE 方法的资源组属性的值。

prop

资源组属性的名称。

val

群集管理员创建或更新资源时要传递给该方法的值。

–G group

指定在其中配置资源的资源组的名称。

–r prop =val

指定要传递给 VALIDATE 方法的系统定义的资源属性的值。

prop

系统定义的资源属性的名称。

val

群集管理员创建或更新资源时要传递给该方法的值。

–R resource

指定为其调用该方法的资源的名称。

–T type

指定资源的资源类型名称。

–u

指定在群集管理员更新现有资源或现有资源组的属性时调用该方法。

RGM 可指定 –c 选项或 –u 选项,但从不会同时指定这两个选项。

当群集管理员创建资源且调用 VALIDATE 方法时,所有系统定义的属性、扩展属性和资源组属性均将传递给 VALIDATE 方法。当群集管理员更新资源且调用 VALIDATE 方法时,仅将要更新的属性传递给 VALIDATE 方法。

–x prop =val

为本地节点指定资源扩展属性的值。

prop

资源扩展属性的名称。扩展属性是由资源类型实现定义的。此扩展属性是在资源类型注册文件的参数表中声明的。

val

群集管理员创建或更新资源时要传递给该方法的值。

–X prop{ nodeid}=val

为指定的节点指定每节点资源扩展属性的值。

prop

资源扩展属性的名称。扩展属性是由资源类型实现定义的。此扩展属性在资源类型注册文件的参数表中声明为每节点属性。

node

整数节点 ID。它用于指定在其上设置每节点属性值的节点。

val

群集管理员创建或更新资源时要传递给该方法的值。

–Z zonename

指定在其中配置要运行的资源组的非全局区域的名称。

如果 Global_zone 资源类型属性设置为 TRUE,即使包含该资源的资源组在非全局区域中运行,这些方法也将在全局区域中执行。该选项提供在其中配置要运行的资源组的非全局区域的名称。

只要满足以下任一条件,就不会传递 –Z 选项。

  • Global_zone 属性设置为 FALSE

  • 资源组配置为在全局区域中运行。

用法

回调方法是由调用它们的 RGM 机制定义的。这些方法预计用于对群集资源执行操作。这些方法预计还用于返回退出状态,后者将报告方法是成功还是失败。以下部分将介绍每个回调方法。

BOOT

如果节点在引导或重新引导时加入或重新加入群集,就会调用该方法。该方法会在 Init_nodes 资源类型属性指定的节点上调用。与 INIT 类似,该方法用于初始化在包含该资源的资源组联机之后加入群集的节点上的资源。对于位于受管资源组中的资源,会调用该方法;但对于位于不受管资源组中的资源,不会调用该方法。

FINI

当包含该资源的资源组取消 RGM 管理时,会调用该方法。该方法会在 Init_nodes 资源类型属性指定的节点上调用。该方法会取消配置资源并清除 INIT 方法或 BOOT 方法设置的任何持久性设置。

INIT

当包含该资源的资源组置于 RGM 管理之下时,会调用该方法。该方法会在 Init_nodes 资源类型属性指定的节点上调用。该方法将初始化资源。

MONITOR_CHECK

在将包含该资源的资源组重定位到新的节点之前,会调用该方法。在故障监视器执行 scha_control 命令或 scha_control() 函数的 GIVEOVER 选项时,会调用该方法。请参见 scha_control(1HA)scha_control(3HA) 手册页。

该方法会在作为资源组的潜在新主节点的任意节点上调用。MONITOR_CHECK 方法用于评估节点的运行状况是否能足以运行资源。MONITOR_CHECK 方法必须以这样一种方式实现,即它不与同时运行的其他方法相冲突。

如果 MONITOR_CHECK 方法失败,它将禁止将资源组重定位到调用了回调的节点。

MONITOR_START

资源启动后,会在启动该资源的同一节点上调用该方法。该方法会启动资源的监视器。

MONITOR_START 失败将导致 RGM 将资源状态设置为 MONITOR_FAILED

MONITOR_STOP

资源停止之前,会在运行该资源的同一节点上调用该方法。该方法会停止资源的监视器。在群集管理员禁用监视时,也会调用该方法。

RGM 在 MONITOR_STOP 方法失败时所采取的操作取决于资源的 Failover_mode 属性设置。如果 Failover_mode 设置为 HARD,RGM 会尝试通过重新引导节点来强制停止资源。否则,RGM 将资源的状态设置为 STOP_FAILED

POSTNET_STOP

作为 STOP 方法的辅助方法,该方法旨在执行在将相关网络地址配置为关闭之后需要执行的关闭操作。该方法会在已调用 STOP 方法的节点上调用。在资源组中的网络地址已配置为关闭且资源的 STOP 方法已调用之后,会调用该方法。但是,该方法会在网络地址处于非活动状态之前被调用。POSTNET_STOP 方法在资源的 STOP 方法之后以及依赖于该资源的任意资源的 POSTNET_STOP 方法之后调用。

RGM 在 POSTNET_STOP 方法失败时所采取的操作取决于资源的 Failover_mode 属性设置。如果 Failover_mode 设置为 HARD,RGM 会尝试通过中止节点来强制停止资源。否则,RGM 将资源的状态设置为 STOP_FAILED

PRENET_START

作为 START 方法的辅助方法,该方法旨在执行在将相关网络地址配置为打开之前需要执行的启动操作。该方法会在要调用 START 方法的节点上调用。同一资源组中的网络地址已处于活动状态之后会调用该方法。但是,该方法在地址配置为打开之前以及资源的 START 方法调用之前调用。PRENET_START 方法在资源的 START 方法之前以及依赖于该资源的任意资源的 PRENET_START 方法之前调用。

RGM 在 PRENET_START 方法失败时所采取的操作取决于资源的 Failover_mode 属性设置。如果 Failover_mode 设置为 SOFTHARD,RGM 会尝试将包含该资源的资源组重定位到其他节点。否则,RGM 将资源的状态设置为 START_FAILED

START

当包含该资源的资源组在某个群集节点上联机时,将在该节点调用此方法。群集管理员可以使用 clresourcegroup 命令切换打开关闭状态。START 方法激活节点上的资源。

RGM 在 START 方法失败时所采取的操作取决于资源的 Failover_mode 属性设置。如果 Failover_mode 设置为 SOFT HARD,RGM 会尝试将资源的组重定位到其他节点。否则,RGM 将资源的状态设置为 START_FAILED

STOP

当包含该资源的资源组在某个群集节点上脱机时,将在该节点调用此方法。群集管理员可以使用 clresourcegroup 命令切换打开关闭状态。如果资源处于活动状态,此方法将停用该资源。

RGM 在 STOP 方法失败时所采取的操作取决于资源的 Failover_mode 属性设置。如果 Failover_mode 设置为 HARD,RGM 会尝试通过重新引导节点来强制停止资源。否则,RGM 将资源的状态设置为 STOP_FAILED

UPDATE

调用该方法以通知运行的资源其属性已更改。在 RGM 成功设置资源或其资源组的属性之后,会调用 UPDATE 方法。该方法会在资源处于联机状态的节点上调用。该方法可调用 scha_resource_getscha_resourcegroup_get 命令读取可影响活动资源的属性值并相应地调整运行的资源。

VALIDATE

在创建资源或者更新资源或包含该资源的资源组时,会调用此方法。VALIDATE 会在由资源类型的 Init_nodes 属性指定的一组群集节点上调用。

在应用资源的创建或更新之前,会调用 VALIDATE 方法。如果该方法在某个节点上失败且生成了失败退出状态代码,则会取消创建或更新。

当群集管理员创建资源且调用 VALIDATE 方法时,所有系统定义的属性、扩展属性和资源组属性均将传递给 VALIDATE 方法。当群集管理员更新资源且调用 VALIDATE 方法时,仅将要更新的属性传递给 VALIDATE 方法。您可以使用 scha_resource_get scha_resourcegroup_get 命令检索未更新的资源属性。

VALIDATE 命令行中用两个不同的 –r 选项传递资源依赖性属性。一个 –r 选项仅列出资源名称,表示在本地节点上适用的依赖性。另一个 –r 选项包括带有限定符(如 {LOCAL_NODE})的整个依赖性列表。属性名称 Resource_dependencies、Resource_dependencies_offline_restart、Resource_dependencies_restart 和 Resource_dependencies_weak 提供本地节点的不带限定符的依赖性名称。对应的属性名称 Resource_dependencies_Q、Resource_dependencies_Q_offline_restart、Resource_dependencies_Q_restart 和 Resource_dependencies_Q_weak 提供带有限定符的相同依赖性列表。

例如,可设置以下内容:

# clresource set -p Resource_dependencies=r1@node1,r2@node2,r3{local_node},r4

在节点 1 上,以下参数将传递给 VALIDATE 方法:

... -r Resource_dependencies=r1,r3,r4
-r Resource_dependencies_Q=r1@node1,r2@node2,r3{local_node},r4
 ...

在节点 2 上,Resource_dependencies 属性的值将为 r2,r3,r4,而 Resource_dependencies_Q 属性的值在所有节点上均相同。类似地,属性名称 Resource_dependencies_Q_weak、Resource_dependencies_Q_restart 和 Resource_dependencies_Q_offline_restart 分别对应于依赖性属性 Resource_dependencies_weak、Resource_dependencies_restart 和 Resource_dependencies_offline_restart。

如果不显式设置 Network_resources_used 属性,它的值将从四个 Resource_dependencies 属性中派生,其中包含在这四个属性中出现的所有网络地址资源。每个节点上的 Network_resources_used 属性派生值反映了存在的任何每节点依赖性,各节点的值可能会有所不同。

当您实现 VALIDATE 方法时,您向 stdoutstderr 写入的任意消息均将传回至用户命令。在解释验证失败的原因或为用户提供与资源相关的说明时,此操作很有用。

环境变量

Oracle Solaris Cluster 资源管理回调方法是由 RGM 使用超级用户权限执行的。实现方法的程序预计要使用相应执行权限进行安装,为安全起见,这些程序应不可写。

为执行回调方法而设置的环境变量如下所示:

HOME=/
PATH=/usr/bin:/usr/cluster/bin
LD_LIBRARY_PATH=/usr/cluster/lib

SIGNALS

如果回调方法的调用操作超出其超时周期,该进程将首先发送一个 SIGTERM 信号。如果 SIGTERM 信号无法在十秒内停止方法执行,进程将发送一个 SIGKILL 信号。

退出状态

返回以下退出状态代码。

0

命令已成功完成。

非零值

发生错误。

失败退出状态的特定值不影响 RGM 对故障执行的操作。但是,在方法失败时,退出状态会记录在群集日志中。资源类型实现可能会定义不同的非零退出代码以通过群集日志向群集管理员传达相关错误信息。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
ha-cluster/developer/api
接口
稳定性
Evolving(发展中)

另请参见

clresourcegroup(1CL)clresourcetype(1CL)scha_cmds(1HA)scha_control(1HA)scha_resource_get(1HA)scha_resourcegroup_get(1HA)signal(3C)stdio(3C)scha_calls(3HA)scha_control(3HA)rt_reg(4)attributes(5)