kdump(Linux)

kdump (Linux)

kdump커널 크래시 덤프를 생성하는 Linux 커널 기능입니다.트리거되면 kdump는 크래시의 원인을 파악하고 디버깅하기 위해 분석할 수 있는 메모리 이미지(vmcore라고도 함)를 내보냅니다.메인 메모리의 덤프 이미지는 ELF(Executable and Linkable Format) 개체로 내보내지며 다음 중 하나를 통해 직접 액세스할 수 있습니다.커널 크래시 처리 중 /tmp/vmcore를 지정하거나 로컬로 액세스 가능한 파일 시스템, 원시 [1][2]장치 또는 네트워크를 통해 액세스 가능한 원격 시스템에 자동으로 저장할 수 있습니다.

내부

"듀얼 커널" 레이아웃에서 kdump는 kexec을 사용하여 다른 커널을 부팅하고 메모리 [3]: 10 덤프를 가져옵니다.

커널 크래시가 발생했을 경우 kdump는 덤프 캡처 커널로 알려진 다른 Linux 커널을 부팅하여 메모리 덤프를 내보내고 저장함으로써 시스템의 일관성을 유지합니다.그 결과 시스템은 메모리 덤프 파일 쓰기 중 파일 시스템 파손 등의 다양한 문제를 일으킬 수 있는 이미 크래시된 커널에 의존하지 않고 깨끗하고 신뢰성 높은 환경으로 부팅됩니다.이 "듀얼 커널" 레이아웃을 구현하기 위해 kdump는 커널 크래시 직후에 덤프 캡처 커널에 대한 "웜" 부팅에 kexec을 사용합니다.부트로더 실행과 시스템펌웨어(BIOS 또는 UEFI)에 의한 하드웨어 초기화를 회피하면서 현재 실행 중인 커널을 "오버" 부팅하는 kexec 기능을 사용합니다.덤프 캡처 커널은 이 목적을 위해 특별히 구축된 개별 Linux 커널 이미지이거나 재배치 가능한 [1][3][4][5]: 5–6 커널을 지원하는 아키텍처에서 프라이머리 커널 이미지를 재사용할 수 있습니다.

메인 메모리(RAM)의 내용은 미리 소량의 RAM을 예약하여 Dump-Capture Kernel로 부팅 및 실행 중에도 유지됩니다.이것에 Dump-Capture Kernel이 프리로드되므로 커널 크래시가 처리될 때 프라이머리 커널이 사용하는 RAM은 덮어쓰지 않습니다.이 예약된 RAM 양은 덤프 캡처 커널에서만 사용되며, 그렇지 않으면 일반 시스템 작동 중에 사용되지 않습니다.x86ppc64를 포함한 일부 아키텍처에서는 커널이 로드되는 위치에 관계없이 커널을 부팅하기 위해 RAM의 작은 고정 위치 부분이 필요합니다.이 경우 kexec은 RAM의 해당 부분의 복사본을 생성하여 덤프 캡처 커널에도 액세스할 수 있습니다.RAM 예약 부분의 크기 및 옵션 위치는 커널 부트 파라미터 크래쉬커널을 통해 지정되며 프라이머리 커널 부팅 후 kexec 명령줄 유틸리티를 사용하여 덤프 캡처 커널 이미지와 관련된 initrd 이미지를 RAM [1][3][4]예약 부분에 프리로드합니다.

Linux 커널의 일부인 기능 외에 위의 [1][4]kexec 유틸리티를 포함한 추가 사용자 공간 유틸리티가 kdump 메커니즘을 지원합니다.kexec의 사용자 공간 유틸리티 스위트에 패치로 제공되는 공식 유틸리티 외에 일부 Linux 배포판은 메모리 덤프 파일의 [6][7][8]자동 저장 설정을 포함하여 kdump 동작 설정을 단순화하는 추가 유틸리티를 제공합니다.생성된 메모리 덤프 파일은 GNU 디버거(gdb) 또는 Red Hat 전용 크래시 [9][10]유틸리티를 사용하여 분석할 수 있습니다.

역사

kdump 기능은 kexec과 함께 2005년 [11]8월 29일에 출시된 커널 버전 2.6.13에서 Linux 커널 메인라인에 통합되었습니다.

「 」를 참조해 주세요.

  • debugfs – Linux 커널의 RAM 기반 파일시스템으로 디버깅용으로 특별히 설계되어 있습니다.
  • kdump (BSD) : ktrace 유틸리티에 의해 생성된 트레이스 파일을 표시하기 위한 BSD 유틸리티
  • Linux 커널의 oops – Linux 커널의 올바른 동작에 치명적이지 않을 수 있습니다.
  • Proc Dump – 퍼포먼스 트리거를 기반으로 애플리케이션의 코어 덤프를 작성하는 유틸리티

레퍼런스

  1. ^ a b c d Jonathan Corbet (October 27, 2004). "Crash dumps with kexec". LWN.net. Retrieved August 9, 2014.
  2. ^ "13.2 About Kdump (Chapter 13: Support Diagnostic Tools)". Oracle Corporation. 2012. Retrieved August 9, 2014.
  3. ^ a b c Vivek Goyal; Eric W. Biederman; Hariprasad Nellitheertha (June 14, 2006). "Kdump: A Kexec-based Kernel Crash Dumping Mechanism" (PDF). lse.sourceforge.net. Retrieved August 9, 2014.
  4. ^ a b c "Linux kernel documentation: Documentation/kdump/kdump.txt". kernel.org. August 12, 2013. Retrieved August 9, 2014.
  5. ^ Takashi Iwai (July 26, 2006). "Debugging using Kdump" (PDF). SUSE. Retrieved August 9, 2014.
  6. ^ "29.2.2. Using the Kernel Dump Configuration Utility (Red Hat Enterprise Linux 6 Deployment Guide)". Red Hat. Retrieved August 9, 2014.
  7. ^ "kexec and kdump: Basic kdump Configuration (System Analysis and Tuning Guide)". SUSE. April 25, 2014. Retrieved August 9, 2014.
  8. ^ "How to use kdump to debug kernel crashes". Fedora. April 9, 2014. Retrieved August 9, 2014.
  9. ^ David Anderson (August 27, 2010). "White Paper: Red Hat Crash Utility". Red Hat. Retrieved August 9, 2014.
  10. ^ "kexec and kdump: Analyzing the Crash Dump (System Analysis and Tuning Guide)". SUSE. April 25, 2014. Retrieved August 9, 2014.
  11. ^ "Linux kernel 2.6.13". kernelnewbies.org. August 29, 2005. Retrieved August 9, 2014.

외부 링크