获取XEN内核core dump
在获取内核core dump的实践中,我已经成功在使用KVM虚拟化的CentOS 7获得了操作系统内核core dump文件,但是在XEN环境中,同样的方法却没有成功。本文就是进一步排查问题所在原因的实践。
检查内核
core dump存储位置
cat /proc/sys/kernel/core_pattern显示配置了位置 - 这个配置可以在 /etc/sysctl.conf 中设置 kernel.core_pattern = $PATH 来实现
/cloud/data/corefile/core-%e-%p-%t-%h检查内核启动参数中是否启用了
crashkernel参数
grep --color crashkernel /boot/grub/grub.conf这里看到内核启动参数中没有配置
crashkernel=
检查
kdump是否启动
chkconfig --list | grep kdump这里目前看到
kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off显示系统没有配置 kdump 启用
在没有启动
kdump之前,先尝试触发一次SysRq的core dump
echo c | sudo tee /proc/sysrq-trigger此时在带外可以看到信息
2017-01-18 10:12:31 SysRq : Trigger a crash
2017-01-18 10:12:31 BUG: unable to handle kernel NULL pointer dereference at (null)
2017-01-18 10:12:31 IP: [] sysrq_handle_crash+0x16/0x20
2017-01-18 10:12:31 PGD 14b8f9067 PUD 19a30d067 PMD 0
2017-01-18 10:12:31 Oops: 0002 [#1] SMP
2017-01-18 10:12:31 last sysfs file: /sys/bus/pci/slots/3/address
...
2017-01-18 10:12:31 [] write_sysrq_trigger+0x3b/0x46
2017-01-18 10:12:31 [] proc_reg_write+0x74/0x8f
2017-01-18 10:12:31 [] vfs_write+0xb0/0x10a
2017-01-18 10:12:31 [] sys_write+0x4c/0x72
2017-01-18 10:12:31 [] system_call_fastpath+0x16/0x1b
2017-01-18 10:12:31 (XEN) Domain 0 crashed: 'noreboot' set - not rebooting.不过重启系统之后,可以看到在 /cloud/data/corefile/ 目录下并没有实现vmcore dump
修正启动内核参数增加
crashkernel=64M@16M
启用
kdump
检查 chkconfig --list | grep kdump 可以看到输出 kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
重启服务器使配置生效,使用
dmesg | grep crash可以看到
反复测试调整crashkernel=配置参数,但是还是没有成功
增加
/etc/kdump.conf配置
再次触发kernel core dump
不过,我感觉可能是没有存储到磁盘,因为带外显示
5秒钟时间可能太短了,磁盘不一定能够写完
重启服务器后再检查
/cloud/data/corefile/core-%e-%p-%t-%h目录依然没有找到crash dump文件
这个问题需要进一步排查
Last updated
Was this helpful?