AnyShare-配置手动触发 kdump 最佳实践
关键字
kdump、内存转储
适用产品
- AnyShare 6.0.0 - 6.0.6
目的
在部分情况下,系统卡死、崩溃时未自动触发 kdump,系统日志内亦未能记录有用信息,可参考本最佳实践,配置手动触发 kdump ,以便出现此类情况时可收集内存转储文件进行问题的分析。
解决方案
1. 通过 SSH 工具登录 AnyShare 节点操作系统,执行如下命令检查 kdump 服务状态。
systemctl status kdump


2. 执行如下命令,启动 kdump 服务。
systemctl start kdump
3. 执行如下命令,设置 kdump 服务为开机自启动。
systemctl enable kdump
systemctl is-enabled kdump

4. 执行如下命令,设置内存转储文件目录,目录以 /var/crash 为例。
grep -qi 'kernel.core_pattern' /etc/sysctl.conf && sed -ri 's/^kernel.core_pattern.*$/kernel.core_pattern = \/var\/crash\/%e.core.%p/g' /etc/sysctl.conf || sed -ri '$a\kernel.core_pattern = \/var\/crash\/%e.core.%p' /etc/sysctl.conf;
sysctl -p

5. 执行如下命令,设置使用 Magic SysRq Keys 触发 kdump。
grep -qi 'kernel.sysrq' /etc/sysctl.conf && sed -ri 's/^kernel.sysrq.*$/kernel.sysrq = 1/g' /etc/sysctl.conf || sed -ri '$a\kernel.sysrq = 1' /etc/sysctl.conf;
sysctl -p

6. 执行如下命令,设置使用 NMI key 触发 kdump 。
grep -qi 'kernel.unknown_nmi_panic' /etc/sysctl.conf && sed -ri 's/^kernel.unknown_nmi_panic.*$/kernel.unknown_nmi_panic = 1/g' /etc/sysctl.conf || sed -ri '$a\kernel.unknown_nmi_panic = 1' /etc/sysctl.conf;
sysctl -p

7. 当发生系统卡死、崩溃时,可使用组合键 Alt + Printscreen + C 手动触发 kdump,如键盘失去响应,可按下主机前面板上的 NMI 键手动触发 kdump,进行如上操作后,系统将进行内存转储,存放目录为 /var/crash 。
更多信息
- 关于 kdump 的更多信息,请参考官方文章:Documentation for Kdump - The kexec-based Crash Dumping Solution。
- 关于 magic sysrq keys 的更多信息,请参考官方文章:Linux Magic System Request Key Hacks。