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

程序包管理器如何工作

» 

技术文档资料

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

 » 目录

 » 索引

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

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

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

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

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

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

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

程序包类型

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

非故障切换程序包

此外有两种类型的专用程序包,它们不进行故障切换并且可以同时在多个节点上运行:系统多节点程序包多节点程序包,前者在群集中的所有节点上运行;后者可以配置为在群集中的所有或某些节点上运行。系统多节点程序包是为 HP 提供的应用程序(例如 Veritas Cluster Volume Manager (CVM) 和 Cluster File System (CFS))保留的。

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

故障切换程序包

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

故障切换如下图所示:

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

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

需要单独地配置每个程序包。可通过生成并编辑一个程序包配置文件模板,然后将其添加到群集配置数据库来创建故障切换程序包;请参阅第 6 章“配置程序包及其服务”

对于旧程序包(通过 Serviceguard A.11.18 之前版本上使用的方法创建的程序包),还必须为每个程序包创建一个程序包控制脚本,以管理程序包服务的执行。有关详细信息,请参阅“配置旧程序包”

对于模块化程序包(通过在 Serviceguard A.11.18 中引入的方法创建的程序包),无需定制程序包控制脚本。这些程序包由随 Serviceguard 一起安装的主控制脚本管理;有关创建模块化程序包的说明,请参阅第 6 章“配置程序包及其服务”

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

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

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

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

auto_run 参数(在 Serviceguard 的早期版本中称为 PKG_SWITCHING_ENABLED 参数)定义群集启动时故障切换程序包的缺省全局切换属性:即在启动群集时 Serviceguard 能否自动启动程序包,以及 Serviceguard 是否应自动在新节点上重新启动程序包以响应故障。群集运行后,每个程序包的程序包切换属性可以通过 cmmodpkg 命令进行临时设置;在重新引导时,将恢复配置值。

auto_run 参数在程序包配置文件中进行设置。

程序包切换通常包括将故障切换程序包及其相关 IP 地址移动到同一子网的新系统中。在此情况下,新系统必须已配置了相同的子网并且运行正常,否则,程序包将无法启动。

注释:可以将群集配置为跨越通过路由器连接的子网,一些节点使用其中一个子网,而另外一些节点则使用另一个子网。这就是所谓的跨子网配置。在此环境中,可以将程序包配置为从一个子网的节点故障切换到另一子网的节点,您将需要为每个子网(配置程序包在该子网上启动)配置可重新定位的 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。参数在程序包配置文件中进行设置。

如果将 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。参数在程序包配置文件中进行设置:

作为示例,请考虑下面的四节点配置,其中 failover_policy 设置为 configured_nodefailback_policy 设置为 automatic

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

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

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

程序包
名称
NODE_NAME 列表FAILOVERPOLICYFAILBACK POLICY
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,可能会导致在关键的生产时期出现程序包故障返回和应用程序运行中断。如果正在使用自动故障返回,您可能想要等待将程序包的主节点添加回群集,除非可以允许程序包在切换回主节点时暂时停止服务。

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

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

有关当前参数及其缺省值的全部详细信息,请参阅第 6 章“配置程序包及其服务”和程序包配置文件模板。

使用事件监视服务

基本的程序包资源包括群集节点、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》 (该手册可从 http://www.docs.hp.com -> High Availability -> Event Monitoring Service and HA Monitors -> Installation and User’s Guide 获得)。

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