其他问题

本节介绍针对潜在的未分类 PowerHA® SystemMirror® 问题的解决方案。

如果要在 PowerHA SystemMirror 中调查资源组移动情况,了解 rg_move 事件发生的原因,则必须检查 /var/hacmp/log/hacmp.out 文件。 一般来说,考虑到最近对资源组的处理方式和优先级的调整,特别是在 PowerHA SystemMirror 中, hacmp.out 文件及其事件摘要对于跟踪资源组的活动和位置非常重要。 此外,在并行处理资源组时, hacmp.out 文件会报告群集历史日志或 clstrmgr.debug 文件中看不到的详细信息。 在接管活动后调查资源组移动情况时,请尽早检查 hacmp.out 日志文件。

hacmp.out文件显示 tail-f命令的有限输出结果

问题

只有脚本启动消息显示在 /var/hacmp/log/hacmp.out 文件中。 消息中指定的脚本不是可执行文件,或者 DEBUG 级别设置为 low

解决方案

添加使用 chmod 命令运行脚本的许可权,并确保 DEBUG 级别设置为

集群验证显示消息而不配置错误通知

问题
无论是否配置了 "自动错误通知" ,都将显示以下消息:
"Remember to redo automatic error notification if configuration
has changed."
解决方案

如果未配置 "自动错误通知" ,请忽略此消息。

显示 config_too_long 消息的方案

每次集群事件完成所需的时间超过指定的超时时间段时,都会显示 config_too_long消息。

PowerHA SystemMirror 之前的版本( 4.5 )中,所有群集事件的超时时间都是固定的,默认设置为 360 秒。 如果集群事件(如节点启动节点关闭事件)持续时间超过 360 秒,那么 PowerHA SystemMirror 将每隔 30 秒显示一条 config_too_long 警告信息,该信息已记录在 hacmp.out 文件中。

PowerHA SystemMirror 中,您可以自定义允许群集事件在 PowerHA SystemMirror 发出系统警告之前完成的时间段。

如果 config_too_long 消息记录在 hacmp.out 文件中,那么该消息可能类似于以下样本:
config_too_long $sec $event_name $argument<
其中,
  • $event_name: 指示失败的重新配置事件。
  • $argument: 指示事件所使用的参数。
  • $sec: 指示发送消息之前的秒数。

PowerHA SystemMirror 版本 4.5 或更早版本中, config_to_long 信息会继续每隔 30 秒附加到 hacmp.out 文件中,直到采取相应措施为止。

PowerHA SystemMirror 版本 4.5 开始,对于未在指定事件持续时间内完成的每个群集事件, config_to_long 消息将记录在 hacmp.out 文件中,并按照以下模式发送到控制台:
  • 前五条 config_too_long 消息以 30 秒的时间间隔显示在 hacmp.out 文件中。
  • 下一组五条消息按时间间隔显示,该时间间隔是上一个时间间隔的两倍,直到时间间隔达到 1 小时为止。
  • 这些消息每小时记录一次,直到事件完成或事件在该节点上结束。
    问题 1

    脚本正在执行的活动需要比指定的时间更长的时间才能完成。 例如,对于涉及许多磁盘或复杂脚本的事件,可能会发生此场景。

    解决方案
    • 确定运行所需的时间,并更正或简化该过程 (如果可能)。
    • 增加运行 config_too_long之前的等待时间。

    您可以使用 SMIT 中的 Change/Show Time Until Warning 面板来定制 Event Duration Time 。 通过扩展配置 > 扩展事件配置 SMIT 面板访问此面板。

    问题 2

    命令未响应,事件脚本正在等待您恢复执行。 如果是这样,您可能在 AIX® 流程表 (ps -ef) 中看到该命令。 它很可能是 /var/hacmp/log/hacmp.out 文件中 config_too_long 脚本输出之前的最后一个命令。

    解决方案

    结束未响应的命令。

    问题 3
    为应用程序控制器启动脚本指定前台启动进程。 但是,启动脚本不存在。
    注意: 如果使用 PowerHA SystemMirror 7.1.1 或更高版本,则会出现此问题。
    解决方案

    检查启动脚本以查看其是否正常运行。 如果脚本未响应,请将启动选项与启动监视器配合使用,而不是使用前台启动。

