Kernel Crash Dump
Kdump 는 나중에 분석 할 수 있도록 시스템 메모리의 내용을 저장할 수있는 커널 충돌 덤프 메커니즘입니다. 다른 커널의 컨텍스트에서 Linux 커널을 부팅하고 BIOS를 우회하고 손실 된 첫 번째 커널 메모리의 내용을 보존하는 데 사용할 수있는 kexec
에 의존합니다.
시스템 충돌의 경우 kdump
는 kexec
를 사용하여 두 번째 커널 (캡쳐 커널) 로 부팅 합니다. 이 두 번째 커널은 첫 번째 커널에 액세스 할 수없는 시스템 메모리의 예약 된 부분에 있습니다. 그런 다음 두 번째 커널은 충돌 한 커널 메모리의 내용 (충돌 덤프) 을 캡처하여 저장합니다.
RHEL 7 이후 버전은 설치 시 기본적으로 활성화 되어있습니다.
kdump 설치 및 구성
kdump 설치
# yum install kexec-tools
추가적으로 GUI환경에서 사용하려면 아래 패키지를 설치하도록 한다.
# yum install system-config-kdump
kdump 구성
kdump 커널 용으로 예약 된 메모리는 항상 시스템 부팅 중에 예약되므로 메모리 양은 시스템의 부트 로더 구성에 지정됩니다.
kdump 커널 용으로 예약 된 메모리를 지정하려면 crashkernel=
옵션을 필요한 값으로 설정하십시오 . 예를 들어 128MB의 메모리를 예약하려면 다음을 사용하십시오.
crashkernel = 128M
RHEL7 이후 버전은 auto
설정으로 기본 설정되어있습니다.
kdump 동작 테스트
아래 방법으로 kdump 동작을 테스트 해볼 수 있다.
아래 명령어를 내리게 되면 커널 크래시가 발생하면서 리부팅 되므로 사용에 주의하도록 한다.
# systemctl is-active kdump active # echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
크래시가 발생하면 기본적으로 /var/crash
디렉토리에 크래시 덤프가 저장된다.
디스크 용량이 부족하면 생성되지 않으므로 주의하도록 한다.
Core Dump 분석
시스템 충돌의 원인을 판별하기 위해 충돌 디버거를 사용하면 GNU 디버거 (GDB)와 매우 유사한 대화식 프롬프트를 제공 할 수 있습니다. 이 유틸리티를 사용하면 대화 형으로 실행중인 리눅스 시스템뿐만 아니라에 의해 생성 된 코어 덤프 분석 할 수 있습니다. netdump
, diskdump
, xendump
, 또는 kdump
.
Crash 유틸리티 설치
yum install crash
crash 외에도 덤프 분석에 필요한 데이터를 제공하는 실행중인 커널에 해당하는 kernel-debuginfo 패키지 를 설치해야합니다 .
아래 명령어를 사용하면 필요한 패키지를 설치합니다.
# debuginfo-install kernel
Crash 명령어를 사용
crash /usr/lib/debug/lib/modules/<kernel>/vmlinux \ /var/crash/<timestamp>/vmcore
ps
시스템이 crash 됐을때 process list 정보files
시스템이 crash 됐을때 열려진 파일 정보들sys
시스템이 crash 됐을때 system 정보help
도움말