跳到内容 中国
HP.com 主页 产品与服务 支持及驱动程序 解决方案 如何购买
» 联系惠普
更多选项
HP.com 主页
使用 ServiceGuard OPS Edition 配置 OPS 群集 > 第 3 章 了解 ServiceGuard OPS Edition 的软件组件

程序包管理器如何工作

» 

技术文档资料

完整的 PDF 手册
» 反馈
内容从此开始:

 » 目录

 » 索引

群集中的每个节点都运行一个程序包管理器实例;驻留于群集协调器节点中的程序包管理器称为程序包协调器

程序包协调器可完成如下工作:

  • 确定运行、暂停或移动程序包的时间和位置。

所有节点上的程序包管理器可完成如下工作:

  • 执行用户定义的控制脚本来运行和暂停程序包和程序包服务。

  • 对受监视资源状态的变化作出反应。

程序包类型

以下两种类型的程序包可以在群集中运行:故障切换程序包系统多节点程序包。系统多节点程序包仅适用于采用 VERITAS Cluster Volume Manager (CVM) 作为存储管理器的系统。此程序包称为 VxVM-CVM-pkg,在群集的所有活动节点上运行,且可以向卷管理器软件提供群集成员信息。只有将 CVM 用作存储管理时,才可配置和使用这种类型的程序包。有关为 CVM 创建系统多节点程序包的过程将在第 5 章中介绍。本节的其他部分将介绍标准的故障切换程序包。

故障切换程序包

群集启动时,故障切换程序包将在相应的节点上启动。当程序包协调器在新节点上启动程序包时,将发生程序包故障切换。程序包的故障切换包括暂停现有的程序包(在服务、网络或资源出现故障的情况下)以及启动程序包的新实例。

故障切换如下图所示:

图 3-4 故障切换过程中的程序包移动

故障切换过程中的程序包移动

配置程序包

每个程序包都是单独配置的。您可以通过进行 SAM 或编辑程序包 ASCII 配置文件来创建程序包(在第 6 章中进行了详细说明)。然后执行 cmapplyconf 命令检查程序包并将其应用到群集配置数据库中。此外,还可以创建用于管理程序包服务执行情况的程序包控制脚本。然后程序包就可以运行了。

确定运行和暂停程序包的时间和位置

程序包配置文件为程序包指定了一个名称,并按优先级顺序标识程序包可在其上运行的节点。它还指出是否启用程序包的切换;即在发生故障时,程序包是否应切换到另一节点。另外,程序包故障切换和故障返回策略使程序包管理器可以动态地决定在哪里启动程序包。

OPS 实例的配置类似于程序包配置,只是节点列表中只有一个节点。对于常规的非 OPS 实例程序包,一个程序包中可能会有一个或多个应用程序。程序包配置将在“第 6 章“配置程序包及其服务””一章中详述。

程序包切换

AUTO_RUN 参数(在 ServiceGuard 的早期版本中称为 PKG_SWITCHING_ENABLED 参数)定义程序包在群集启动时的缺省全局切换属性;即在出现故障时程序包是否应该在一个新的节点上自动重新启动,以及它是否应该在群集启动时自动启动。一旦群集运行起来,每个程序包的程序包切换属性就可以通过执行 cmmodpkg 命令进行设置。

该参数可在程序包 ASCII 配置文件中进行配置:

# The default for AUTO_RUN is YES.In the event of a
# failure, this permits the cluster software to transfer the package
# to an adoptive node.Adjust as necessary.

