服务器 频道

HP UNIX服务器转储失败原因

  【IT168 服务器学院】问题描述

  我的系统挂起 (hang) 的时候,我执行了一个 toc(transfer_of_control)以强制进行内存转储,但在重新引导之后 savecrash 显示没有可保存的有效转储。或者在系统崩溃时,未保存任何转储。

  配置信息

  hp unix 11.00 和 11.11

  解决方法

  转储概念

  系统硬件检测错误 (hpmc)、操作系统引起的恐慌 (panic) 以及系统挂起 (hang) 必须提供有关失败原因的信息,这样才能制定出一个解决方案。hpux 使用的方法需要创建系统内存转储、发生故障时的 kernel 状态快照,hp 解决方案从这些内容进行分析才能提供根本的原因以及补救措施。 kernel 产生于 /stand/system 文件,它通常包含一个到转储设备 (默认状态下为 swap logical volume) 的矢量 (指针)。进行引导时,该矢量将拷贝到不可变内存中。如果发生了前面提到的故障,硬件会将来自可疑操作系统的处理重新定向到固件例程 (firmware routine),以保存该转储。这些固件副本会将部分 ram 拷贝到该转储矢量指向的目标磁盘中。

  对于可疑操作系统,转储之后会进行重新引导。

  重新引导过程中执行的 /sbin/init.d/savecrash 会导致 savecrash 命令检查该转储设备是否存在有效转储 (注意 1)。如果存在有效转储,savecrash 则会将其拷贝到一个预先确定的文件系统,在此系统中用户可以对这些数据进行操作以提取有用信息,如果不存在,savecrash 则会退出。

  转储失败的原因可能是:

o kernel 中没有转储矢量
o 有缺陷的 pdc 固件,即无法正确执行 toc
o kernel 中转储矢量已损坏,即无效堆栈设备
o 有缺陷的转储设备,即磁盘无法接收 ram 快照
o 电源或其他抢占转储保存例程的其它硬件故障
o 堆栈已损坏,通常是由于硬件故障引起的
  kernel 中没有转储矢量

  检查 /stand/system 文件,寻找无转储规则或表明: dump none 的内容。如果不存在这样的内容,则添加转储 lvol 行并重新生成该 kernel。

  有缺陷的 pdc 固件

  有缺陷的 pdc 固件需要 ce 对其进行重新编写。pdc 固件版本记录在 /var/tombstones/ts99 中,或者可以通过 stm 查看。

  toc 矢量已损坏

  kernel 中或 hp 应用软件中存在已知的缺陷,这些缺陷可能损坏了 kernel 内存中的 toc 矢量,以至 toc 无法定位转储设备。这种情况的症状是强制的 toc 好像会挂起 (hang)。

  下列补丁程序已经修正了 toc 矢量损坏问题。 10.20: phss_14978 :pdcinfo:a.02.24:toc:vector:corruption: 11.00: phss_14982 :pdcinfo:a.02.24:toc:vector:corruption: phkl_20937 :panic:toc:core dump: 11.04: phkl_23017 :vvos:panic:toc:core:dump: 有缺陷的转储设备

  转储设备通常为 swap logical volume,该设备与引导 lvol 及 root lvol 位于同一个磁盘中。如果 kernel 出现如挂起这样的问题,则可能表示磁盘要发生问题。引导问题和转储问题是其他的指示内容。

  硬件、电源故障

  有时候,系统崩溃的根本原因是由于电源系统问题而导致的电源短缺。这自然不会进行转储。

  转储已损坏

  savecrash 命令检查转储是否存在有效转储时,它会寻找一个转储 magic number (注意 1)。如果由于硬件故障而无法生成有效的 magic number,则该转储本身可能已经损坏了。

  注意 1: unix 文件 (包括 kernel 及转储映象) 在文件开始都有一个 "magic number" 来识别它们所代表的文件类型。当 pdc 将其拷贝到转储设备时,它会在 ram 快照的开始放置一个 "dump magic number"。如果 toc 没有成功,则该 "dump magic number" 不会出现在转储设备的预期位置上。

  注意 2: 转储设备默认为 swap logical volume。系统管理员可以根据需要添加更多的 swap 设备。为了确定转储设备,请执行下面的命令:

# lvlnboot -v /dev/vg00
boot definitions for volume group /dev/vg00:
physical volumes belonging in root volume group:
/dev/dsk/c1t5d0 (52.5.0) -- boot disk
/dev/dsk/c1t6d0 (52.6.0) -- boot disk
boot: lvol1 on: /dev/dsk/c1t6d0
root: lvol3 on: /dev/dsk/c1t6d0
swap: lvol2 on: /dev/dsk/c1t6d0
dump: lvol2 on: /dev/dsk/c1t6d0, 0 
注意 3: savecrash (11.x) = savecore (10.x hpux)

  

0
相关文章