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

程序包管理器如何工作

» 

技术文档资料

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

 » 目录

 » 索引

Serviceguard 使用程序包启动和暂停已配置的应用程序。一个程序包是服务、磁盘卷和 IP 地址的集合,该集合由 Serviceguard 进行管理,以确保其中资源的可用性。

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

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

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

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

  • 执行用于运行和暂停程序包及其服务的控制脚本。

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

程序包类型

群集中可以运行以下三种不同类型的程序包: 最常见的是故障切换程序包。还有专用程序包,这些程序包可同时在多个节点上运行,因此不进行故障切换。它们通常用于管理特定故障切换程序包的资源。

非故障切换程序包

此外还有两种类型的专用程序包,它们不进行故障切换并且可以同时在多个节点上运行: 系统多节点程序包多节点程序包,前者在群集中的所有节点上运行;后者可以配置为在群集中的所有或某些节点上运行。

这些程序包并非用于常规用途,只有 HP 提供的特定应用程序才支持它们。

一种常用的系统多节点程序包随 Serviceguard 产品提供。它在安装了 VERITAS Cluster Volume Manager (CVM) 的系统上用作存储管理器(并非 HP-UX 的所有版本均支持该存储管理器;请参阅“关于 VERITAS CFS 和 CVM”)。对于 VERITAS CVM 3.5,该程序包名为 VxVM-CVM-pkg;对于 VERITAS CVM 4.1,该程序包名为 SG-CFS-pkg。它在群集中的所有活动节点上运行,并为卷管理器软件提供群集成员信息。只有利用 CVM 进行存储管理时,才配置和使用此种类型的程序包。

对于 CVM(不带 CFS),创建系统多节点程序包的过程在“准备用于 CVM 的群集”中进行介绍。对于 CVM(带有 CFS),创建系统多节点程序包的过程在“使用 VERITAS Cluster File System (CFS) 创建存储基础结构”中进行介绍。

多节点程序包在安装了 VERITAS Cluster File System (CFS) 的群集(在支持它的系统上;请参阅“关于 VERITAS CFS 和 CVM”)以及 HP 指定的其他应用程序中使用。这些程序包可以同时在若干个节点上运行,而不必在所有节点上运行。当创建群集文件系统相关性时,将使用这些程序包。

本节的其余部分将介绍标准故障切换程序包。

故障切换程序包

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

故障切换如下图所示:

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

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

每个程序包都是单独配置的。 可以通过 Serviceguard Manager 或编辑程序包 ASCII 配置文件模板来创建故障切换程序包(第 6 章“配置程序包及其服务”提供了详细说明)。

然后,可以执行 cmapplyconf 命令检查该程序包并将其应用于群集配置数据库中。

还可以创建程序包控制脚本,它管理程序包服务的执行。有关详细信息,
“创建程序包控制脚本”

至此,就可以运行程序包了。

确定运行和暂停故障切换程序包的时间和位置

程序包配置文件为程序包指定一个名称,该文件中还包括可以运行该程序包的节点的列表。

故障切换程序包按优先级顺序列出节点(即,列表中的第一个节点是优先级最高的节点)。另外,故障切换程序包文件中包含确定故障切换行为的三个参数。它们分别是 AUTO_RUN 参数、FAILOVER_POLICY 参数和 FAILBACK_POLICY 参数。

故障切换程序包的切换行为

AUTO_RUN 参数(在 Serviceguard 的早期版本中称为 PKG_SWITCHING_ENABLED 参数)定义群集启动时故障切换程序包的缺省全局切换属性: 即在启动群集时 Serviceguard 能否自动启动程序包,以及 Serviceguard 是否应自动在新节点上重新启动程序包以响应故障。群集运行后,每个程序包的程序包切换属性可以通过 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 应用程序必须重新进行连接;此过程不会自动进行。请注意,如果程序包依赖于多个子网,则在程序包启动之前目标节点上的所有子网都必须是可用的。

如果程序包与资源或其他程序包具有相关性,则在目标节点上必须满足该相关性,程序包才能启动。