AUTO_RUN   YES
注释:启动和暂停 OPS 实例程序包(以下简称“OPS 程序包”不会从一个节点故障转移到另一节点;它们是单节点程序包。在程序包 ASCII 配置文件中应只包括一个节点名。AUTO_RUN 设置决定在节点加入群集时 OPS 实例是否将启动。群集在同一配置中可以包括 OPS 和非 OPS 程序包。

程序包切换包括将非 OPS 程序包及其相关 IP 地址移动到新的系统中。新系统必须已配置好相同的子网并且运行正常,否则程序包将无法启动。程序包故障切换时,TCP 连接将丢失。TCP 应用程序必须重新连接;此过程不会自动进行。注意,如果程序包依赖于多个子网,则在程序包启动之前目标节点上的所有子网都必须是可用的。

图 3-5 和图 3-6 中说明了可重新定位 IP 地址的切换。图 3-5 显示了一个两节点群集的最初状态,程序包 1 在节点 1 上运行,程序包 2 在节点 2 上运行。OPS 实例在两个节点上分别运行。用户通过他们想使用的程序包的 IP 地址连接到特定节点上。每个节点都有一个与之关联的固定的 IP 地址,每个程序包也都有一个与之关联的 IP 地址。

图 3-5 切换程序包前

切换程序包前

图 3-6 显示的是节点 1 出现故障,程序包 1 已转移到节点 2 的情形。在此情况下,OPS 实例 1 不再运行,但它不会故障切换到节点 2。程序包 1 的 IP 地址已随程序包转移到了节点 2。程序包 1 继续可用且此时在节点 2 上运行。另请注意,此时节点 2 对程序包 1 的磁盘和程序包 2 的磁盘都可进行访问。OPS 实例 2 现在处理所有数据库访问,因为实例 1 已停止。

图 3-6 程序包切换后

程序包切换后

故障切换策略

程序包管理器选择程序包在哪个节点上运行时,依据的是包括在程序包配置文件中的优先级列表,以及在此文件中设置或通过 SAM 设置的 FAILOVER_POLICY 参数。故障切换策略不只是控制故障切换行为,还控制程序包的启动行为,包括初始启动。这两个故障切换策略是 CONFIGURED_NODEMIN_PACKAGE_NODE。这两个参数可在程序包 ASCII 配置文件中进行配置:

# Enter the failover policy for this package.This policy will be used
# to select an adoptive node whenever the package needs to be started.
# The default policy unless otherwise specified is CONFIGURED_NODE.
# This policy will select nodes in priority order from the list of
# NODE_NAME entries specified below.

# The alternative policy is MIN_PACKAGE_NODE.This policy will select
# the node, from the list of NODE_NAME entries below, which is
# running the least number of packages at the time of failover.

#FAILOVER_POLICY        CONFIGURED_NODE

如果将 CONFIGURED_NODE 用作故障切换策略的值,则程序包将在节点列表中优先级最高的节点上启动(假定此节点正在运行,并且是群集中的一个成员)。发生故障切换时,程序包将移动到节点列表中下一个可用且优先级最高的节点上。

如果使用 MIN_PACKAGE_NODE 作为故障切换策略的值,则程序包会在当前运行其他程序包数目最少的节点上启动。(注意,这里指的不是负载最轻,检查的唯一指标是当前在节点上运行的程序包的数目)。

自动循环备用

使用 MIN_PACKAGE_NODE 故障切换策略可以配置这样一个群集,它使您可以将一个节点作为程序包的自动循环备用节点。请考虑如下四节点群集的程序包配置。注意,全部程序包可在所有节点上运行,并且有相同的 NODE_NAME 列表,只是各程序包配置文件中的节点名称顺序不同。

表 3-1 程序包配置数据

程序包名NODE_NAME 列表FAILOVER_POLICY
pkgA节点1、节点2、 节点3、节点4MIN_PACKAGE_NODE
pkgB节点2、节点3、 节点4、节点1MIN_PACKAGE_NODE
pkgC节点3、节点4, 节点1、节点2MIN_PACKAGE_NODE

 

图 3-7 显示了群集启动时各程序包的初始状态。

图 3-7 故障切换之前的循环备用配置

故障切换之前的循环备用配置

发生故障时,任何程序包都将故障切换到运行程序包数目最少的节点上,如图 3-8 中所示(其中节点 2 发生了故障):

图 3-8 故障切换之后的循环备用配置

故障切换之后的循环备用配置

如果已经使用 CONFIGURED_NODE 故障切换策略设置了这些程序包,它们的初始状态将如图 3-7 所示,但是节点 2 的故障将导致程序包在节点 3 上启动,如图 3-9 中所示:

图 3-9 故障切换后的 CONFIGURED_NODE 策略程序包

故障切换后的 CONFIGURED_NODE 策略程序包

如果将 CONFIGURED_NODE 用作故障切换策略的值,则程序包将在节点列表中优先级最高的节点上启动(假定此节点正在运行,并且是群集中的一个成员)。如果发生故障切换,程序包就会移动到表中下一个可用且优先级最高的节点上。

注释:用于启动和关闭 OPS 实例(OPS 8.05 或更高版本)的程序包应采用 CONFIGURED_NODE 策略,且在节点列表中应只有一个节点 - 即实例将在其上运行的节点。OPS 实例不会从一个节点故障切换到另一个节点。

故障返回策略

当程序包在主节点以外的其他节点上运行时,如果主节点恢复运行,可使用 FAILBACK_POLICY 参数确定是否将程序包返回到其主节点。配置的主节点是程序包节点列表中列出的第一个节点。

可用于此策略的两个值为 AUTOMATICMANUAL。这两个参数可在程序包 ASCII 配置文件中进行配置:

# Enter the failback policy for this package.This policy will be used
# to determine what action to take during failover when a a package
# is not running on its primary node and its primary node is capable
# of running the package.Default is MANUAL which means no attempt
# will be made to move the package back to it primary node when it is
# running on an alternate node.The alternate policy is AUTOMATIC which
# means the package will be moved back to its primary node whenever the
# primary node is capable of running the package.

#FAILBACK_POLICY           MANUAL

作为示例,请考虑下面的四节点配置,其中 FAILOVER_POLICY 设置为 CONFIGURED_NODEFAILBACK_POLICY 设置为 AUTOMATIC

图 3-10 故障切换之前的自动故障返回配置

故障切换之前的自动故障返回配置

表 3-2 程序包配置数据

程序包名NODE_NAME 列表故障切换策略故障返回策略
pkgA节点1、节点4CONFIGURED_NODEAUTOMATIC
pkgB节点2、节点4CONFIGURED_NODEAUTOMATIC
pkgC节点3、节点4CONFIGURED_NODEAUTOMATIC

 

节点 1 出现混乱,在群集重组后,pkgA 开始在节点 4 上运行:

图 3-11 故障切换之后的自动故障返回配置

故障切换之后的自动故障返回配置

重新引导后,节点 1 重新加入群集。此时,程序包 A 将在节点 4 上自动停止并在节点 1 上重新启动。

图 3-12 节点 1 重新启动后的自动故障返回配置

节点 1 重新启动后的自动故障返回配置
注释:FAILBACK_POLICY 设置为 AUTOMATIC,可能会导致在关键的生产时期出现程序包故障返回和应用程序运行中断。如果使用自动故障返回,最好不要将程序包的主节点添加回群集,除非有一个适当的时机,允许程序包在切换回主节点时暂时停止服务。

结合故障切换和故障返回策略

将值为 MIN_PACKAGE_NODEFAILOVER_POLICY 与值为 AUTOMATICFAILBACK_POLICY 结合起来可能会导致程序包在并不希望使用的节点上运行,因为每次发生故障切换时运行程序包数目最少的节点可能不是同一个主机。

使用较早的程序包配置文件

如果您使用的是用早期版本的 MC/ServiceGuard 生成的程序包配置文件,则 FAILOVER_POLICY 将使用缺省程序包行为 CONFIGURED_NODE,而 FAILBACK_POLICY 将使用缺省程序包行为 MANUAL。如果希望更改这些策略,请编辑程序包配置文件以添加参数,或者执行 cmmakepkg 命令创建新的程序包配置文件。

自 ServiceGuard OPS Edition 的 A.11.12 版本起,PKG_SWITCHING_ENABLED 参数已更名为 AUTO_RUNNET_SWITCHING_ENABLED 参数已更名为 LOCAL_LAN_FAILOVER_ALLOWED。较早的名称在配置文件中仍然有效,但建议您还是更改这些关键字。

使用事件监视服务

基本的程序包资源包括群集节点、LAN 接口和服务(服务是指应用程序中的各个进程)。所有这些资源都由 ServiceGuard 直接监视。另外,还可以使用 事件监视服务的注册表,通过它可配置附加的监视器。该注册表可使其他软件组件向 ServiceGuard 提供对自身资源的监视。当前,其他软件产品提供的监视器包括:EMS 高可用性监视器、OTS/9000 监视器和 ATM 监视器。

如果程序包中配置有已注册的资源,程序包管理器就可调用资源注册程序来启动此资源的外部监视器。资源可配置为在节点进入群集时或程序包启动结束时启动。然后监视器将消息发送回 ServiceGuard,由它在程序包启动前检查资源是否可用。另外,如果在程序包启动后资源变为不可用,程序包管理器可将程序包故障切换到另一个节点或采取其他操作。

在为程序包指定已注册的资源时,您可以从 SAM 程序包配置区域中显示的可用资源列表中选择。SAM 所显示的列表的大小取决于系统中已注册的资源监视器。或者您也可以通过执行 /opt/resmon/bin/resls 命令获取关于系统中已注册资源的信息。有关其他信息,请参考 resls(1m) 的联机帮助页。

使用 EMS HA Monitor

EMS HA Monitor 是一个单独产品 (B5736DA),可以作为软件包附属件对磁盘及其他资源进行监视。可以使用 EMS 监视的资源属性的示例有:

  • 逻辑卷状态

    物理卷状态

  • 系统负载

    用户数

  • 文件系统利用率

    LAN 运行状况

一旦监视器被配置为程序包附属件,则当发生的事件表明资源已不再可用时,该监视器就会通知程序包管理器。此时就可以将程序包故障切换到代管节点。

EMS HA Monitor 还可用于将被监视的事件报告给目标应用程序(如 OpenView IT/Operation)以用于图形显示或通知操作员。有关其他信息,请参考手册《Using High Availability Monitors》 (B5736-90022)。

选择程序包故障切换行为

要确定故障切换行为,可以定义一个程序包故障切换策略,由它控制哪些节点将自动启动未运行的程序包。另外,还可定义一个故障返回策略,由它确定程序包是否在可能时自动返回其主节点。

下表说明了不同类型的故障切换行为,以及 SAM 或 ASCII 程序包配置文件中确定每种行为的设置。

表 3-3 程序包故障切换行为

切换行为

SAM 中的选项

ASCII 文件中的参数

程序包通常在检测服务、网络或 EMS 故障后切换。暂停脚本在切换发生之前运行。(缺省值)

  • “Package Failfast”设置为“Disabled”。(缺省值)

  • “Service Failfast”对所有服务都设置为“Disabled”。(缺省值)

  • “Automatic Switching”设置为“Enabled”。(缺省值)

  • NODE_FAIL_FAST_ENABLED 设置为 NO。(缺省值)

  • SERVICE_FAIL_FAST_ENABLED 对所有服务都设置为 NO。(缺省值)

  • AUTO_RUN 对程序包设置为 YES。(缺省值)

程序包故障切换到活动程序包最少的节点。
  • “Failover”策略设置为“Minimum Package Node”。

  • FAILOVER_POLICY 设置为 MIN_PACKAGE_NODE

程序包故障切换到节点列表中的下一个节点。(缺省值)
  • “Failover”策略设置为“Configured Node”。(缺省值)

  • FAILOVER_POLICY 设置为 CONFIGURED_NODE。(缺省值)

如果主节点可用且程序包在非主节点上运行,则程序包将自动暂停并在其主节点上重新启动。
  • “Failback”策略设置为“Automatic”。

  • FAILBACK_POLICY 设置为 AUTOMATIC

如果程序包在非主节点上运行,则必要时必须手动将程序包返回其主节点。
  • “Failback”策略设置为“Manual”。(缺省值)

  • “Failover”策略设置为“Configured Node”。(缺省值)

  • FAILBACK_POLICY 设置为 MANUAL。(缺省值)

  • FAILOVER_POLICY 设置为 CONFIGURED_NODE。(缺省值)

当特定的服务出现故障时,节点上的所有程序包将在 TOC(控制转移,即立即暂停,而不执行正常的关闭过程)后进行切换。执行 TOC 前会先尝试重新引导系统。暂停脚本未运行。

  • “Service Failfast”对特定服务设置为“Enabled”。

  • “Automatic Switching”对所有程序包都设置为“Enabled”。

  • SERVICE_FAIL_FAST_ENABLED 对特定服务设置为 YES。

  • AUTO_RUN 对所有程序包设置为 YES。

当任何服务出现故障时,节点上的所有程序包将在 TOC 后进行切换。执行 TOC 前会先尝试重新引导系统。

  • “Service Failfast”对所有服务都设置为“Enabled”。

  • “Automatic Switching”对所有程序包都设置为“Enabled”。

  • SERVICE_FAIL_FAST_ENABLED 对所有服务设置为 YES

  • AUTO_RUN 对所有程序包都设置为 YES。

 

打印版本
保密声明 使用本网站表示您同意其使用条件
© Hewlett-Packard Development Company, L.P.