kdump es una función del kernel de Linux que crea volcados de memoria en caso de un fallo del kernel . Al activarse, kdump exporta una imagen de memoria (también conocida como vmcore ) que puede analizarse para depurar y determinar la causa del fallo. La imagen de la memoria principal , exportada como un objeto ELF ( Executable and Linkable Format ), puede accederse directamente a través de /proc /vmcore durante el manejo de un fallo del kernel, o bien puede guardarse automáticamente en un sistema de archivos local , en un dispositivo sin formato o en un sistema remoto accesible a través de la red . [ 1 ] [ 2 ]
Interiores

En caso de un fallo del kernel, kdump preserva la consistencia del sistema arrancando otro kernel de Linux , conocido como kernel de captura de volcado , y utilizándolo para exportar y guardar un volcado de memoria. Como resultado, el sistema arranca en un entorno limpio y fiable en lugar de depender de un kernel ya dañado que podría causar diversos problemas, como la corrupción del sistema de archivos al escribir un archivo de volcado de memoria. Para implementar esta configuración de "doble kernel", kdump utiliza kexec para el arranque en caliente del kernel de captura de volcado inmediatamente después del fallo del kernel, aprovechando la capacidad de kexec para arrancar "sobre" el kernel en ejecución, evitando así la ejecución de un gestor de arranque y la inicialización del hardware realizada por el firmware del sistema ( BIOS o UEFI ). Un kernel de captura de volcado puede ser una imagen de kernel de Linux independiente creada específicamente para este propósito, o bien la imagen del kernel principal puede reutilizarse en arquitecturas que admiten kernels reubicables . [ 1 ] [ 3 ] [ 4 ] [ 5 ] : 5–6
El contenido de la memoria principal ( RAM ) se conserva durante el arranque y la ejecución del kernel de captura de volcados reservando una pequeña cantidad de RAM por adelantado, en la que se precarga el kernel de captura de volcados para que ninguna parte de la RAM utilizada por el kernel principal se sobrescriba cuando se gestiona un fallo del kernel. Esta cantidad reservada de RAM es utilizada exclusivamente por el kernel de captura de volcados y no se utiliza durante el funcionamiento normal del sistema. Algunas arquitecturas, incluidas x86 y ppc64 , requieren una pequeña porción de RAM de posición fija para arrancar un kernel independientemente de dónde se cargue; en este caso, kexec crea una copia de esa porción de RAM para que también sea accesible al kernel de captura de volcados. El tamaño y la posición opcional de la porción reservada de RAM se especifican mediante el parámetro de arranque del kernel crashkernel , y la utilidad de línea de comandos kexec se utiliza después de que arranque el kernel principal para precargar una imagen del kernel de captura de volcados y su imagen initrd asociada en la porción reservada de RAM. [ 1 ] [ 3 ] [ 4 ]
Además de la funcionalidad que forma parte del kernel de Linux, otras utilidades de espacio de usuario admiten el mecanismo kdump, incluida la utilidad kexec mencionada anteriormente. [ 1 ] [ 4 ] Además de las utilidades oficiales, que se proporcionan como un parche para el conjunto de utilidades de espacio de usuario de kexec, algunas distribuciones de Linux proporcionan utilidades adicionales que simplifican la configuración del funcionamiento de kdump, incluida la configuración del guardado automático de archivos de volcado de memoria. [ 6 ] [ 7 ] [ 8 ] Los archivos de volcado de memoria creados se pueden analizar utilizando el depurador GNU ( gdb ), o utilizando la utilidad dedicada crash de Red Hat . [ 9 ] [ 10 ]
Historia
Kdump reemplazó la herramienta obsoleta Linux Kernel Crash Dumps (LKCD), que también escribía el contenido de la memoria tras un fallo. [ 11 ] Kdump presenta una utilidad más eficiente y escalable que LKCD. [ 12 ]
La funcionalidad de kdump, junto con kexec, se fusionó con la rama principal del kernel de Linux en la versión 2.6.13, que se publicó el 29 de agosto de 2005. [ 13 ]
Véase también
- debugfs : un sistema de archivos basado en RAM del kernel de Linux diseñado específicamente para fines de depuración.
- kdump (BSD) : una utilidad de BSD para visualizar archivos de rastreo generados por la utilidad ktrace.
- Error del kernel de Linux : una desviación potencialmente no fatal del comportamiento correcto del kernel de Linux.
- ProcDump : una utilidad para crear volcados de memoria de aplicaciones basados en activadores de rendimiento.
Referencias
- 1 2 3 4 Jonathan Corbet (27 de octubre de 2004). "Volcados de memoria con kexec" . LWN.net . Consultado el 9 de agosto de 2014 .
- ↑ "13.2 Acerca de Kdump (Capítulo 13: Herramientas de diagnóstico de soporte)" . Oracle Corporation . 2012. Consultado el 9 de agosto de 2014 .
- 1 2 3 Vivek Goyal; Eric W. Biederman; Hariprasad Nellitheertha (14 de junio de 2006). "Kdump: Un mecanismo de volcado de fallos del kernel basado en Kexec" (PDF) . lse.sourceforge.net . Recuperado el 9 de agosto de 2014 .
- 1 2 3 "Documentación del kernel de Linux: Documentation/kdump/kdump.txt" . kernel.org . 12 de agosto de 2013. Consultado el 9 de agosto de 2014 .
- ↑ Takashi Iwai (26 de julio de 2006). "Depuración con Kdump" (PDF) . SUSE . Consultado el 9 de agosto de 2014 .
- ↑ "29.2.2. Uso de la utilidad de configuración de volcado del kernel (Guía de implementación de Red Hat Enterprise Linux 6)" . Red Hat . Consultado el 9 de agosto de 2014 .
- ↑ "kexec y kdump: Configuración básica de kdump (Guía de análisis y optimización del sistema)" . SUSE . 25 de abril de 2014. Consultado el 9 de agosto de 2014 .
- ↑ "Cómo usar kdump para depurar fallos del kernel" . Fedora . 9 de abril de 2014. Consultado el 9 de agosto de 2014 .
- ↑ David Anderson (27 de agosto de 2010). "Libro blanco: Utilidad de recuperación ante fallos de Red Hat" . Red Hat . Consultado el 9 de agosto de 2014 .
- ↑ "kexec y kdump: Análisis del volcado de memoria (Guía de análisis y optimización del sistema)" . SUSE . 25 de abril de 2014. Consultado el 9 de agosto de 2014 .
- ↑ Ljubuncic, Igor (15 de abril de 2009). "Recopilación y análisis de fallos del kernel de Linux - LKCD" .
- ↑ Ljubuncic, Igor (18 de julio de 2009). "Recopilación y análisis de fallos del kernel de Linux - Kdump" .
- ↑ "Núcleo de Linux 2.6.13" . kernelnewbies.org . 29 de agosto de 2005. Consultado el 9 de agosto de 2014 .
Enlaces externos
- Sitio web oficial
- Kdump, un mecanismo de volcado de fallos del kernel basado en Kexec , IBM , 2005, por Vivek Goyal, Eric W. Biederman y Hariprasad Nellitheertha.
- Uso de Kdump para examinar fallos del kernel de Linux , 21 de junio de 2017, por Pratyush Anand
- Kdump: Uso y funcionamiento interno , Red Hat , junio de 2017, por Pratyush Anand y Dave Young
- Software libre programado en C
- Características del kernel de Linux
- Herramientas de programación Unix