我们有一个问题,我们的 CentOS 7 服务器不会在内核崩溃时在 /var/crash 中生成内核转储文件。看起来崩溃内核永远不会启动。我们按照 Rhel 指南 ( http://red.ht/1sCztdv ) 配置故障转储,乍一看,一切似乎都配置正确。我们正在引发这样的恐慌:
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
这会导致系统冻结。我们在控制台上没有收到任何消息,并且控制台变得无响应。此时我会想象系统会启动崩溃内核并开始将转储写入 /var/crash。我已将其置于冻结状态长达 30 分钟,以使其有时间完成整个转储。但是,硬冷重启后 /var/crash 为空。
此外,我已按预期复制了 KVM 虚拟机中的配置和 kdump 字词。因此,要么是我在物理系统上的配置有问题,要么是导致挂起而不是转储的硬件配置有些奇怪。
我们的服务器是具有 24 个内核和 128GB 内存的 HP G9。以下是其他一些细节:
[user@host]$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=287798f7-fe7a-4172-a35a-6a78051af4d2 ro rd.lvm.lv=vg_sda/lv_root vconsole.font=latarcyrheb-sun16 rd.lvm.lv=vg_sda/lv_swap crashkernel=auto vconsole.keymap=us rhgb nosoftlockup intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 idle=mwait isolcpus=2-11,14-23
[user@host]$ systemctl is-active kdump
active
[user@host]$ cat /etc/kdump.conf
path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31 -c
[user@host]$ cat /proc/iomem |grep Crash
2b000000-357fffff : Crash kernel
[user@host]$ dmesg|grep Reserving
[ 0.000000] Reserving 168MB of memory at 688MB for crashkernel (System RAM: 131037MB)
[user@host]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_sda-lv_root 133G 4.7G 128G 4% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 9.1M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 492M 175M 318M 36% /boot
/dev/mapper/vg_sdb-lv_data 2.8T 145G 2.6T 6% /data