跳到内容 中国
HP.com 主页 产品与服务 支持及驱动程序 解决方案 如何购买
» 联系惠普
更多选项
HP.com 主页
管理 MC/ServiceGuard > 第 3 章 了解 MC/ServiceGuard 软件组件

程序包管理器如何工作

» 

技术文档资料

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

 » 目录

 » 索引

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

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

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

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

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

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

程序包类型

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

故障切换程序包

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

故障切换如下图所示:

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

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

配置程序包

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

确定运行和暂停程序包的时间和场所

程序包配置文件为程序包指定名称,并包括可以运行程序包的节点的列表,按照优先级排列(即列表中的第一个节点就是优先级最高的节点)。另外,该文件还包含可确定故障切换行为的三个参数。它们是 AUTO_RUN 参数、FAILOVER_POLICY 参数和 FAILBACK_POLICY 参数。

程序包切换

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

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

可重定位 IP 地址的切换在图 3-4 “切换程序包前”图 3-5 “程序包切换后” 中显示。图 3-4 “切换程序包前” 显示一个处于其原始状态的双节点群集,程序包 1 运行在节点 1 上,程序包 2 运行在节点 2 上。用户通过他们希望使用的程序包的 IP 地址连接节点。每个节点都有一个与之关联的固定的 IP 地址,每个程序包也都有一个与之关联的 IP 地址。

图 3-4 切换程序包前

切换程序包前

图 3-5 “程序包切换后” 显示的情况是:节点 1 出现故障,程序包 1 已转移到节点 2。程序包 1 的 IP 地址也随着程序包转移给节点 2。程序包 1 继续可用,它现在运行在节点 2 上。另请注意,现在节点 2 既可以访问程序包 A 的磁盘,又可以访问程序包 B 的磁盘。

图 3-5 程序包切换后

程序包切换后

故障切换策略

程序包管理器选择程序包在哪个节点上运行时,所作的考虑基于程序包配置文件中所包括的优先级列表以及也是在该文件中编码或在 SAM 中设置的 FAILOVER_POLICY 参数。故障切换策略控制当特定节点未被识别出来以及需要启动程序包时程序包管理器如何选择在哪个节点上运行程序包。它不但可应用于故障切换,而且还可应用于程序包的启动,包括初始启动。有两个故障切换策略,它们是 CONFIGURED_NODE(缺省)和 MIN_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
pkgAnode1, node2, node3, node4MIN_PACKAGE_NODE
pkgBnode2, node3, node4, node1MIN_PACKAGE_NODE
pkgCnode3, node4, node1, node2MIN_PACKAGE_NODE

 

群集启动时,各程序包像图 3-6 “故障切换之前的循环备用配置” 中所示那样启动。

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

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

发生故障时,任何程序包都将故障切换到包含运行程序包数目最少的节点上,如图 3-7 “故障切换之后的循环备用配置” 中所示(其中节点 2 发生了故障):

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

故障切换之后的循环备用配置
注释:如果使用 MIN_PACKAGE_NODE 策略,则当节点 2 已修复并返回群集中时,它将成为运行程序包最少的节点,因而也就将成为新的备用节点。

如果已经使用 CONFIGURED_NODE 故障切换策略设置了这些程序包,它们就将如图 3-6 “故障切换之前的循环备用配置” 所示进行初始启动,但是节点 2 的故障将导致程序包在节点 3 上启动,如图 3-8 “故障切换后的CONFIGURED_NODE 策略程序包” 中所示:

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

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

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

故障返回策略

使用 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-9 故障切换之前的自动故障返回配置

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

表 3-2 样例群集中的节点列表

程序包名NODE_NAME 列表故障切换策略故障返回策略
pkgAnode1, node4CONFIGURED_NODEAUTOMATIC
pkgBnode2, node4CONFIGURED_NODEAUTOMATIC
pkgCnode3, node4CONFIGURED_NODEAUTOMATIC

 

节点 1 吃紧,在群集重组后,程序包 A 开始在节点 4 上运行:

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

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

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

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

节点 1 重新启动后的自动故障返回配置
注释:FAILBACK_POLICY 设置为 AUTOMATIC,可能会导致在关键的生产时期出现程序包故障返回和应用程序运行中断。如果您正在使用自动故障返回,则您可能不希望将程序包的主节点添加回群集中,除非获得一个适当的时机,可以使程序包在切换回主节点时暂时从服务中取出。

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

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

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

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

从 MC/ServiceGuard 的 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 故障后切换。暂停脚本在切换发生之前运行。(缺省值)

  • 程序包故障快速转移设置为 Disabled。(缺省值)

  • 服务故障快速转移对所有服务都设置为 Disabled。(缺省值)

  • 程序包自动切换设置为 Enabled。(缺省值)

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

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

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

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

  • FAILOVER_POLICY 设置为 MIN_PACKAGE_NODE

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

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

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

  • FAILBACK_POLICY 设置为 AUTOMATIC

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

  • 故障切换策略设置为 Configured Node。
    (缺省值)

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

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

当出现特定的服务故障时,节点上的所有程序包都随着 TOC(控制转移,即立即暂停,没有从容的关闭过程)进行切换。发出 TOC 前会先尝试重新引导系统。暂停脚本未运行。

  • “服务故障快速转移”对特定服务设置为 Enabled。

  • “自动切换”对所有程序包都设置为 Enabled。

  • SERVICE_FAIL_FAST_ENABLED 对特定服务设置为 YES

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

当任何服务出现故障时,节点上的所有程序包都随着 TOC 切换。发出 TOC 前会先尝试重新引导系统。

  • “服务故障快速转移”对所有服务都设置为 Enabled。

  • “自动切换”对所有程序包都设置为 Enabled。

  • SERVICE_FAIL_FAST_ENABLED所有服务都设置为 YES。

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

 

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