文档首页/ 弹性云服务器 ECS/ 常见问题/ 操作系统相关问题/ Linux弹性云服务器发生kdump时,操作系统无响应
更新时间:2024-09-30 GMT+08:00

Linux弹性云服务器发生kdump时,操作系统无响应

问题描述

采用XEN虚拟化技术的Linux弹性云服务器,发生kdump时系统卡住无响应,不能自动重启恢复。例如,用户执行命令echo c>/proc/sysrq-trigger主动触发kdump功能,Linux弹性云服务器卡住,如图1所示。

图1 触发kdump功能

一般情况下,公共镜像已禁用kdump功能。使用公共镜像创建的弹性云服务器不存在该问题。

可能原因

  • 部分版本的Linux内核与XEN虚拟化平台不适配。
  • 内核不支持soft_rest的弹性云服务器,开启kdump服务时,弹性云服务器在dump时会卡死。

处理方法

方法一:禁用kdump功能

以CentOS 7.5为例:

  1. 强制重启弹性云服务器
    1. 登录控制台。
    2. 选择“计算 > 弹性云服务器”。
    3. 弹性云服务器列表中,勾选卡住的弹性云服务器,并单击“重启”。
    4. 勾选“强制重启”/“强制关机”,确定强制重启/强制关机弹性云服务器
    5. 单击“确定”。
  2. 关闭kdump功能。
    1. 以root账号登录强制重启后的弹性云服务器
    2. 执行以下命令,禁用kdump功能。

      service kdump stop

方法二:

对于支持"crash_kexec_post_notifiers"函数的弹性云服务器,为解决kdump时不能自动重启的问题,可以在启动配置文件(menu.lst或者grub.cfg)中添加该函数。具体方法如下:

  1. 执行以下命令,查询弹性云服务器是否支持"crash_kexec_post_notifiers"函数,如图2所示。

    cat /proc/kallsyms |grep crash_kexec_post_notifiers

    图2 支持"crash_kexec_post_notifiers"函数
    • 是,执行2
    • 否,请采用方法一。
  2. 将"crash_kexec_post_notifiers"函数添加至开机启动配置文件menu.lst或者grub.cfg。

    以menu.lst为例:

    1. 执行以下命令,打开menu.lst文件。

      vi /boot/grub/menu.lst

    2. 添加"crash_kexec_post_notifiers"函数至开机启动项,如图3所示。
      图3 编辑menu.lst文件
    3. 执行以下命令,重启弹性云服务器使其生效。

      reboot