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

Agent Builder 的输出

源文件和二进制文件

用来管理群集上的资源组并最终管理资源的资源组管理器 (RGM)。RGM 基于回调模型进行工作。特定事件发生时(例如节点故障),RGM 将为在受影响的节点上运行的每个资源调用资源类型的方法。例如,RGM 将调用 Stop 方法来停止在受影响节点上运行的资源,然后再调用该资源的 Start 方法以在其它节点上启动该资源。有关此模型的更多信息,请参见资源组管理器模型回调方法rt_callbacks(1HA) 手册页。

为了支持该模型,Agent Builder 将在 install-directory/rt-name/bin 目录中生成八个可执行的 C 程序或 Korn shell 脚本。这些程序或 shell 脚本做为回调方法。


注 –

严格地说,实现故障监视器的 rt-name_probe 程序不是回调程序。RGM 并不直接调用 rt-name_probe,而是调用 rt-name_monitor_startrt-name_monitor_stop。然后这两种方法通过调用 rt-name_probe 来启动和停止故障监视器。


下面是 Agent Builder 生成的八种方法:

有关每种方法的特定信息,请参见 rt_callbacks(1HA) 手册页。

install-directory/rt-name/src 目录(C 输出)中,Agent Builder 将生成以下文件:

Agent Builder 将 rt-name.o 文件链接至每个方法 .o 文件以在 install-directory/rt-name/bin 目录中创建可执行文件。

对于 Korn shell 输出,install-directory/rt-name/bininstall-directory/rt-name/src 目录相同。每个目录都包含八个可执行脚本,分别对应七个回调方法和 Probe 方法。


注 –

Korn shell 输出包括两个已编译的实用程序,gettimegethostnames。特殊回调方法需要使用这些方法来获取时间和进行探测。


您可以编辑源代码并运行 make 命令来重新编译代码,并在完成时运行 make pkg 命令以生成新的软件包。为支持对源代码进行更改,Agent Builder 在源代码中的恰当位置嵌入了注释,您可以在这些注释中添加代码。请参见编辑已生成的源代码

Sun Agent Builder 创建的实用程序脚本和手册页

生成资源类型并将其软件包安装到群集上之后,您还必须获取在群集上运行的该资源类型的实例(资源)。通常,可以使用管理命令或 SunPlex Manager 获取实例。但是为了方便起见,Agent Builder 将生成用于启动目标资源类型的资源的定制实用程序脚本,还将生成用于停止和删除该资源的脚本。位于 install-directory/rt-name/util 目录中的这三个脚本具有以下作用:


注 –

您只能使用与启动脚本启动的资源相对应的删除脚本,因为这些脚本使用了内部约定来命名资源和资源组。


Agent Builder 通过将应用程序名称附加到脚本名称来命名这些脚本。例如,如果应用程序名为 ftp,则脚本名分别为 startftpstopftpremoveftp

install-directory/rt-name/man/man1m 中,Agent Builder 为每个实用程序脚本都提供了手册页。启动这些脚本之前,应阅读这些手册页,由于它们记录了需要传送给脚本的参数。

要查看这些手册页,请通过使用 -M 选项和 man 命令来指定此 man 目录的路径。例如,如果 SUNW 为供应商,ftp 为应用程序名,则键入以下命令以查看 startftp(1M) 手册页:


% man -M install-directory/SUNWftp/man startftp

手册页公用程序脚本也可供群集管理员使用。如果 Agent Builder 生成的软件包已安装在群集上,则实用程序脚本的手册页将位于 /opt/rt-name/man 目录中。例如,键入以下命令可以查看 startftp(1M) 手册页:


% man -M /opt/SUNWftp/man startftp

Agent Builder 创建的支持文件

Agent Builder 将支持文件(例如 pkginfopostinstallpostremovepreremove)置于 install-directory/rt-name/etc 目录中。此目录还包含资源类型注册 (RTR) 文件。RTR 文件将声明目标资源类型可用的资源和资源类型属性,并在群集中注册资源时初始化属性值。有关更多信息,请参见设置资源和资源类型属性。RTR 文件被命名为 vendor-name.resource-type-name,例如,SUNW.ftp

您可以在不重新编译源代码的情况下使用标准的文本编辑器编辑此文件并进行更改,但是,您必须使用 make pkg 命令重建软件包。

Agent Builder 创建的软件包目录

install-directory/rt-name/pkg 目录包含 Solaris 软件包。软件包的名称是供应商名和应用程序名的串联,例如 SUNWftp。在 install-directory/rt-name/src 中的 make 程序的描述文件支持新软件包的创建。例如,如果您对源文件进行了更改并重新编译了其代码,或对软件包实用程序脚本进行了更改,则可以使用 make pkg 命令创建新软件包。

如果您尝试从多个节点同时运行 pkgrm 命令来从群集中删除一个软件包,则该命令将失败。您可以采用以下两种方法之一来解决此问题:

如果由于在多个节点上尝试同时运行 pkgrm 而使该命令失败,请在一个节点上再次运行该命令。然后,在其余节点运行该命令。

rtconfig 文件

如果在工作目录中生成 C 或 Korn shell 源代码,则 Agent Builder 将生成名为 rtconfig 的配置文件。此文件包含您在“创建”和“配置”屏幕上指定的信息。如果从现有资源类型的工作目录启动 Agent Builder,则 Agent Builder 将读取 rtconfig 文件。Agent Builder 将把您为现有资源类型提供的信息填充到“创建”和“配置”屏幕中。如果您通过从“文件”下拉式菜单中选择“装入资源类型”来装入现有资源类型,则 Agent Builder 将以相似的方式进行工作。当克隆现有资源类型时,此功能非常有用。请参见重复使用使用 Agent Builder 创建的代码