| 中国 |
|
|
|
![]() |
管理 Serviceguard 第 14 版 > 第 3 章 了解
Serviceguard 的软件组件程序包管理器如何工作 |
|
Serviceguard 使用程序包启动和暂停已配置的应用程序。一个程序包是服务、磁盘卷和 IP 地址的集合,该集合由 Serviceguard 进行管理,以确保其中资源的可用性。 群集中的每个节点都运行一个程序包管理器实例;驻留于群集协调器节点中的程序包管理器称为程序包协调器。 程序包协调器可完成如下工作:
所有节点上的程序包管理器可完成如下工作:
群集中可以运行三种不同类型的程序包;最常用的是故障切换程序包。还有专用程序包,这些程序包可同时在多个节点上运行,因此不进行故障切换。它们通常用于管理特定故障切换程序包的资源。 此外有两种类型的专用程序包,它们不进行故障切换并且可以同时在多个节点上运行:系统多节点程序包和多节点程序包,前者在群集中的所有节点上运行;后者可以配置为在群集中的所有或某些节点上运行。 系统多节点程序包被保留为供 HP 提供的应用程序使用,例如,Veritas Cluster Volume Manager (CVM) 和 Cluster File System (CFS)。 本节的其余部分将介绍故障切换程序包。 群集启动时,故障切换程序包将在相应的节点上启动。当程序包协调器在新节点上启动程序包时,将发生程序包故障切换。程序包的故障切换包括暂停现有的程序包(在服务、网络或资源出现故障的情况下)以及启动程序包的新实例。 故障切换如下图所示: 需要单独地配置每个程序包。可通过生成并编辑一个程序包配置文件模板,然后将其添加到群集配置数据库来创建故障切换程序包;请参阅第 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 命令进行临时设置;在重新引导时,将恢复配置值。 参数在程序包配置文件中进行设置。 程序包切换包括将故障切换程序包及其相关 IP 地址移动到新系统中。新系统必须已配置好相同的子网并且运行正常,否则,程序包将无法启动。 程序包进行故障切换后,将丢失 TCP 连接。TCP 应用程序必须重新进行连接;此过程不会自动进行。请注意,如果程序包依赖于多个子网,则在程序包启动之前目标节点上的所有子网都必须是可用的。 如果程序包与资源或其他程序包具有相关性,则在目标节点上必须满足该相关性,程序包才能启动。 图 3-5 “切换程序包前” 和图 3-6 “程序包切换后” 中说明了可重新定位 IP 地址的切换。图 3-5 “切换程序包前” 显示了一个两节点群集的最初状态,程序包 1 在节点 1 上运行,程序包 2 在节点 2 上运行。用户通过所要使用的程序包的 IP 地址连接到节点。每个节点都有一个与之关联的固定的 IP 地址,每个程序包也都有一个与之关联的 IP 地址。 图 3-6 “程序包切换后” 说明了节点 1 出现故障,程序包 1 被转移到节点 2 的情况。程序包 1 的 IP 地址也随程序包一起转移到节点 2 。程序包 1 继续可用且此时运行在节点 2 上。另请注意,此时节点 2 对程序包 1 的磁盘和程序包 2 的磁盘都可进行访问。 程序包管理器选择故障切换程序包在哪个节点上运行时,依据的是包括在程序包配置文件中的优先级列表,以及此配置文件中包含的 failover_policy 参数。当特定节点未被识别而且需要启动程序包时,故障切换策略控制着程序包管理器如何选择运行程序包的节点。这不但适用于故障切换,而且适用于程序包的启动,包括初次启动。两个故障切换策略是 configured_node(缺省值)和 min_package_node。参数在程序包配置文件中进行设置。 如果将 configured_node 作为故障切换策略的值,则程序包将在节点列表中拥有最高优先级的节点上启动。如果发生故障切换,程序包就会移动到表中下一个可用且优先级最高的节点上。 如果使用 min_package_node 作为故障切换策略的值,则程序包会在当前运行其他程序包数目最少的节点上启动(请注意,这里指的不是负载最轻,检查的唯一指标是当前在节点上运行的程序包的数目)。 通过 min_package_node 故障切换策略可以配置这样一个群集,它使您可以将一个节点作为群集的自动循环备用节点。请考虑如下四节点群集的程序包配置。请注意,全部的程序包都可以在所有的节点上运行,并具有相同的 node_name 列表。尽管示例对每个程序包以不同的顺序显示了节点名,但这一点不是必需的。 表 3-1 程序包配置数据
图 3-7 “故障切换之前的循环备用配置” 显示了群集启动时各程序包的初始状态。 发生故障时,任何程序包都将故障切换到运行程序包数目最少的节点上,
如果已经使用 configured_node 故障切换策略设置了这些程序包,它们的初始状态将如图 3-7 “故障切换之前的循环备用配置” 所示,但是节点 2 的故障将导致程序包在节点 3 上启动,如图 3-9 “ 故障切换后的CONFIGURED_NODE 策略程序包” 所示: 如果将 configured_node 用作故障切换策略,则程序包将在节点列表中优先级最高的节点上启动(假定此节点正在运行,并且是群集中的一个成员)。如果发生故障切换,程序包就会移动到表中下一个可用且优先级最高的节点上。 当程序包在主节点以外的其他节点上运行时,如果主节点恢复运行,可使用 failback_policy 参数确定是否将程序包返回到其主节点。配置的主节点是程序包节点列表中列出的第一个节点。 用于此策略的两个值为 automatic 和 manual。参数在程序包配置文件中进行设置: 作为示例,请考虑下面的四节点配置,其中 failover_policy 设置为 configured_node,failback_policy 设置为 automatic: 表 3-2 群集示例中的节点列表
节点 1 出现混乱,在群集重组后,pkgA 开始在节点 4 上运行: 重新引导后,节点 1 重新加入群集。此时,程序包 A 将在节点 4 上自动停止并在节点 1 上重新启动。
如果您使用的是用早期版本的 Serviceguard 生成的程序包配置文件,则 HP 建议您执行 cmmakepkg 命令打开新模板,然后将参数值复制到该模板中。在新模板中,读取在生成原始配置时不存在的选项的说明和缺省值。例如,failover_policy 的缺省值现在是 configured_node,failback_policy 的缺省值现在是 manual。 有关当前参数及其缺省值的全部详细信息,请参阅第 6 章“配置程序包及其服务”和程序包配置文件模板。 基本的程序包资源包括群集节点、LAN 接口和服务(服务是指应用程序中的各个进程)。所有这些资源均由 Serviceguard 直接监视。另外,可以使用“事件监视服务”注册表,通过它可配置附加的监视器。该注册表可使其他软件组件向 Serviceguard 提供对自身资源的监视。当前,其他软件产品提供的监视器包括:EMS(Event Monitoring Service,事件监视服务)高可用性监视器和 ATM 监视器。 如果程序包中配置有已监视的资源,程序包管理器就可调用资源注册程序来启动此资源的外部监视器。资源可配置为在节点进入群集时或程序包启动结束时启动。然后监视器将消息发送回 Serviceguard,由它在程序包启动前检查资源是否可用。另外,如果在程序包启动后资源变为不可用,程序包管理器可将程序包故障切换到另一个节点或采取其他操作。 可以通过 Serviceguard Manager 或在 HP-UX 命令行上执行命令 /opt/resmon/bin/resls 为程序包指定一个已监视的资源。有关其他信息,请参考 resls(1m) 的联机帮助页。 EMS(Event Monitoring Service,事件监视服务)HA Monitor 是一个单独产品 (B5736DA),可用于以程序包资源附属件的形式设置磁盘和其他资源的监视。可以使用 EMS 监视的资源属性的示例有:
一旦监视器被配置为程序包资源附属件,则当发生的事件表明资源已不再可用时,该监视器就会通知程序包管理器。此时就可以将程序包故障切换到代管节点。 EMS HA Monitor 还可用于将被监视的事件报告给目标应用程序(如 OpenView IT/Operation)以用于图形显示或通知操作员。有关其他信息,请参考《Using High Availability Monitors (B5736-90022)》手册。 要确定故障切换行为,可定义一个程序包故障切换策略,它管理哪些节点将自动启动不运行的程序包。另外,可以定义故障返回策略,它确定程序包在可能时是否自动返回到其主节点。 下表说明了不同类型的故障切换行为,以及 Serviceguard Manager(适用于旧程序包)或程序包配置文件中确定每种行为的设置。 表 3-3 程序包故障切换行为
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||