控制台显示 SNMP 消息

问题

/etc/syslogd 文件已更改为将 daemon.notice 输出发送到 /dev/console 文件。

解决方案

编辑 /etc/syslogd 文件将 daemon.notice 输出重定向到 /usr/tmp/snmpd.logsnmpd.log 文件是用于记录消息的缺省位置。

系统重新启动后,集群节点未能失败转移

问题

重新启动系统后,集群节点未失败转移。

解决方案

为了防止计划外的系统重新启动破坏集群环境中的故障转移,集群中的所有节点都必须将 “更改/显示操作系统特征” SMIT 面板上的 “崩溃后自动重新启动系统” 字段设置为 false ,或者您必须在正常操作期间保持 IBM® System p™ 键入安全模式。

如果 shutdown 命令无意中运行,那么这两个度量都会阻止系统重新引导。 如果未执行这些措施之一,那么如果发生意外重新启动,那么针对重新引导节点上的磁盘的活动可能会阻止其他节点成功获取磁盘。

NetView 映射中显示的已删除对象

问题
先前已删除或不相关的对象符号出现在 Tivoli NetView for z/OS 映射中。
解决方案

重建 Tivoli NetView for z/OS 数据库。

要重建 Tivoli NetView for z/OS 数据库,请在 Tivoli NetView for z/OS 服务器上执行以下步骤:
  1. 停止所有 Tivoli NetView for z/OS 守护程序:
    /usr/OV/bin/ovstop -a
  2. 从 Tivoli NetView for z/OS 服务器中除去数据库:
    rm -rf /usr/OV/database/*
  3. 启动 Tivoli NetView for z/OS 对象数据库:
    /usr/OV/bin/ovstart ovwdb
  4. 复原 Tivoli NetView for z/OS 或 HAView 字段:
    /usr/OV/bin/ovw -fields
  5. 启动所有 Tivoli NetView for z/OS 守护程序。
    /usr/OV/bin/ovstart -a

在 SMIT 面板中按 F1 不显示帮助

问题
在 SMIT 面板中按 F1 没有显示帮助。
解决方案

只有当 LANG 变量设置为 PowerHA SystemMirror 支持的语言之一,并且安装了相关的 PowerHA SystemMirror 消息目录时,才能显示帮助。 PowerHA SystemMirror 支持以下语言:

  • zh-cn
  • ja_JP
要列出已安装的语言环境 (bsl LPP) ,请输入以下命令:
locale -a
要列出活动语言环境,请输入以下命令:
locale

由于 LANG 环境变量确定活动语言环境,因此如果 LANG=en_US,那么语言环境为 en_US

开始更改

使用语言环境设置获取算术语法错误

问题
使用语言环境设置为 pt_BRfr_FRsl_SI 等的 PowerHA 集群时,可能会发生以下算术语法问题。 例如
# export LANG=pt_BR
# typeset -F4 var=0.00
ksh93: typeset: 0.00: arithmetic syntax error
# (( sum = sum + 0.5 ))
ksh93:  sum = sum + 0.5 : arithmetic syntax error

如果 LANG 设置为 en_Usja_JP之类的其中一种语言,那么可以避免此问题。

解决方案
发生此问题的原因是 LC_NUMERIC 环境变量设置不当。 当 LANG 环境变量设置为 pt_BRfr_FRsl_SI 等任何语言时, 缺省情况下, LC_NUMERIC 变量将其十进制定界符视为逗号 (",")。
# locale
LANG=fr_FR
LC_COLLATE="fr_FR"
LC_CTYPE="fr_FR"
LC_MONETARY="fr_FR"
LC_NUMERIC="fr_FR"
LC_TIME="fr_FR"
LC_MESSAGES="fr_FR"
LC_ALL=
# locale -k LC_NUMERIC
decimal_point=","
thousands_sep=" "
grouping="3"

为了执行任何具有小数的数字运算, LC_NUMERIC 变量应将十进制定界符作为句点 (".")。

要避免此问题,请设置 LC_NUMERIC=C 以及 LANG 设置。

结束更改

事件摘要文件太大

问题

PowerHA SystemMirror 事件摘要取自 hacmp.out 文件,可以使用 SMIT 中的 Problem Determination Tools > PowerHA SystemMirror 查看和管理 > 查看/保存/删除事件摘要 > 查看事件摘要选项进行查看。 此显示在结尾处包括资源组状态和位置信息。 资源组信息由 clRGinfo 命令收集,如果运行 查看事件摘要 选项时集群未在运行,那么可能需要额外的时间。

解决方案

clRGinfo 命令在集群运行时快速显示资源组信息。 如果集群未在运行,那么会延迟显示资源组信息。

应用程序监视器问题

如果您正在运行应用程序监视器,那么可能会偶尔会迂到要检查监视器的状态或配置的问题或情境。 以下是一些可能出现的问题以及诊断和处理这些问题的方式。
问题 1
检查应用程序监视器的状态。 在某些情况下,可能不清楚应用程序监视器是否正在运行。 要检查应用程序监视器的状态,请运行以下命令:
ps -ef | grep <application controller name> | grep clappmond

如果正在监控应用程序,此命令生成很长的详细输出行。

如果没有输出,那么就没有在监视应用程序。

解决方案

如果发生以下情况,那么应用程序监视器可能不会:

  • 没有为应用程序控制器配置监视器。
  • 未启动监视器,因为未完成稳定时间间隔。
  • 监视器处于暂挂状态。
  • 未正确配置监视器。
  • 发生错误。

检查是否配置了监视器,是否传递了稳定时间间隔,以及监视器是否未处于暂挂状态。 如果任何配置不正确,请在 SMIT 中重新检查监视器的原始配置,并根据需要重新配置。

问题 2

应用程序监视器没有执行指定的故障操作。 当应用程序发生故障时,不会发生指定的故障操作。

解决方案

检查 重新启动时间间隔。 如果 重新启动时间间隔 设置得太短,那么 重新启动计数器 可能会被太快地重置为零,从而导致无尽的一系列重新启动尝试,并且不会执行任何其他操作。

问题 3

应用程序监视器并不始终指出应用程序正在正确运行。

解决方案
  • 请检查监视器是否编写为在所有情况下都返回正确的退出代码。 如果应用程序正常工作,那么返回值必须为零,如果应用程序失败,那么返回值必须为非零值。
  • 通过代码检查所有可能的路径(包括错误路径),以确保退出代码与应用程序状态一致。
问题 4

无法确定监视器是否运行以及何时运行。

解决方案

请检查由监视器创建的日志文件。 监视器可以通过将消息写入到标准输出 stdout 文件来记录消息。 对于长时间运行的监视器,输出存储在 /var/hacmp/log/clappmond应用程序监视器 name.resource 组 name.monitor.log 文件中。 对于启动监视器,此输出将存储在 /var/hacmp/log/clappmond.application server name.resource group name.monitor.log 文件中。 每当应用程序监视器运行时,监视器日志文件都会被覆盖。

事件摘要文件未按预期显示资源组信息

问题

PowerHA SystemMirror 发生卷组法定人数丢失时,无法选择性地将受影响的资源组移动到另一个群集节点。

解决方案

如果属于集群节点上的资源组的卷组丢失定额,那么系统会检查节点的 AIX 错误日志文件中是否显示 LVM_SA_QUORCLOSE 错误。 系统通知集群管理器选择性地移动受影响的资源组。 PowerHA SystemMirror 仅对启用了法定人数的镜像卷组使用这种错误通知方法。

如果未发生故障转移,请检查 AIX 错误日志中是否出现 LVM_SA_QUORCLOSE 错误。 当 AIX 错误日志缓冲区已满时,将废弃新条目,直到缓冲区空间变为可用并且错误日志条目通知您此问题为止。 要解决此问题,请增大设备驱动程序的 AIX 错误日志内部缓冲区的大小。

集群磁盘更换过程失败

问题

replacepv 命令运行时,磁盘更换过程失败。

解决方案

确保删除 /tmp/replacepv 目录,然后重新尝试执行更换过程。

您还可以在另一磁盘上尝试运行该过程。

rg_move 事件一次处理若干资源组

问题

hacmp.out 文件中, rg_move 事件在一个操作中处理多个非并发资源组。

解决方案

在有依赖关系的集群中, PowerHA SystemMirror 会在 node_up 事件中处理所有资源组,尽管有 rg_move 事件。 在一次 rg_move 事件中, PowerHA SystemMirror 可以在一个事件内处理多个非并发资源组。

文件系统未能卸装

问题

在事件中(例如,您使用将资源组脱机的选项来停止集群服务时),没有正确卸装文件系统。

解决方案

您使用将资源组脱机的选项来停止集群服务时,未能卸装文件系统的最常见原因之一是因为文件系统忙碌。 要成功卸装文件系统,此时没有进程或用户可以访问该文件系统。 如果用户或进程正在访问文件系统,那么无法卸装文件系统。 如果文件已删除但仍处于打开状态,那么可能会导致同一问题。

用于停止应用程序的脚本必须包含检查,以确保共享文件系统未在使用或已删除,并且使用 fuser 命令处于打开状态。 该脚本必须使用 fuser 命令来查看哪些进程或用户正在访问有问题的文件系统。 然后,可以获取并结束这些进程的 PID 以释放文件系统,从而可以卸载该文件系统。 欲了解更多信息,请发送电子邮件fuser

动态重新配置会设置锁定

问题

当您运行动态重新配置 (DARE) 操作时,如果另一个 DARE 操作正在进行中,或者如果先前的 DARE 操作未完成,那么可能会在 DARE 锁定上显示一条错误消息。 该错误消息指示如果 DARE 操作未启动或先前的 DARE 操作未完成,那么必须清除锁定。

解决方案

检查集群节点上的 /var/hacmp/log/hacmp.out 日志以确定先前 DARE 失败的原因。 config_too_long 条目显示在 hacmp.out 文件中,其中事件脚本中的操作需要太长时间才能完成。 如果 hacmp.out 指示脚本由于某些错误而未能完成,请更正此问题并将完成事件所需的剩余步骤手动完成。

运行 PowerHA SystemMirror SMIT Problem Determination Tools > PowerHA SystemMirror 脚本故障中恢复选项,使群集中的节点进入下一个完整事件状态。

如果 PowerHA SystemMirror SMIT Recover from Script failure(从脚本故障中恢复)步骤没有清除 DARE 锁,您可以选择 SMIT 选项 Problem Determination Tools > Release Locks Set by Dynamic Configuration(释放动态配置设置的锁 ),如果 PowerHA SystemMirror SMIT Recover from PowerHA SystemMirror Script Failure(从 脚本失败中恢复 )步骤没有这样做的话。

资源组无法在 WPAR 中联机

问题

资源组未能在特定节点上的 WPAR 中联机。

解决方案
  1. 验证有疑问的节点是否可以使用 WPAR。 必须在具有 WPAR 功能的 AIX 节点上安装 bos.wpars 文件集。 如果节点不支持 WPAR ,那么资源组不会在 WPAR 中运行。 要检查是否安装了 bos.wpars 文件集,请输入以下命令:
    lslpp -L "bos.wpars"
  2. 在指定节点上,验证是否存在与支持 WPAR 的资源组同名的 WPAR。 使用 lswpar <resource group name> 命令进行验证。 如果没有具有指定名称的 WPAR ,请使用 mkwpar 命令进行创建。 创建 WPAR 之后,请确保与支持 WPAR 的资源组相关联的所有用户定义的脚本都可以在 WPAR 中访问。
  3. 确保节点上的文件系统未满。 如果已满,请将一些文件移到外部存储器从而释放一些磁盘空间。
  4. 通过完成以下步骤,验证是否在相应的 WPAR 中启用了 rsh 服务:
    • 通过在 WPAR 中输入以下命令,检查 inetd 服务是否正在 WPAR 中运行:
      lssrc -s inetd

      如果 inetd 服务未处于活动状态,请使用 startsrc 命令启动该服务。

    • 确保 rsh 在 WPAR 中的 /etc/inetd.conf 文件中列示为已知服务。

节点和存储库磁盘同时发生故障

问题
在发生事件(例如,数据中心故障)期间,节点和存储库磁盘同时发生故障。
解决方案
在节点和存储库磁盘同时发生故障时(例如,数据中心发生故障时),可能需要在所有节点重新启动之前更换存储库磁盘。
  1. 要更换存储库磁盘,请使用以下系统管理界面工具 (SMIT) 路径:
    $ smitty sysmirror
    >Problem Determination Tools > Replace the Primary Repository Disk
    注: 在替换存储库磁盘时处于 DOWN 状态的节点将继续访问 "原始" 存储库磁盘,即使在重新启动后也是如此。 如果“原始”存储库磁盘再次变得可用,那么 Cluster Aware AIX (CAA) 集群服务将启动以使用该磁盘。 该节点将保持停止状态。
  2. 要检查节点的状态,请输入以下命令:
    lscluster -m
    此命令将生成与以下输出相似的输出:
    Calling node query for all nodes...
    Node query number of nodes examined: 2
          Node name: ha1clA
          Cluster shorthand id for node: 1
          UUID for node: 1ab63438-d7ed-11e2-91ce-46fc4000a002
          State of node: DOWN  NODE_LOCAL
          ...
         -----------------------------------------------------
          Node name: ha2clA
          Cluster shorthand id for node: 2
          UUID for node: 1ac309e2-d7ed-11e2-91ce-46fc4000a002
          State of node: UP
          ...
          Points of contact for node: 2
          ------------------------------------------
          Interface     State  Protocol    Status
          ------------------------------------------
          en0           UP     IPv4         none
          en1           UP     IPv4         none
  3. 要强制先前失败的节点使用“新的”存储库磁盘,请在受影响的节点输入下列命令:
    1. $ export CAA_FORCE_ENABLED=true
    2. $ clusterconf -fu
  4. 要检查 CAA 集群服务是否未处于活动状态,请输入以下命令:
    lscluster -c
    注: 通过使用 "新" 存储库磁盘,您可能需要最多等待 10 分钟,以使节点再次加入 CAA 集群。
  5. 要验证 CAA 集群服务是否已成功启动,请输入以下命令:
    1. lscluster -c
    2. lscluster -m
  6. 在受影响节点重新启动 PowerHA SystemMirror 之前,需要同步 PowerHA SystemMirror 配置。 需要在节点中启动同步,在更换存储库磁盘时该节点处于启动状态。 要在节点中启动验证和同步过程,请使用以下 SMIT 路径:
    $ smitty sysmirror
    >Cluster Nodes and Networks > Verify and Synchronize Cluster Configuration
    注意: 如果有多个可用节点,而 PowerHA SystemMirror 并未在所有节点上运行,则需要选择一个活动节点开始同步。
在步骤 6 成功完成验证和同步后,您可以使用以下 SMIT 路径在先前发生故障的节点上重新启动 PowerHA SystemMirror
$ smitty sysmirror
>System Management (C-SPOC) > PowerHA SystemMirror Services > Start Cluster Services

/etc/inetd.conf 文件中注释掉 CAA 条目

问题

已注释的集群感知 AIX (CAA) 条目在集群创建过程中导致错误。

解决方案
安装 PowerHA SystemMirror 后,请确认在创建 PowerHA SystemMirror 群集之前,已在 /etc/inetd.conf 文件中注释掉以下 Cluster Aware AIX (CAA) 项。
caa_cfg stream tcp6 nowait root /usr/sbin/clusterconf 
clusterconf >>/var/adm/ras/clusterconf.log 2>&1
从 AIX 7.3开始,已注释 /etc/inetd.conf 文件中的 CAA 条目。 在 PowerHA SystemMirror 安装过程中, /etc/inetd.conf 文件中的 CAA 条目会被注释掉,以便于后续版本的安装:
  • PowerHA SystemMirror 7.2.3 SP6 或更高版本
  • PowerHA SystemMirror 7.2.4 SP4 或更高版本
  • PowerHA SystemMirror 7.2.5 SP2 或更高版本
  • PowerHA SystemMirror 版本 7.2.6

如果 AIX 7.3 安装的 PowerHA SystemMirror 版本低于先前列出的版本,那么不会自动注释掉 CAA 条目。 您必须手动注释掉 /etc/inetd.conf 文件中的 CAA 条目。

要取消注释 CAA 条目,请先在集群的所有节点上运行以下命令,然后再创建集群:
chsubserver -a -r inetd -v caa_cfg -p tcp6