¿Qué es kdump y Kexec?
Kdump es el mecanismo de volcado de fallas del kernel de Linux. En el caso de un bloqueo del sistema, Kdump proporciona una imagen de volcado de memoria (vmcore). Esta imagen puede ayudar a determinar la causa del accidente. Se recomienda encarecidamente que habilite la función Kdump.
Kexec y Kdump juntos aseguran un arranque más rápido y la creación de núcleos virtuales de kernel confiables para fines de diagnóstico. Kexec es un mecanismo de inicio rápido que permite iniciar un kernel de Linux desde el contexto de un kernel que ya se está ejecutando sin pasar por el BIOS. Kdump usa Kexec para arrancar en un segundo kernel cada vez que el sistema falla. El volcado de memoria se captura desde el contexto de un núcleo recién iniciado y no desde el contexto del núcleo bloqueado. Este segundo núcleo arranca con muy poca memoria y captura la imagen de volcado.
Instalación y configuración de kdump
Para habilitar y usar Kdump, instale el siguiente paquete:
# yum install kexec-tools
Habilitar Kdump requiere que reserve una parte de la memoria del sistema para el kernel de captura. Esta parte de la memoria no está disponible para otros usos. La cantidad de memoria reservada para el kernel de Kdump está representada por el parámetro de arranque crashkernel. Esto se agrega a la línea del núcleo en el archivo de configuración de GRUB, /boot/grub2/grub.cfg . El siguiente ejemplo habilita Kdump y reserva 128 MB de memoria:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=128M
Además de reservar memoria, puede designar la dirección inicial (desplazamiento) de esta memoria reservada. Por ejemplo, agregar la siguiente opción a la línea del kernel reserva 128 MB de memoria, comenzando en la dirección física 0x01000000 (16 MB):
crashkernel=128M@16M
– Para establecer el desplazamiento en 48M:
crashkernel=128M@48M
– Si tiene más de 128 GB de RAM, use la siguiente configuración:
crashkernel=512M@64M
– Si se necesita más control sobre el tamaño y la ubicación de la memoria reservada, use el siguiente formato:
crashkernel=range1:size1[,range2:size2,...][@offset]
– El valor range[n] especifica un rango de valores que se comparan con la cantidad de RAM física presente en el sistema. El valor size[n] correspondiente especifica la cantidad de memoria Kexec que se debe reservar.
– El siguiente ejemplo le dice a Kexec que reserve 64 MB de RAM si el sistema contiene entre 512 MB y 2 GB de memoria. Si el sistema contiene más de 2 GB de memoria física, reserve 128 MB:
crashkernel=512M-2G:64M,2G-:128M
– En sistemas x86_64 con al menos 2 GB de memoria, puede asignar memoria para kdump automáticamente. Utilice el siguiente parámetro para asignar automáticamente memoria para kdump:
crashkernel=auto
Habilitar kdump
Después de agregar el parámetro crashkernel al archivo /boot/grub2/grub.cfg, reinicie su sistema para que la memoria esté reservada para el kernel de captura. El “libre –m El comando ” muestra correctamente que hay menos memoria disponible para el sistema.
Utilice el comando systemctl para permitir que el servicio Kdump se inicie en el momento del arranque. Use el comando systemctl para iniciar el servicio Kdump.
# systemctl enable kdump # systemctl start kdump
Esto carga su imagen kernel-kdump a través de Kexec, dejando su sistema listo para capturar un vmcore en caso de bloqueo.
Generar volcado forzado
Puede probar la configuración de kdump forzando el bloqueo de su sistema con el siguiente comando:
# echo c > /proc/sysrq-trigger
Esto hace que se muestre una salida de pánico, seguido por el reinicio del sistema en el kernel de Kdump. Cuando el proceso de inicio llega al punto en que inicia el servicio Kdump, el vmcore se copia en el disco en la ubicación predeterminada, /var/crash/[YYYY-MM-DD-HH:MM]/vmcore. Luego, el sistema se reinicia de nuevo en el kernel normal.
Nota :Kdump no es compatible con invitados Xen domU. Los sistemas virtualizados pueden usar el comando xm dump-core para pánicos.CentOS / RHEL 7:Cómo configurar kdumpCentOS / RHEL 6:Cómo configurar kdump
CentOS / RHEL 5:Cómo configurar kdump
Comprensión del archivo de configuración de kdump /etc/kdump.conf