转载自官方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服务的配置如上,当下次系统崩溃时,数据可以被保存到指定的分区,如果系统的内存很大,这个过程可能会花费一些时间。