免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3071 | 回复: 0
打印 上一主题 下一主题

Crash Dump与HPMC [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-11 11:25 |只看该作者 |倒序浏览
    有时系统在运行的过程中挂起,有时会自动重起,我们需要对相关的情况进行分析。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等原因,在这里就已经可以清楚地看到了。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/44257/showart_1713720.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP