本节介绍 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_start 和 rt_name _monitor_stop,它们调用 rt_name_probe 来启动和停止缺省监视器。
rt_name_monitor_check
rt_name_monitor_start
rt_name_monitor_stop
rt_name_probe
rt_name_svc_start
rt_name_svc_stop
rt_name_update
rt_name_validate
有关以上每一个方法的详细信息,请参阅 rt_callbacks(1HA) 手册页。
在 install_directory/ rt_name/src 目录中(C 输出),Agent Builder 将生成以下文件:
头文件 (rt_name .h)。
包含所有方法通用的代码的源文件 (rt_name .c)。
通用代码的对象文件 (rt_name .o)。
每个方法的源文件 (*.c)。
每个方法的对象文件 (*.o)。
Agent Builder 将 rt_name .o 文件链接到每个方法的 .o 文件,以在 install_directory/ rt_name/bin 目录中创建可执行文件。
对于 ksh 输出,install_directory /rt_name/bin 和 install_directory/rt_name/src 目录是一样的 — 每个都包含八个可执行脚本(对应于七个回叫方法和一个 PROBE 方法)。
ksh 输出包含有两个已编译的公用程序(gettime 和 gethostnames),某些回叫方法需要使用这些公用程序来获取时间并进行探测。
您可以编辑源代码并运行 make 命令来重新编译代码,完成时,可以运行 make pkg 命令生成新的软件包。 为支持对源代码进行修改,Agent Builder 在源代码中添加代码的相应位置嵌入了注释。 请参阅编辑已生成的源代码。
生成资源类型并将其软件包安装在群集上之后,您还必须获取该资源类型在群集上运行的实例(资源),通常方法是使用管理命令或 SunPlex Manager。 但是,为了方便,Agent Builder 将生成用于获取实例的定制公用程序脚本(启动脚本)以及用来停止和删除目标资源类型的资源的脚本。 这三个脚本位于 install_directory /rt_name/util 目录中,用于执行以下操作:
启动脚本 — 用来登记资源类型和创建必要的资源组和资源。 该脚本还可用来创建使应用程序可以与网络上的客户机进行通信的网络地址资源(LogicalHostname 或 SharedAddress)。
停止脚本 — 用来停止和禁止资源。
删除脚本 — 用来撤消启动脚本进行的工作,即它将停止和删除系统中的资源、资源组和目标资源类型。
删除脚本仅适用于通过相应的启动脚本启动的资源,因为这些脚本使用内部惯例来命名资源和资源组。
Agent Builder 通过将应用程序名称附加到脚本名称来命名这些脚本。 例如,如果应用程序名称为 ftp,则这些脚本名称分别为 startftp、stopftp 和 removeftp。
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 将支持文件(例如 pkginfo、postinstall、postremove 和 preremove)放置在 install_directory/rt_name/etc 目录中。 此目录中还包含资源类型登记 (RTR) 文件,当通过群集进行登记时,该文件用来声明目标资源类型可用的资源和资源类型特性并初始化特性值(有关详细信息,请参阅设置资源和资源类型特性)。 RTR 文件被命名为 vendor_name.resource_type_name, 例如,SUNW.ftp。
您可以在不重新编译源代码的情况下使用标准的文本编辑器编辑此文件并进行更改, 但是,您必须使用 make pkg 命令重新生成软件包。
install_directory/rt_name/pkg 目录中包含 Solaris 软件包。 该软件包的名称是由供应商名称和应用程序名称顺序连接而成的,例如 SUNWftp。 install_directory/rt_name/src 目录中的 Makefile 支持新软件包的创建。 例如,如果您要更改源文件并重新编译代码,或要更改软件包公用程序脚本,则需使用 make pkg 命令创建新的软件包。
当您从群集中删除软件包时,如果尝试从多个节点同时运行 pkgrm 命令,则该命令可能会失败。 您可以采用以下两种方法之一来解决此问题:
从任意节点运行 pkgrm 之前,请先从群集的一个节点上运行 removert_name 脚本。
先从群集的一个节点上运行 pkgrm(这可进行必要的清除工作),然后再从剩余节点运行 pkgrm(如果需要可同时运行)该命令。
若因您尝试从多个节点同时运行 pkgrm 而导致该命令失败,则请先从一个节点再次运行该命令,然后再从剩余节点运行该命令。
如果您要生成 C 或 ksh 源代码,则 Agent Builder 将在工作目录中生成一个配置文件,包含您在“创建”屏幕和“配置”屏幕上所输入的信息的 rtconfig。 如果您从现有资源类型的工作目录启动 Agent Builder(或使用“文件”菜单的“装入资源类型”命令装入现有资源类型),Agent Builder 将读取 rtconfig 文件并使用您所提供的现有资源类型的信息填充“创建”和“配置”屏幕上的各项内容。 当您克隆现有资源类型时,此功能非常有用(请参阅克隆现有的资源类型)。