zoukankan      html  css  js  c++  java
  • 【Linux知识积累】 CentOS开启Kdump的方法

    Linux内核崩溃转存机制

    kdump概念:
        当系统崩溃时,kdump 使用 kexec 启动到第二个内核,第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。
        继续学习:https://link.jianshu.com?t=http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/index.html#major3

    kdump正常运行的条件:
        1. 系统中开启kdump服务
        2. 启动文件配置中,合理分配了崩溃内存容量
        
    检查系统中kdump状态的方法:
        CentOS6:    service kdump status
        CentOS7:    systemctl status kdump.service
        
    开启系统中kdump的方法:
        1. Centos6.x操作说明:
            (1) grub修改预留内存
                a. 切换至root用户
                b. vi /etc/grub.conf
                c. 找到title 条目后我们要使用的系统及内核项
                d. 找到条目中kernel配置项下的“crashkernel=????”字段(如果没有则手动添加)
                e. 将=????修改为合适的大小
                    可选大小:
                        crashkernel=128M:
                        crashkernel=256M:     建议值
                        crashkernel=512M:
                        crashkernel=auto:     如果系统的内存 <= 8 GB 对kdump kernel不会保留任何内容(等同于关闭kdump),如果系统的内存> 8 GB但是<= 16 GB,crashkernel=auto会保留256M,等同于crashkernel=256M,如果系统内存> 16GB, crashkernel=auto会保留512M, 等同于crashkernel=512M.
                f. 保存文件后退出
            (2) 开启kdump服务
                a. 设置开机启动:    chkconfig kdump on
                b. 启动kdump:         service kdump start
                c. 查看dkump状态:    service kdump status
            (3) 检查
                a. 重新启动系统
                b. 查看dkump状态:    service kdump status
                c. 检查grub:        cat /proc/cmdline 内容与步骤1中修改的内容相同即为操作成功
            (4) 测试
                a. 查看log目录内容:    ls /var/crash/
                b. 触发系统崩溃:    echo c > /proc/sysrq-trigger
                                    此时系统崩溃,进行转储,转储后系统自动重启
                c. 查看是否生成新的崩溃文件,同步骤a,有新文件生成则kdump运行正常
        
        2. Centos7.x操作说明:
            (1) grub修改预留内存
                a. 切换至root用户
                b. vi /etc/default/grub
                c. 找到GRUB_CMDLINE_LINUX项
                d. 将配置项中的“crashkernel=????”字段(如果没有则手动添加)
                e. 将=????修改为合适的大小
                    可选大小:
                        crashkernel=128M:
                        crashkernel=256M:     建议值
                        crashkernel=512M:
                        crashkernel=auto:     如果系统的内存 <= 8 GB 对kdump kernel不会保留任何内容(等同于关闭kdump),如果系统的内存> 8 GB但是<= 16 GB,crashkernel=auto会保留256M,等同于crashkernel=256M,如果系统内存> 16GB, crashkernel=auto会保留512M, 等同于crashkernel=512M.
                f. 保存文件后退出
                g. 执行命令:    grub2-mkconfig -o /boot/grub2/grub.cfg
                h. 再执行命令:    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
                (g和h为冗余项,分别对应不同的系统安装方式,这里为了简化操作,所以全部执行)
            (2) 开启kdump服务
                a. 启动kdump:         systemctl start kdump.service
                b. 设置开机启动:    systemctl enable kdump.service
                c. 查看dkump状态:    systemctl status kdump.service
            (3) 检查
                a. 重新启动系统
                b. 查看dkump状态:    systemctl status kdump.service
                c. 检查grub:        cat /proc/cmdline 内容与步骤1中修改的内容相同即为操作成功
            (4) 测试
                a. 查看log目录内容:    ls /var/crash/
                b. 触发系统崩溃:    echo c > /proc/sysrq-trigger
                                    此时系统崩溃,进行转储,转储后系统自动重启
                c. 查看是否生成新的崩溃文件,同步骤a,有新文件生成则kdump运行正常

    修改kdump默认配置:
        vim /etc/kdump.conf
            coredump文件目录                path /var/crash
            加上-c表示压缩,原文件中没有    core_collector makedumpfile -c -l -message-level 1 -d 31
            生成coredump后,重启系统        default reboot
            
            
            echo 1 > /proc/sys/kernel/sysrq
            echo c > /proc/sysrq-trigger

  • 相关阅读:
    MVC过滤器
    MVC自带的校验
    FPGA简单概述
    CAN总线扩展数据帧介绍
    简述人工智能发展的先决条件
    CAN总线标准帧
    CAN总线应用
    CAN总线优点
    CAN总线概述
    高速PCB设计注意事项
  • 原文地址:https://www.cnblogs.com/guoqingpeng/p/14490521.html
Copyright © 2011-2022 走看看