Linux弹性云主机发生kdump时,操作系统无响应
问题描述:
采用XEN虚拟化技术的Linux弹性云主机,发生kdump时系统卡住无响应,不能自动重启恢复。例如,用户执行命令echo c>/proc/sysrq-trigger主动触发kdump功能,Linux弹性云主机卡住,如下图所示。
说明:
一般情况下,公有云提供的公共镜像已禁用kdump功能。使用公共镜像创建的弹性云主机不存在该问题。
可能原因:
− 部分版本的Linux内核与XEN虚拟化平台不适配。
− 内核不支持soft_rest的弹性云主机,开启kdump服务时,弹性云主机在dump时会卡死。
处理方法:
1. 禁用kdump功能
以CentOS 7.2为例:
a) 强制重启弹性云主机。
i 登录控制台。
ii 选择【计算 > 弹性云主机】。
iii 在弹性云主机列表中,勾选卡住的弹性云主机,并单击“重启”。
iv 勾选“强制重启”/“强制关机”,确定强制重启/强制关机弹性云主机。
v 单击“确定”。
b) 关闭kdump功能。
i 以root帐号登录强制重启后的弹性云主机。
ii 执行以下命令,禁用kdump功能。
service kdump stop
2. 对于支持"crash_kexec_post_notifiers"函数的弹性云主机,为解决kdump时不能自动重启的问题,可以在启动配置文件(menu.lst或者grub.cfg)中添加该函数。具体方法如下:
a) 执行以下命令,查询弹性云主机是否支持"crash_kexec_post_notifiers"函数,如下图所示。
cat /proc/kallsyms |grep crash_kexec_post_notifiers
− 是,执行b)。
− 否,请采用方法1。
b) 将"crash_kexec_post_notifiers"函数添加至开机启动配置文件menu.lst或者grub.cfg。
以menu.lst为例:
i 执行以下命令,打开menu.lst文件。
vi /boot/grub/menu.lst
ii 添加"crash_kexec_post_notifiers"函数至开机启动项,如下图所示。
iii 执行以下命令,重启弹性云主机使其生效。
reboot
还木有评论哦,快来抢沙发吧~