简单的叙述一下kdump这个服务的工作原理和作用(摘自网络)
dump 是一种的新的crash dump捕获机制,用来捕获kernel crash时候产生的crash dump。Kdump需要配置两个不同目的的kernel,其中一个我们在这里称作standard(production) kernel;另外一个称之为Crash(capture)kernel。
standard(production)kernel,是指我正在使用的kernel,当standard kernel在使用的过程中出现crash的时候, kdump会切换到crash kernel, 简单来说,standard kernel会正运行时发生crash,而crash(capture) Kernel 会被用来捕获production kernel crash时候产生的crash dump。
捕获crash dump是在新的crash(capture) kernel 的上下文中来捕获的,而不是在standard kernel上下文进行。
具体是当standard kernel方式crash的时候,kdump通过kexec(后面介绍)自动启动进入到crash kernel当中。如果启动了kdump服务,standard kernel会预留一部分内存, 这部分内存用来启动crash kernel。
也就是说这个kdump服务可以在内核崩溃的瞬间将现有的内存做个镜像
然后将这个镜像文件存储到dump文件中,然后下次启动可以用dump文件在其中找到一些蛛丝马迹。
一。启动Kdump
从 rhel5 开始,kexec-tools 已被默认安装在发行版,Centos6.9默认安装了Kdump,确认如下
但Kdump只在内存8G+的主机上是默认开启的,本机为VMware上的虚拟机,故需要手动开启。
将crashkernel=auto改为crashkernel=128M即可