stringtranslate.com

kdump (Linux)

kdump es una característica del kernel de Linux que crea volcados de memoria en caso de que se produzca un fallo del kernel . Cuando se activa, kdump exporta una imagen de memoria (también conocida como vmcore ) que se puede analizar con fines de depuración y determinación de la causa de un fallo. 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 un fallo del kernel, o se puede guardar automáticamente en un sistema de archivos accesible localmente , en un dispositivo sin formato o en un sistema remoto accesible a través de la red . [1] [2]

Internos

En un diseño de "núcleo dual", kdump usa kexec para iniciar otro núcleo y obtener un volcado de memoria. [3] : 10 

En caso de un fallo del kernel, kdump preserva la consistencia del sistema al arrancar otro kernel de Linux , conocido como el kernel dump-capture , y usarlo para exportar y guardar un volcado de memoria. Como resultado, el sistema arranca en un entorno limpio y confiable en lugar de depender de un kernel que ya está bloqueado y que puede causar varios problemas, como causar corrupción del sistema de archivos mientras se escribe un archivo de volcado de memoria. Para implementar este diseño de "núcleo dual", kdump usa kexec para el arranque "en caliente" en el kernel dump-capture inmediatamente después del fallo del kernel, usando la capacidad de kexec para arrancar "sobre" el kernel que se está ejecutando actualmente mientras evita la ejecución de un cargador de arranque y la inicialización de hardware realizada por el firmware del sistema ( BIOS o UEFI ). Un kernel dump-capture puede ser una imagen de kernel de Linux separada creada específicamente para ese propósito, o la imagen de kernel principal puede reutilizarse en arquitecturas que admitan 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 núcleo de captura de volcado reservando una pequeña cantidad de RAM de antemano, en la que se precarga el núcleo de captura de volcado para que no se sobrescriba nada de la RAM utilizada por el núcleo principal cuando se maneja una falla del núcleo. Esta cantidad reservada de RAM es utilizada únicamente por el núcleo 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 núcleo 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 núcleo de captura de volcado. El tamaño y la posición opcional de la porción reservada de RAM se especifican a través del parámetro de arranque del núcleo crashkernel , y la utilidad de línea de comandos kexec se utiliza después de que se inicia el núcleo principal para precargar una imagen de núcleo de captura de volcado y su imagen initrd asociada en la porción reservada de RAM. [1] [3] [4]

Además de la funcionalidad que es parte del núcleo de Linux, utilidades de espacio de usuario adicionales soportan el mecanismo kdump, incluyendo 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, incluyendo 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 de fallos dedicada de Red Hat . [9] [10]

Historia

Kdump reemplazó a la obsoleta herramienta Linux Kernel Crash Dumps (LKCD), que también escribía el contenido de la memoria en caso de falla. [11] Kdump presenta una utilidad más eficiente y escalable que LKCD. [12]

La funcionalidad de kdump, junto con kexec, se fusionó con 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. [13]

Véase también

Referencias

  1. ^ abcd Jonathan Corbet (27 de octubre de 2004). "Volcados de memoria con kexec". LWN.net . Consultado el 9 de agosto de 2014 .
  2. ^ "13.2 Acerca de Kdump (Capítulo 13: Herramientas de diagnóstico de soporte)". Oracle Corporation . 2012 . Consultado el 9 de agosto de 2014 .
  3. ^ abc Vivek Goyal; Eric W. Biederman; Hariprasad Nellitheertha (14 de junio de 2006). "Kdump: un mecanismo de volcado de memoria del núcleo basado en Kexec" (PDF) . lse.sourceforge.net . Consultado el 9 de agosto de 2014 .
  4. ^ abc "Documentación del kernel de Linux: Documentation/kdump/kdump.txt". kernel.org . 12 de agosto de 2013 . Consultado el 9 de agosto de 2014 .
  5. ^ Takashi Iwai (26 de julio de 2006). "Depuración mediante Kdump" (PDF) . SUSE . Consultado el 9 de agosto de 2014 .
  6. ^ "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 .
  7. ^ "kexec y kdump: configuración básica de kdump (guía de análisis y ajuste del sistema)". SUSE . 25 de abril de 2014 . Consultado el 9 de agosto de 2014 .
  8. ^ "Cómo usar kdump para depurar fallos del kernel". Fedora . 9 de abril de 2014 . Consultado el 9 de agosto de 2014 .
  9. ^ David Anderson (27 de agosto de 2010). "Libro blanco: Red Hat Crash Utility". Red Hat . Consultado el 9 de agosto de 2014 .
  10. ^ "kexec y kdump: análisis del volcado de memoria (guía de análisis y ajuste del sistema)". SUSE . 25 de abril de 2014 . Consultado el 9 de agosto de 2014 .
  11. ^ Ljubuncic, Igor (15 de abril de 2009). "Recopilación y análisis de fallos del núcleo de Linux - LKCD".
  12. ^ Ljubuncic, Igor (18 de julio de 2009). "Recopilación y análisis de fallos del núcleo de Linux - Kdump".
  13. ^ "Linux kernel 2.6.13". kernelnewbies.org . 29 de agosto de 2005 . Consultado el 9 de agosto de 2014 .

Enlaces externos