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

Agent Builder 的输出

本节介绍 Agent Builder 生成的输出。

源文件和二进制文件

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

为支持此模型,Agent Builder 将在 install_directory/rt_name/bin 目录中生成用作回调方法的八个可执行 C 程序或 Korn shell 脚本。


注意 –

严格地说,用来实现故障监视器的 rt_name _probe 程序不是回调程序。RMG 并不直接调用 rt_name _probe,而是调用 rt_name _monitor_startrt_name _monitor_stop,它们通过调用 rt_name_probe 来启动和停止故障监视器。


以下列出了 Agent Builder 生成的八个方法:

有关以上各方法的详细信息,请参见 rt_callbacks( 1HA) 手册页。

Agent Builder 将在 install_directory/rt_name/src 目录中(C 输出)生成以下文件:

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 在源代码中您可以添加代码的相应位置加入了注释。请参见编辑已生成的源代码

实用程序脚本和手册页

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


注意 –

删除脚本仅适用于通过相应的启动脚本启动的资源,因为这些脚本使用内部约定来命名资源和资源组。


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

Agent Builder 在 install_directory /rt_name/man/man1m 目录中提供了每个实用程序脚本的手册页。在启动这些脚本之前您应该首先阅读这些手册页,因为其中记录了需要传送到脚本的参数。

要查看这些手册页,请使用 -M 选项和 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 将支持文件(例如 pkginfopostinstallpostremovepreremove)放置在 install_directory/rt_name/etc 目录中。此目录中还包含资源类型注册 (RTR) 文件,当通过群集注册资源时,该文件用来声明目标资源类型可以使用的资源和资源类型特性,并初始化这些特性值。有关更多信息,请参见设置资源和资源类型特性。RTR 文件以 vendor_name. resource_type_name 形式命名,例如 SUNW.ftp

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

软件包目录

install_directory/rt_name/pkg 目录中包含 Solaris 软件包。该软件包的名称是由供应商名称和应用程序名称连接而成的,例如 SUNWftpinstall_directory/rt_name/src 目录中的 Makefile 支持新软件包的创建。例如,如果您要更改源文件并重新编译代码,或要更改软件包实用程序脚本,则需使用 make pkg 命令创建新的软件包。

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

若因您尝试从多个节点同时运行 pkgrm 而导致该命令失败,则请先从一个节点再次运行该命令,然后再从剩余节点运行该命令。

rtconfig 文件

如果要在工作目录中生成 C 或 Korn shell 源代码,Agent Builder 将生成一个配置文件 rtconfig,该文件包含了您在“创建”屏幕和“配置”屏幕上所输入的信息。如果从现有资源类型的工作目录中启动 Agent Builder(或通过从“文件”下拉菜单上选择“装入资源类型”来装入现有资源类型),Agent Builder 将读取 rtconfig 文件,并在“创建”屏幕和“配置”屏幕上填入该文件中的信息(即您为现有资源类型提供的信息)。当克隆现有资源类型时,此功能非常有用。请参见克隆现有的资源类型的方法