Inicio > Sistemas > Investigar reinicios de servidores Linux con kdump

Investigar reinicios de servidores Linux con kdump

En algunos sistemas puede suceder que algún servidor se reinicie sin motivo aparente y sin dejar rastro en ningún log. Cuando esto sucede en entornos productivos, y de manera continua, puede convertirse en un verdadero problema. Si se trata de un servidor con sistema operativo Linux, podemos hacer uso de la herramienta kdump para investigar el origen de la caída y aplicar medidas correctivas.

kdump es un mecanismo del kernel de Linux que vuelca información sobre la caída del sistema, creando una imagen de la memoria (vmcore) que puede ayudar a determinar la causa del problema.

Haciendo uso de la herramienta kexec para arrancar un segundo kernel (también llamado crash kernel) consigue reservar una pequeña parte de la memoria del sistema de manera exclusiva que, por tanto, no estará disponible para otros usos. Cuando se activa, el sistema se arranca desde el contexto de este segundo kernel, que hará uso de la memoria reservada para él, y cuyo único propósito es capturar la imagen del volcado de la memoria (o core dump) en caso de que el sistema se caiga.

kdump se puede configurar en el momento de instalación del sistema, aunque si no se ha hecho podemos configurarlo posteriormente sin ningún tipo de problema, con el inconveniente de que hará falta reiniciar la máquina. El primer paso para poder hacer uso de kdump en nuestro sistema será instalar el paquete kexec-tools en caso de que no lo tengamos. Adicionalmente, se pueden instalar los paquetes crash y kernel-debuginfo para investigar el origen del problema a partir del vmcore generado.

Una vez instalados estos paquetes, habrá que configurar kdump. Este paso se puede realizar de dos maneras:

  1. Con la interfaz gráfica. Se necesitará tener instalado el paquete system-config-kdump.Configurar kdump
  2. Desde línea de comando editando los ficheros a mano. El principal fichero a modificar es grub.conf, al que es necesario añadir a la línea de carga del kernel el parámetro crashkernel con el valor de memoria a configurar, pudiendo ser un valor determinado como crashkernel=M, o un valor automático como crashkernel=auto, aunque este último caso tiene sus limitaciones.

La línea del kernel debe quedar algo parecido a lo siguiente:

title Oracle Linux Server Unbreakable Enterprise Kernel (2.6.39-400.248.3.el5uek)
        root (hd0,0)
        kernel /vmlinuz-2.6.39-400.248.3.el5uek ro root=/dev/VolGroup00/LogVol00 rhgb quiet numa=off transparent_hugepage=never crashkernel=128M@48M
        initrd /initrd-2.6.39-400.248.3.el5uek.img

El fichero de configuración de kdump es /etc/sysconfig/kdump, el cual posee varias opciones configurables, una de ellas es dónde queremos guardar los volcados de memoria. Por defecto se guarda en /var/crash, pero se puede modificar para que se almacene en otro filesystem disponible en la máquina, un dispositivo RAW o un directorio remoto mediante NFS o SSH.

También hay que tener en cuenta el tamaño de la memoria y el espacio disponible en disco, es decir, si la máquina tiene 32GB de memoria, es posible que el volcado de memoria llegue a necesitar ese espacio Para solucionar esto se puede activar otra de las características de kdump, el ‘core collector’, configurándolo para que comprima el volcado o elimine cierta información.

Una vez configurado kdump únicamente queda arrancar el servicio y habilitarlo para que se inicie junto con la máquina:

#chkconfig kdump on
#service kdump start
No kdump initial ramdisk found.                            [WARNING]
Rebuilding /boot/initrd-2.6.39-200.24.1.el6uek.x86_64kdump.img
Starting kdump:                                            [  OK  ]

Por último se puede revisar el estado con service kdump status, si es correcto nuestro sistema ya estará preparado para guardar volcados de memoria en caso de caídas del sistema. La documentación de kdump para Oracle está disponible en este link.

Categorías:Sistemas Etiquetas: ,
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: