kexec是一个快速启动机制,允许在已经运行的内核的上下文启动另一个Linux内核,不需要经过BIOS。BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器。这种办法可以为经常启动机器的开发者节省很多时间。
kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。
使用kdump的步骤大致为:
0). 内核态支持(内核高于2.6.13-rc1)|kexec-tools(包含kexec,kdump,makedumpfile)和crash工具(基于gdb的调试器,分析转储的文件)
1). 第一个内核(又叫工作内核)以crashkernel=Y@X形式启动,kdump在第一个内核所在系统中以服务形式运行
2).一旦发生内核崩溃(手动或者自动),kdump利用kexec快速启动机制启动到第二个内核(capture kernel),收集第一个内核的相关内存信息并转储到文件中(makedumpfile)
3).利用crash工具进行分
makedumpfile -c -d的流程大致如下图所示(版本1.3.8),如有错误欢迎斧正:)
阅读(3878) | 评论(0) | 转发(1) |