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