Chinaunix首页 | 论坛 | 博客
  • 博客访问: 196917
  • 博文数量: 22
  • 博客积分: 1696
  • 博客等级: 上尉
  • 技术积分: 336
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-06 21:22
文章分类

全部博文(22)

文章存档

2011年(4)

2010年(18)

分类: LINUX

2010-09-16 22:13:44

四:设置Kdump
    上次说过了Kdump配置Dump Target,这次来说说Kdump其他的配置选项:
#path /var/crash
#core_collector makedumpfile -c
#link_delay 60
#kdump_post /var/crash/scripts/kdump-post.sh
#extra_bins /usr/bin/lftp
#disk_timeout 30
#extra_modules gfs2
#default shell
    1) path /var/crash这个在上次已经说过了,就不再赘述了。重点需要讲一下的是core_collector这个选项!core_collector这个选项非常有用,下面就详细说一下core_collector:
    2) core_collector是用来指定内核收集的,例子里采用的是makedumpfile作为收集器。查找一下系统,发现makedumpfile位于这个位置:
[root@Derek-Laptop derek]# whereis makedumpfile
makedumpfile: /sbin/makedumpfile
    makedumpfile有很多选项,简要列了一下:
    -c: Compress dump data by each page.
    -d: Specify the type of unnecessary page for analysis.
Dump  |  zero   cache   cache    user    free
  Level |  page   page    private  data    page
  -------+---------------------------------------
      0  |
      1  |  X
      2  |         X
      4  |         X       X
      8  |                          X
    16  |                                  X
    31  |  X      X       X        X       X
    --message-level: Specify the message types.
Message | progress    common    error     debug     report
   Level   | indicator   message   message   message   message
   ---------+------------------------------------------------------
          0 |
          1 |     X
          2 |                X
          4 |                          X
       * 7 |     X          X         X
          8 |                                    X
        16 |                                              X
        31 |     X          X         X         X         X
    需要注意的是-d选项,这在拥有巨大内存的机器上非常有用。例如SGI的UV,几个TB的内存全部Dump的话,非常低效。这个时候,加上-d 31,也就是Kdump在makedumpfile的时候,过滤掉zero page, cache page, cache private, user data, free page。这会大大加速Dump的速度,生成更小的vmcore。如果不需要全部过滤,那也可以通过指定其他的级别,最大为31,最小为0,也就是不做过滤。
    还有就是--message-level的选项,如果熟悉Kernel的Message Level的话,这个应该不难理解。如果不了解的话,也没有关系,因为这个选项在我使用Kdump的时候,并不常常用到。可能是水平不够^_^
    我在学习的过程中,最常用的就是:
core_collector makedumpfile -c -d 31
    3) link_delay 60这个选项一般与网络Dump相关,因为有些情况下,网络建立有一定的延迟,比如说DNS、IP、Gate等等情况下有延迟。所以设定60秒的延迟,在Kdump内核启动后,会等待60秒,等待网络的建立,再生成vmcore,通过NFS、SCP来传输vmcore。
    4) kdump_post /var/crash/scripts/kdump-post.sh这个可以用来在Dump vmcore完毕后执行一个脚本。用户可以自定义需要执行的动作。
    5) extra_bins /usr/bin/lftp这个可以用来把额外的bin包含到Kdump Kernel中。说到这个就必须要说一下BusyBox了。Busybox把很多UNIX的工具都集成到了一个很小的可执行的文件中,而实际上,在Kdump Kernel提供的Shell环境中的所有命令都是由Busybox提供的。关于Busybox,东西实在很多,有机会慢慢说。
    所以,这一行实际上的操作是把指定外的可执行文件包含到了Kdump Kernel之中。这样就能在Kdump Kernel之中使用很多你需要的程序了,比如lftp!
    6) disk_timeout 30这个没有用过,所以不好乱说
    7) extra_modules gfs2这个也是非常有意思的东西,可以把你需要的额外的内核模块包含进来。关于这个,我会再写一篇文章详细说明的。
    8) default shell这个是用来指定默认操作的。比如说,我使用了如下的配置:
core_collector makedumpfile --error
    很明显,makedumpfile没有--error这个参数选项。这会导致makedumpfile失败,Kdump Kernel在遇到这种情况的时候,就会根据default的选项,做相应的操作。这里设置的是shell,那么Kdump Kernel就会Drop到Shell去。你可以查看网络情况,使用Busybox提供的一些命令。
    default这个配置,除了shell之外,还可以设置为:reboot和halt。
    这就是大概的kdump的配置了,说的不是很细致。贴一个我自己使用的Kdump.conf
[root@Derek-Laptop derek]# tail /etc/kdump.conf
#kdump_post /var/crash/scripts/kdump-post.sh
#extra_bins /usr/bin/lftp
#disk_timeout 30
#extra_modules gfs2
#default shell

ext4 UUID=2c560b75-fc2b-4346-a669-6403e954498a
path /var/kdump
core_collector makedumpfile -c -d 31
default shell

Tips:
如往常一样,一些文档提供:
1)  的项目主页
2) man kdump.conf
3) /sbin/makedumpfile --help
4) man mkdumprd
阅读(4237) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~