Kdump es una característica del kernel que se utiliza para capturar volcados cuando el sistema o el kernel fallan. Para habilitar kdump, tenemos que reservar una parte de la RAM física que se usará para ejecutar kdump kernel en caso de pánico o bloqueo del kernel.
Cuando se produce un bloqueo del kernel o un pánico del kernel, la ejecución del kernel ejecuta 'kexec(kdump kernel) ' y carga el kernel kdump desde la memoria de reserva y luego el contenido de la RAM y el intercambio se copian al archivo vmcore en el disco local o en el disco remoto y finalmente reinicia la caja.
Al analizar los volcados de memoria podemos encontrar la razón o el caso raíz de la falla del sistema. Si tiene compatibilidad con el sistema operativo, puede compartir los volcados de memoria con el proveedor para su análisis.
En este artículo, demostraremos cómo habilitar kdump en RHEL 7 y CentOS 7
Paso:1 Instale 'kexec-tools' usando el comando yum
Use el siguiente comando yum para instalar el paquete 'kexec-tools' en caso de que no esté instalado.
[[email protected] ~]# yum install kexec-tools
Paso:2 Actualice el archivo GRUB2 para reservar memoria para el kernel de Kdump
Edite el archivo GRUB2 (/etc/default/grub ), agregue el parámetro 'crashkernel=
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=128M vconsole.keymap=us rhgb quiet"
Ejecute el siguiente comando para regenerar la configuración de grub2.
[[email protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
En caso de firmware UEFI, use el siguiente comando
[[email protected] ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
El comando anterior informará a bootlaoder para reservar 128 MB de RAM después de reiniciar.
Reinicie el cuadro ahora usando el siguiente comando:
[[email protected] ~]# shutdown -r now
Paso:3 Actualice la ubicación del volcado y la acción predeterminada en el archivo (/etc/kdump.conf)
Para almacenar un volcado de memoria o un archivo vmcore en un sistema de archivos local, edite el archivo '/etc/kdump.conf ' y especifique la ubicación según su configuración. En mi caso, estoy usando un sistema de archivos local separado ( /var/crash ). Se recomienda que el tamaño del sistema de archivos sea equivalente al tamaño de la RAM de su sistema o que el sistema de archivos tenga espacio libre equivalente al tamaño de la RAM. Kdump permite comprimir los datos de volcado usando la opción 'recolector central' (core_collector makedumpfile -c ) donde -c se usa para la compresión.
En caso de que kdump no pueda almacenar el archivo de volcado en la ubicación especificada, se realizará la acción predeterminada que se menciona en la directiva predeterminada. En mi caso, la acción predeterminada es reiniciar.
Actualice las siguientes tres directivas en el archivo kdump.conf.
[[email protected] ~]# vi /etc/kdump.conf path /var/crash core_collector makedumpfile -c default reboot
Diferentes opciones para almacenar el volcado:
Paso:4 Inicie y habilite el servicio kdump
[[email protected] ~]# systemctl start kdump.service [[email protected] ~]# systemctl enable kdump.service [[email protected] ~]#
Paso:5 Ahora pruebe Kdump bloqueando manualmente el sistema
Antes de bloquear su sistema, verifique si el servicio kdump se está ejecutando o no utilizando el siguiente comando.
[[email protected] crash]# systemctl is-active kdump.service [[email protected] crash]# service kdump status
Para probar nuestra configuración de kdump, bloquearemos manualmente nuestro sistema con los siguientes comandos.
[[email protected] ~]# echo 1 > /proc/sys/kernel/sysrq ; echo c > /proc/sysrq-trigger
Esto creará un archivo de volcado de memoria (vmcore ) en '/var/crash ‘ sistema de archivos.
[[email protected] ~]# ls -lR /var/crash /var/crash: total 0 drwxr-xr-x. 2 root root 42 Mar 4 03:02 127.0.0.1-2016-03-04-03:02:17 /var/crash/127.0.0.1-2016-03-04-03:02:17: total 135924 -rw-------. 1 root root 139147524 Mar 4 03:02 vmcore -rw-r--r--. 1 root root 35640 Mar 4 03:02 vmcore-dmesg.txt [[email protected] ~]#
Paso:6 Use el comando 'crash' para analizar y depurar volcados de errores
Crash es la utilidad o comando para depurar y analizar el volcado de memoria o el archivo vmcore.
Para usar el bloqueo, asegúrese de que estén instalados dos paquetes:'crash &kernel-debuginfo ‘
[[email protected] ~]# yum install crash
Para instalar el paquete 'kernel-debuginfo', primero habilite el repositorio de depuración. Edite el archivo de repositorio /etc/yum.repos.d/CentOS-Debuginfo.repo
cambiar 'habilitado=0' a 'habilitado=1'
[[email protected] ~]# yum install kernel-debuginfo
Una vez que se haya instalado kernel-debuginfo, intente ejecutar el siguiente comando de bloqueo, nos dará un aviso de bloqueo donde podemos ejecutar comandos para encontrar información del proceso, lista de archivos abiertos cuando el sistema se bloqueó.
[[email protected] ~]# crash /var/crash/127.0.0.1-2016-03-04-14\:20\:06/vmcore /usr/lib/debug/lib/modules/`uname -r`/vmlinux crash>
Escriba 'ps ' Comando para enumerar el proceso que se estaba ejecutando cuando el sistema se bloqueó.
crash> ps
Para ver los archivos que estaban abiertos cuando el sistema se bloqueó, escriba el comando "archivos" en el indicador de bloqueo.
crash> files PID: 5577 TASK: ffff88007b44f300 CPU: 0 COMMAND: "bash" ROOT: / CWD: /root FD FILE DENTRY INODE TYPE PATH 0 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR /dev/pts/0 1 ffff880036b73900 ffff880068c409c0 ffff8800794a8d10 REG /proc/sysrq-trigger 2 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR /dev/pts/0 10 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR /dev/pts/0 255 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR /dev/pts/0 crash>
Escribe comando 'sys' para enumerar la información del sistema cuando se bloqueó.
crash> sys KERNEL: /usr/lib/debug/lib/modules/3.10.0-327.10.1.el7.x86_64/vmlinux DUMPFILE: /var/crash/127.0.0.1-2016-03-04-14:20:06/vmcore CPUS: 1 DATE: Fri Mar 4 14:20:01 2016 UPTIME: 00:02:00 LOAD AVERAGE: 0.75, 0.48, 0.19 TASKS: 115 NODENAME: cloud.linuxtechi.com RELEASE: 3.10.0-327.10.1.el7.x86_64 VERSION: #1 SMP Tue Feb 16 17:03:50 UTC 2016 MACHINE: x86_64 (2388 Mhz) MEMORY: 2 GB PANIC: "SysRq : Trigger a crash" crash>
Para obtener ayuda de cualquier comando en el aviso de bloqueo, escriba 'ayuda
Así concluye el artículo. No dudes en compartirlo si te ha gustado.
Leer también : Cómo instalar ownCloud en CentOS 7