不同架构下的Kdump

Kdump文档

常见概念和问题

  1. 生产内核与捕获内核
    product kernel: 正常时候用的内核;
    dump-cature kernel:os panic崩溃时候,正常内核崩了的时候的替补内核,用来运行必须的进程来获取崩溃当时的内存的全部信息

  2. 什么时候启动捕获内核?通过什么?
    在需要获取系统内核内存信息时(例如,当系统出现故障时),
    Kdump使用kexec快速启动捕获内核。

  3. 系统内核的内存映像(内存快照:内存在某时间点下的状态记录)在重启过程中被保留,捕获内核可以访问它。

  4. 我们可以使用常见的命令,如cp和scp,将内存image复制到本地磁盘上,保存为dump文件(转储文件),或通过网络复制到远程系统。

  5. ELF格式:Executable and Linkable Format,即可执行文件,目标文件,共享链接库和内核转储(core dumps)准备的标准文件格式。 Linux和很多类Unix操作系统都使用这个格式。

Kdump支持的技术栈(架构)

KDUMP和KEXEC目前支持X86,X86_64,PPC64,IA64,S390x,ARM和ARM64架构。

当系统内核(生产内核)引导时,它会为转储捕获内核保留一小块内存。
为什么要为内核单独保留一小块内存?
因为这确保了来自系统内核的正在进行的直接内存访问(DMA)不会破坏转储捕获内核。

那这个保留的内存如何使用?
kexec -p命令将dump-capture内核加载到这个保留的内存中。

引导所需的内存大小

  • 在x86机器上,无论内核加载在哪里,引导都需要前640 KB的物理内存。因此,在重新引导到转储捕获内核之前,kexec会备份该区域。

  • 在PPC64机器上,无论内核加载在哪里,引导都需要第一个32KB的物理内存,为了支持64K页面page-size大小,kexec备份第一个64KB内存。

  • 在s390x机器上,当触发kdump时,crashkernel区域与区域[0,crashkernel region size]交换,然后kdump内核以[0,crashkernel region size]运行。因此s390x不需要重定位内核

关于系统内核核心映像的所有必要信息都以ELF格式编码,并在崩溃前存储在内存的预留区域中。ELF-header开始的物理地址通过elfcorehdr= boot参数传递给捕获内核。ELF-header的大小也可以在使用elfcorehdr=[size[KMG]@]offset[KMG]语法时传递。

必备操作X86PPC64
引导所需640KB64KB

可以使用dump-cature-kernel在/proc/vamcore里访问内存映像。

设置和安装

安装 kexec-tools

  1. root用户登录
  2. 下载kexec-tools; http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools.tar.gz
  3. 解压:tar xvpzf kexec-tools.tar.gz
  4. 切换目录:cd kexec-tools-VERSION
  5. 配置package:./configure
  6. 编译: make
  7. 安装:make install

构建dump捕获内核的方式

有两种方法使用kdump。

1)构建单独的订制的转储捕获内核以捕获kernel dump。

2)或使用系统生产内核二进制本身作为转储捕获内核;也就是说无需构建单独的捕获内核。这个只有支持可重定位内核的架构才能使用。当今,I386,X86_64,PPC64,IA64,ARM和ARM64架构支持可重定位内核

启用kdump的配置。

  1. 启用"kexec system call" in “Processor type and features.”
CONFIG_KEXEC=y
  1. 启用"sysfs file system support" in “Filesystem” -> “Pseudo
    filesystems.” 这一般是默认的;
CONFIG_SYSFS=y
  1. 启用“kernel hacking”中的“Compile the kernel with debug info”。
CONFIG_DEBUG_INFO=Y

这使得内核带有调试符号。转储分析工具需要一个带有调试符号的vmlinux,以便读取和分析转储文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值