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

故障响应

» 

技术文档资料

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

 » 目录

 » 索引

ServiceGuard 将以特定方式响应各种不同的故障。对于大多数硬件故障,其响应都是用户不可配置的,但对于程序包和服务故障,您可以在一定限度内选择系统的响应方式。

节点出现故障时的控制转移 (TOC)

ServiceGuard 群集中最快的故障响应是 HP-UX TOC(转移控制),即 SPU 立即暂停,而不是正常地关闭。执行 TOC 是为了保护数据的完整性。

某个群集节点在预定时间内无法与大多数群集成员通信时,或出现内核挂起、内核轮选、失控实时进程,或者 ServiceGuard 的群集守候进程 cmcld 出现故障时,就会发生 TOC。TOC 在 GMS 进程终止时也会发生(OPS 8.0.5 和更高版本)。在此事件过程中,将完成系统转储且将下列消息发送到控制台:

ServiceGuard OPS:Unable to maintain contact with cmcld daemon.
Performing TOC to ensure data integrity.

在特定环境下,也可由 ServiceGuard 本身启动 TOC。如果在程序包配置文件中启用了 service failfast(服务故障快速转移)参数,则只要某个服务出现故障,整个节点都将出现故障并发生 TOC。如果在程序包配置文件中将 NODE_FAILFAST_ENABLED 设置为 YES ,则只要出现超时或存在导致程序包控制脚本以一个非 0 或 1 的值退出的故障,整个节点都将出现故障并发生 TOC。此外,与程序包及其服务无关的事件也可能导致节点级故障。心跳线丢失、群集守候进程 (cmcld) 或其他关键守候进程的丢失都将导致节点出现故障,即使当节点的程序包和它们的服务都运行正常时也是如此。

在某些情况下,发生 TOC 前会先尝试重新引导系统。如果能够在安全计时器到期之前完成重新引导,则 TOC 将不会发生。无论如何,程序包都可以迅速地移动到另一个节点。

硬件故障响应

如果发生严重的系统问题(如系统混乱或 SPU 供电电路发生物理破坏),ServiceGuard 会识别节点故障并将当前运行于该节点上的程序包转移到群集中其他位置的代管节点上。每个程序包的新位置由程序包配置文件决定,此文件会列出程序包的主节点和备用节点。虽然程序包转移到了另外一个节点上,但程序计数器并不转移。被转移的程序包中的进程将从头开始重新启动。为使应用程序能够在发生故障后迅速重新启动,它必须是“允许崩溃”的;即编写程序包中的所有进程时必须使它们可以检测到该重新启动。这与设计发生正常的系统崩溃后需要重新启动的应用程序是相同的。

在 LAN 接口出现故障的情况下,如果存在备用 LAN 接口,就会发生向备用 LAN 接口的本地切换。如果心跳线 LAN 接口出现故障且未配置备用或冗余心跳线,则节点将出现故障,并发生 TOC。如果一个受监视的数据 LAN 接口出现故障,且没有备用接口,则仅当程序包的 NODE_FAILFAST_ENABLED(有关详细说明请参阅“第 4 章“规划和记录 OPS 群集””一章中的““程序包配置规划 ””一节)设置为 YES 时,节点才会出现故障,并发生 TOC。

磁盘保护由 RAID 磁盘阵列或单独的产品 MirrorDisk/UX 提供。另外,使用可单独购买的 EMS 磁盘监视器也可以在发生特定的故障(如锁磁盘故障)时通知操作人员。有关详细信息,请参阅《《Using High Availability Monitors》》(HP 部件号 B5736-90025)。

ServiceGuard 不直接响应电源故障,虽然单个群集组件掉电对于 ServiceGuard 来说就像是该组件发生故障并将导致相应的切换行为。电源保护由 HP 支持的不间断电源 (UPS)(如 HP PowerTrust)提供。

程序包和服务故障响应

缺省情况下,程序包故障或程序包内服务的故障会导致运行带 stop 参数的控制脚本并关闭程序包,并在备用节点上重新启动该程序包。如果程序包管理器收到 EMS 监视器事件报告,说明存在不符合条件的已配置资源附属件,则程序包将出现故障并尝试在备用节点上启动。

如果需要,您可以指定节点在发生转移之前应该崩溃 (TOC) 来修改此缺省行为。如果指定了此行为,ServiceGuard 将尝试在 TOC 之前重新引导系统。如果有足够的时间来刷新缓冲区高速缓存中的缓冲区,则重新引导将会成功,且不会发生 TOC。无论哪种方式,都应确保系统能在预定的时间(以秒为单位)内停止。

在程序包关闭过程可能挂起时,节点将处于一种未知状态,这是可以使用 Failfast 选项提供快速的故障切换,在此之后节点将在重新引导时得到清理。但是请记住,节点崩溃时,该节点上的所有程序包都将立即暂停。

在程序包配置过程中设置的节点和服务的 failfast 参数将决定出现故障时程序包和节点的确切行为。在“第 4 章“规划和记录 OPS 群集””一章中的““程序包配置规划 ””一节包含了关于如何选择适当的故障切换行为的详细信息。

服务重新启动

可以允许服务在发生故障之后在本地重新启动。要做到这一点,需要在程序包控制脚本中为每个服务指定重新启动次数。服务启动时,会在服务的环境中设置变量 RESTART_COUNT。服务在执行过程中可验证此变量以确定是否在故障之后已经重新启动,若是,它就会采取适当的措施(如清理)。

网络通信故障

群集中的一个重要因素是网络自身的运行状况。在对群集检索进行监视时,每个节点都监听来自其他节点的心跳线消息以便确定所有节点是否都能相互通信。如果某个节点在配置好的时间段内没有监听这些消息,就会发生节点超时,导致群集重组,并且随后如果仍然收不到心跳线消息,还会发生 TOC。在双节点群集中,使用 RS-232 串行线路接口可避免由于网络饱和而在 LAN 上暂时失去心跳线所导致的 TOC。RS232 串行线路接口还有助于快速检测到已发生的网络故障。

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