9000服务器
1753765 成员
5672 在线
108799 解答
新建帖子

回复: Crash Dump与HPMC

 
ainaof7909
兼职投稿人

Crash Dump与HPMC

有时系统在运行的过程中挂起,有时会自动重起,我们需要对相关的情况进行分析。Crash Dump主要是与软件相关,HPMC通常是硬件相关。将它们放在一起写主要是因为它们的表现有相似之处。Crash Dump是在系统出现故障时,将内存中的内容保存到硬盘上以进行进一步分析的过程。详细地描述如何做分析并不在本文的范围中,后面主要讲一下Crash Dump的种类及如何收集以及初步处理。

 Crash Dump可以被分为以下三类:         1. Panic:Panic是由操作系统自已调用相关进程进行的过程        2. TOC:Transfer of Control,有几种情况会发生TOC: 􀂾           a. 触动主机上TOC按键或在CM(GSP)状态下发出TC命令,有时主机挂起,我们就会主动用这种方式生成一个dump文件进行分析。 􀂾            b. MC/SG不能与后台进程通讯(cmcld) 􀂾            c. 在多CPU系统,某一CPU在Panic状态下会令其他CPU TOC。         3. HPMC:有时HPMC(High Priority Machine Check)也会引起Crash Dump.  配置Dump Device      在以前的OS版本中,对Dump Device有一些限制,比如说一定要在VG00中,大小不能大于2GB等。在11.X中这样的限制都不存在了。因为10.X系统已经不被支持了,所以后面讲的部分内容可能只适用于11.X系统。 通常刚安装完OS后,SWAP(一般是/dev/vg00/lvol2)设备也做为Dump设备。这样的好处是不需要额外的空间来专门做dump,缺点是在系统发生故障重起时,要等到所有的dump的内容拷贝到存放crash dump的文件系统下之后系统才会继续启动过程,造成恢复业务的时间变长。 配置的步骤      首先要产生相关的LV。对做Dump的LV来说,有一些特殊要求。首先,要完全连续;其次,Bad Block Relocation属性要关闭。要生成这样的LV,可以用类似于这样的命令:    #lvcreate –C y –r N –n lvswap –L 10240m /dev/vg02    #crashconf    #lvlnboot –v      对于做了mirror的根盘,Dump区不会被镜像。     Crash Dump的配置文件是/etc/rc.config.d/savecrash,执行脚本是/sbin/init.d/savecrash.     编辑/etc/rc.config.d/savecrash文件         SAVECRASH = 1 -> save a crashdump (default)                     0 ->do not save a crashdump SAVECRASH_DIR directory for the crashfiles.       Default is /var/adm/crash        COMPRESS = 0 -> never compress                   1 ->always compress                    2 ->compress in case of insufficient space (default)      有时工程师会到现场收集crash dump文件交由响应中心进行分析,通常是在/var/adm/crash文件系统下。如果在这里没有发现crash dump文件,就要去检查相关配置文件看是否系统未保存dump文件或设置为保存到其他文件系统。 手工保存crash dump      如果crash dump因为存储空间不足未被完全保存下来,还有机会手工再保存,这一次可能需要加上-r参数(resave)         # savecrash -v [-r]          # savecrash -v [-r] -t /dev/rmt/0m  #save to DDS tape  

 

 

   如果DUMP区与SWAP区设为同一个设备,那么可能有一部分Dump内容已经被覆盖掉了,这也是只用SWAP区来做DUMP的缺点之一。  分析Crash Dump        通常crash dump是由响应中心进行分析的,因为深入地分析需要对操作系统的内部有深入地了解。然面有时crash dump的原因很简单,如果能够很快找到原因,就会缩短解决故障的周期。     下面只介绍一种最简单的方法,需要用到Q4工具(默认安装都有)。        #cd /var/adm/crash/crash.0(enter the dump dir you want to analysis)       #q4pxdb vmunix(may not be neccessary)        #echo "run WhatHappened" | q4 -m –Np . > wh.txt      以上命令通过调用名为WhatHappened脚本将系统发生crash时的状况大致列出来,保存到wh.txt文件中。如果Crash是因为MC/SG发出的TOC命令,或是因为HPMC等原因,在这里就已经可以清楚地看到了。

1 条回复1
jackforget
顾问

回复: Crash Dump与HPMC

good job