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

 

 

 

 

你可能感兴趣的:(RedHat-Linux)