图 3-5 “切换程序包前”图 3-6 “程序包切换后” 中说明了可重新定位 IP 地址的切换。图 3-5 “切换程序包前” 显示了一个两节点群集的最初状态,程序包 1 在节点 1 上运行,程序包 2 在节点 2 上运行。用户通过所要使用的程序包的 IP 地址连接到节点。每个节点都有一个与之关联的固定的 IP 地址,每个程序包也都有一个与之关联的 IP 地址。

图 3-5 切换程序包前

切换程序包前

图 3-6 “程序包切换后” 说明了节点 1 出现故障,程序包 1 被转移到节点 2 的情况。程序包 1 的 IP 地址也随程序包一起转移到节点 2 。程序包 1 继续可用且此时运行在节点 2 上。另请注意,此时节点 2 对程序包 1 的磁盘和程序包 2 的磁盘都可进行访问。

图 3-6 程序包切换后

程序包切换后

故障切换策略

程序包管理器选择故障切换程序包在哪个节点上运行时,依据的是包括在程序包配置文件中的优先级列表,以及此配置文件中包含的 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
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 故障切换之后的循环备用配置

故障切换之后的循环备用配置
注释:如果节点 2 修复后返回到群集中时使用 MIN_PACKAGE_NODE 策略,则该节点将运行最少的程序包,这样它就变成了新的备用节点。

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

图 3-9 故障切换后的 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-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 结合起来可能会导致程序包在并不希望使用的节点上运行,因为每次发生故障切换时运行程序包数目最少的节点可能不是同一个主机。

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

如果您使用的是用早期版本的 Serviceguard 生成的程序包配置文件,则建议您执行 cmmakepkg 命令打开新模板,然后将参数值复制到该模板中。在新模板中,读取在生成原始配置时不存在的选项的说明和缺省值。例如,FAILOVER_POLICY 的缺省值现在是 CONFIGURED_NODEFAILBACK_POLICY 的缺省值现在是 MANUAL

在 Serviceguard A.11.17 及更高版本中,需要指定程序包类型参数;对于传统程序包,PACKAGE_TYPE 是缺省值 FAILOVER

自 Serviceguard A.11.12 版起,PKG_SWITCHING_ENABLED 参数更名为 AUTO_RUNNET_SWITCHING_ENABLED 参数更名为 LOCAL_LAN_FAILOVER_ALLOWED

使用事件监视服务

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

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

可以通过 Serviceguard Manager 或在 HP-UX 命令行上执行命令 /opt/resmon/bin/resls 为程序包指定一个已监视的资源。有关其他信息,请参考 resls(1m) 的联机帮助页。

使用 EMS HA Monitor

EMS(Event Monitoring Service,事件监视服务)HA Monitor 是一个单独产品 (B5736DA),可用于以程序包资源附属件的形式设置磁盘和其他资源的监视。可以使用 EMS 监视的资源属性的示例有:

  • 逻辑卷状态

  • 物理卷状态

  • 系统负载

  • 用户数

  • 文件系统利用率

  • LAN 运行状况

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

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

选择程序包故障切换行为

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

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

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

切换行为

Serviceguard Manager 中的选项

ASCII 文件中的参数

通常在检测到服务、网络或 EMS 故障后,或者不满足已配置的资源附属件时,进行程序包切换。暂停脚本在切换发生之前运行(缺省值)

  • 对所有服务均不设置“服务故障快速切换”(缺省值)。

  • 不设置“节点故障快速切换”
    (缺省值)。

  • 对程序包设置
    “自动运行”
    (缺省值)。

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

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

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

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

  • FAILOVER_POLICY 设置为 MIN_PACKAGE_NODE

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

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

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

  • FAILBACK_POLICY 设置为 AUTOMATIC

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

  • “故障切换”策略设置为“已配置
    节点”(缺省值)。

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

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

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

  • 对特定服务设置“服务故障快速
    切换”。

  • 对所有程序包设置“自动运行”。

  • 对于特定服务,SERVICE_FAIL_FAST_ENABLED 设置为 YES

  • 对于所有程序包,AUTO_RUN 均设置为 YES

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

  • 对所有服务设置“服务故障快速
    切换”。

  • 对所有程序包设置“自动运行”。

  • 对于所有服务,SERVICE_FAIL_FAST_ENABLED 均设置为 YES。

  • 对于所有程序包,AUTO_RUN 均设置为 YES

 

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