kdump es una característica del kernel de Linux que crea volcados por caída en caso de que el kernel falle . Cuando se activa, kdump exporta una imagen de memoria (también conocida como vmcore ) que se puede analizar con el propósito de depurar y determinar la causa de un bloqueo. Se puede acceder a la imagen volcada de la memoria principal , exportada como un objeto de formato ejecutable y enlazable (ELF), ya sea directamente a través de / proc / vmcore durante el manejo de una falla del kernel, o se puede guardar automáticamente en un sistema de archivos accesible localmente , a un dispositivo sin procesar, oa un sistema remoto accesible a través de la red . [1] [2]
Internos
En el caso de una falla del kernel, kdump preserva la consistencia del sistema al arrancar otro kernel de Linux , que se conoce como kernel de captura de volcado , y usándolo para exportar y guardar un volcado de memoria. Como resultado, el sistema arranca en un ambiente limpio y seguro lugar de depender de un núcleo ya estrellado que pueden causar diversos problemas, tales como el sistema de archivos provocando la corrupción al escribir un archivo de volcado de memoria. Para implementar este diseño de "núcleo dual", kdump usa kexec para arrancar ("en caliente") en el núcleo de captura de volcado inmediatamente después de la caída del núcleo, usando la capacidad de kexec para arrancar "sobre" el núcleo en ejecución mientras evita la ejecución de un cargador de arranque e inicialización de hardware realizada por el firmware del sistema ( BIOS o UEFI ). Un kernel de captura de volcado puede ser una imagen de kernel de Linux separada creada específicamente para ese propósito, o la imagen de kernel principal se puede reutilizar en arquitecturas que admiten kernels reubicables . [1] [3] [4] [5] : 5–6
El contenido de la memoria principal ( RAM ) se conserva mientras se inicia y ejecuta el kernel de captura de volcado reservando una pequeña cantidad de RAM por adelantado, en la que se carga previamente el kernel de captura de volcado, por lo que no se almacena nada de la RAM utilizada por el kernel primario. se sobrescribe cuando se maneja un fallo del kernel. Esta cantidad reservada de RAM es utilizada únicamente por el kernel de captura de volcado 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 para el kernel de captura de volcado. El tamaño y la posición opcional de la parte reservada de RAM se especifican mediante el parámetro de arranque del kernel.crashkernel , y el La utilidad de línea de comandos kexec se usa después de que el kernel principal arranca para precargar una imagen del kernel de captura de volcado y su imagen initrd asociada en la parte reservada de la RAM. [1] [3] [4]
Además de la funcionalidad que forma parte del kernel de Linux, las utilidades de espacio de usuario adicionales admiten el mecanismo kdump, incluido el 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 de la operación 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 usando el depurador GNU ( gdb ), o utilizando el software dedicado de Red Hat . utilidad de choque . [9] [10]
Historia
La funcionalidad kdump, junto con kexec, se fusionó en la línea principal del kernel de Linux en la versión 2.6.13 del kernel, que se lanzó el 29 de agosto de 2005. [11]
Ver 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 BSD para ver archivos de seguimiento generados por la utilidad ktrace
- ¡Vaya! Kernel de Linux : una desviación potencialmente no fatal del comportamiento correcto del kernel de Linux
- ProcDump : una utilidad para crear volcados de núcleo de aplicaciones basadas en desencadenantes de rendimiento
Referencias
- ↑ a b c d Jonathan Corbet (27 de octubre de 2004). "Crash dumps 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 .
- ^ a b c Vivek Goyal; Eric W. Biederman; Hariprasad Nellitheertha (14 de junio de 2006). "Kdump: un mecanismo de volcado por caída de kernel basado en Kexec" (PDF) . lse.sourceforge.net . Consultado el 9 de agosto de 2014 .
- ^ a b c "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 de 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 (análisis del sistema y guía de ajuste)" . SUSE . 25 de abril de 2014 . Consultado el 9 de agosto de 2014 .
- ^ "Cómo utilizar 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: Red Hat Crash Utility" . Red Hat . Consultado el 9 de agosto de 2014 .
- ^ "kexec y kdump: análisis de Crash Dump (guía de ajuste y análisis del sistema)" . SUSE . 25 de abril de 2014 . Consultado el 9 de agosto de 2014 .
- ^ "Kernel de Linux 2.6.13" . kernelnewbies.org . 29 de agosto de 2005 . Consultado el 9 de agosto de 2014 .
enlaces externos
- Página web oficial
- Kdump, un mecanismo de volcado por caída de kernel basado en Kexec , IBM , 2005, por Vivek Goyal, Eric W. Biederman y Hariprasad Nellitheertha