solaris系统panics故障实例与解决
一、故障现象及分析该工作站的不定时自动重启有着比较特殊的现象:没有规律、没有预兆。对用户的影响也是最致命的---不仅是作业失败,甚至会导致数据库被破坏。针对这一系统故障现象进行了认真的分析,通过查找错误日志,找出了系统报出的“Panics”错误。当系统自动重启时,/etc/rc2.d/S75savecore 实用程序会把这些信息卸载到文件系统/var/crash/`hostname`/目录下,便于系统管理员进行故障分析和故障定位,21次Panics错系统自动产生的文件如下:
-rw-r--r-- 1 root root 634041 Feb 3 03:20 unix.0
………………………
-rw-r--r-- 1 root root 620121 Aug 7 12:35 unix.16
………………………
-rw-r--r-- 1 root root 622218 Aug 12 09:25 unix.21
-rw-r--r-- 1 root root 181395456 Feb 3 03:20 vmcore.0
………………………
-rw-r--r-- 1 root root 237830144 Aug 7 12:35 vmcore.16
………………………
-rw-r--r-- 1 root root 168732916 Aug 12 09:25 vmcore.21
二、Panics错误类型分析
依据系统提供的技术资料,Panics错误具有两种典型的错误类型:
第一类:系统自动重启(reboot)
这类错误是指系统在执行过程中遇到一条非法指令无法继续执行下去,为避免错误的扩大而采取的保护措施,这种非法指令的访问可由来自于主板、内存、显卡等很多因素,也可能是系统对某一硬件支持存在BUG;若硬件自身没问题,有时操作系统存在某些缺陷,也会导致此类故障的发生。
第二类:系统挂起(system hang)
这类错误现象是系统不接受任何指令,大多属于用户应用程序存在错误而耗尽了系统资源所致。
从故障现象分析我们判断,该机器呈现的故障属于第一类情况。
三、故障的研究与解决
通过对系统内核故障卸载的文件unix.16 和 vmcore.16分析研究,解决了装有地震反演Jason软件的sun工作站系统运行不稳定问题。
针对系统重启(reboot)故障,为了找出有效的故障处理方法,我们认为应该从分析系统发生故障所卸载的错误信息入手,利用系统中提供的调试工具,(如:adb、crash等)进行错误分析,根本无法找出解决问题的方法。最终在sunsolve网站上找到一个用于分析Panics错误所产生的DUMP文件的软件---Act(Automated Crash Analysis Tool)。
1 act 软件的安装配置
该软件的安装会在/etc/rc2.d中产生S76ACT_dumpscript脚本配置文件,便于日后跟踪分析。
详细安装过程(略)
2 运行Act软件进行代码分析,并将分析结果存放于act.16文件中
# cd /var/crash/`hostname`
# /opt/CTEact/bin/act ?n unix.16 ?d vmcore.16 > act.16
3 对软件的结果进行分析,提取故障信息关键字
# more act.16
该文件信息很多,摘录其中的部分信息为:
System booted at: 2003 Aug 7 01:09:37 GMT
System crashed at: 2003 Aug 7 12:33:14 GMT
Crash dump started at: 2003 Aug 7 12:34:54 GMT
panic: BAD TRAP: type=%x rp=%p addr=%p mmu_fsr=%x occurred in module“%s”due to %s
SunSolve search string: ### SUNSOLVE ###
[ifb_kernel_dma_cmd_data trap type 31 (data mmu miss)](其中ifb为3D显卡逻辑设备名)
从软件分析结果中提取出故障关键字: [ifb_kernel_dma_cmd_data trap type 31 (data mmu miss)],得到的结论是:目前的SunOS 5.8 Generic_108528-11 kernel版本对X Window 及3D显卡的支持仍存在bug,该工作站使用的显卡是Elite3D Graphics和Expert3D Graphics,由此得出故障处理的方法是对这台工作站下载最新补丁(patch)以解决对显卡的支持问题。
需要的补丁文件如下:
108569-08、108604-32、108605-33、108606-31、108576-41、108714-05、108773-08。
4 故障的解决方法
首先download所有补丁文件,再利用系统提供的pkgadd或patchadd实用程序解包并安装、效验。
四、技术关键
1 、 系统错误的定位及分析
2 、 故障类型的确定及处理方法
3 、ACT软件的开发与应用