X

News, tips, partners, and perspectives for the Oracle Solaris operating system

为简单任务创建 Sun Cluster 代理

Guest Author



我经常在各种论坛上听到类似下面的问题:

  • 每当资源组故障转移时,我如何发送电子邮件?
  • 在 SunCluster 启动应用程序之前,我如何自动调整此配置文件?
  • 所有这些问题都可以被视为以下问题的变体:“如何在给定资源/组启动之前或之后,运行我自己的自定义脚本来执行此自定义任务?”

    已经熟悉 SunCluster 的用户知道,这需要代理,而 SunCluster 确实具有用于此类用途的工
    具(如 Sun Cluster Agent Builder GUI)和通用数据服务 (Generic Data Service, href="http://docs.sun.com/app/docs/doc/817-0520/6mgajjtks?a=view">GDS) 模型(scdsbuilder 也支持此模型)。这些工具更专注于“应用程序”,并认为将
    运行一组用户级守护进程/进程,由它们构成应用程序。

    处理不同类型的应用程序本身是一个非常复杂的主题,在今天的博客文章中,我马上会介绍一种非常基本的方法。该方法由一些非常简单的步骤组成。

    -创建一个脚本,该脚本将执行您要执行的特定操作。如 #!/bin/ksh logger -p user.notice Start script called with $\* exit 0 请注意
    结尾的 "exit 0",每当 SunCluster 框架调用脚本时,它会告知 SC 框架已经成功执行启动操作 将 syslog 命令替换为您要执行的任意操作。

    假设您将该脚本命名为 startmyscagent。

    -创建一个将针对您在启动脚本中执行的任意操作执行停止操作的脚本。如果不需要该脚本,请跳过此步骤。我们将对停止操作使用 /bin/true。

    -将脚本安装到所有群集节点上的特定位置。建议安装到 /opt 中的某个位置,如 /opt/myscagent。

    -为代理创建一个资源类型注册 (Resource Type Registration, RTR) 文件。将它命名为 "myscagent.rtr"。它将如下所示(剪切并粘贴到您的
    首选编辑器中)。RESOURCE_TYPE = "myscagent"; START=/opt/myscagent/startmyscagent; STOP=/bin/true; 这就是最终的文件!您的“代理开
    发”已经完成!现在可以使用 SunCluster 管理命令注册此资源类型并创建此类资源。例如:

    - scrgadm -at myscagent -f /opt/myscagent/myscagent.rtr - scrgadm -ag RG1 - scrgadm -og RG1 - scrgadm -aj myresource1 -g RG1 -t
    myscagent - scswitch -ej myresource1

    现在,您实现的启动脚本将在 RG 每次启动时被调用。有时,用户希望在群集上的另一个现有资源之前调用启动脚本 myscagent。例如,要确保启动脚本始终
    在名为 "resource2" 的资源启动之前被调用,请执行以下命令:- scrgadm -c -j resource2 -y Resource_dependencies=myresource1 可以确定的是,
    该方法非常基本。它不会在同一资源类型的不同资源之间进行区分。无论创建多少 "myscagent" 类型的不同资源,所采取的操作均完全相同。您完全可以创建另一个名
    为 "myotherscagent"(或其他任何名称)的代理,但如果两个 RT 采取的操作非常相似,则它将很难维护。此外,本文并未提到资源属性或资源监视,也未介绍如何实
    现更高级的方法,如 VALIDATE 和 MONITOR_CHECK 等。

    但该方法可以完成简单的任务,而且在此过程中,您对在资源类型实现方面 SunCluster 资源组管理器 (Resource Group Manager, RGM) 如何调用方法有了
    直接的了解。

    有关本主题的深入介绍,请查看 Sun Docs 站点上的 Sun Cluster 代理开发者指南

    Ashutosh Tripathi 高级软件工程师,SunCluster 工程部

    Be the first to comment

    Comments ( 0 )
    Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha