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

输出

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

源文件和二进制文件

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

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


注意:

严格地说,用来实现缺省监视器的 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 目录中创建可执行文件。

对于 ksh 输出,install_directory /rt_name/bininstall_directory/rt_name/src 目录是一样的 — 每个都包含八个可执行脚本(对应于七个回叫方法和一个 PROBE 方法)。


注意:

ksh 输出包含有两个已编译的公用程序(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 或 ksh 源代码,则 Agent Builder 将在工作目录中生成一个配置文件,包含您在“创建”屏幕和“配置”屏幕上所输入的信息的 rtconfig。 如果您从现有资源类型的工作目录启动 Agent Builder(或使用“文件”菜单的“装入资源类型”命令装入现有资源类型),Agent Builder 将读取 rtconfig 文件并使用您所提供的现有资源类型的信息填充“创建”和“配置”屏幕上的各项内容。 当您克隆现有资源类型时,此功能非常有用(请参阅克隆现有的资源类型)。