如何使用diskdump产生一个vmcore文件

转载自官方Red Hat Knowledgebase


介绍

diskdump工具提供了在单机上创建和采集vmcore(kernel dump)的能力,而无须使用网络。diskdump创建的文件和netdump创建的文件格式一样,都可以使用同样的工具进行分析。和netdump相似,diskdump只能在一些特定的硬件条件下工作。

被支持的硬件设备都在README文件中被列出。README文件通常存放在/usr/share/doc/diskdump-*目录下。并且只有红帽企业Linux 3 Update 3之后的版本才能支持diskdump。

Diskdump是如何工作的?

创建diskdump需要2个步骤,和UNIX风格的传统disk dump很像。第一步是当内核本身出现崩溃的时候,当前的内存和CPU状态以及相关的信息都会被保存到一个支持diskdump的磁盘上的保留分区上。

在下一次重新启动的时候,当系统重新启动,diskdump的初始化脚本会从保留分区中读取保存的信息并创建一个vcore文件,然后这个文件被再次存放到/var/crash/目录下,文件名为127.0.0.1-




diskdump可以和netdump同时使用,但是必须单独配置。diskdump通常比netdump的优先级更高,除非在IO错误的情况下,会使用netdump. 配置diskdump.

为了创建diskdump,第一步要做得是加载diskdump模块。

# modprobe diskdump


确认模块已经被加载, 命令及其输出如下例.

# dmesg | tail header blocks: 3 bitmap blocks: 8 total number of memory blocks: 261999 total blocks written: 262010


diskdump守护进程保留分区需要在/etc/sysconfig/diskdump文件中指定。如下例。

DEVICE=/dev/sde1


下一步是初始化所需的分区。

警告:该分区的所以数据会丢失。

# service diskdump initialformat


最后,添加服务到启动过程,同时启动服务。

# chkconfig diskdump on # service diskdump start


设置了diskdump之后,为了可以保存diskdump镜像到/var/crash目录。添加如下命令到/etc/rc.local中,从而当系统崩溃后重启时会自动的执行它。

savecore -v /dev/


diskdump服务的配置如上,当下次系统崩溃时,数据可以被保存到指定的分区,如果系统的内存很大,这个过程可能会花费一些时间。



【如何使用diskdump产生一个vmcore文件】

    推荐阅读