Wisdom’s Cloud

[Linux] [CentOS] vmcore 분석 본문

LINUX/Advanced

[Linux] [CentOS] vmcore 분석

지혜로운지혜쓰 2022. 9. 24. 16:11

지난 시간(2022.09.02 - [LINUX] - [Linux] [CentOS] Failed to start Crash recovery kernel arming.)에 커널 패닉이 발생하면 kdump를 통해 crash dump가 생성된다고 했었다.

오늘은 이 crash dump로 생성된 vmcore 파일을 분석하여 어떤 문제로 인해 커널 패닉이 발생했는지 알아보도록 하자.

 

 

 

먼저 crash dump 데이터를 분석하는 도구인 crash를 설치해야 한다.

[root@jhpark20 ~]# yum install crash

 

 

그리고 vmcore 파일에 맞는 커널 버전의 debuginfo 패키지가 필요하다.

debuginfo 패키지는 커널에 대한 debug 정보를 포함하여 컴파일한 패키지다.

따라서 vmcore 파일의 커널 버전을 확인한 후, 해당 버전의 debuginfo 패키지를 설치한다.

[root@jhpark20 ~]# crash --osrelease vmcore
3.10.0-1160.el7.x86_64
[root@jhpark20 ~]# debuginfo-install kernel-3.10.0-1160.el7.x86_64

 

 

만약 해당 버전의 debuginfo 패키지를 찾을 수 없다면, rpm 파일을 직접 다운받아서 설치하면 된다.

[root@jhpark20 ~]# wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-1160.el7.x86_64.rpm
[root@jhpark20 ~]# wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-1160.el7.x86_64.rpm
[root@jhpark20 ~]# yum install kernel-debuginfo-common-x86_64-3.10.0-1160.el7.x86_64.rpm
[root@jhpark20 ~]# yum install kernel-debuginfo-3.10.0-1160.el7.x86_64.rpm

 

 

crash와 debuginfo 패키지 설치가 완료되었다면, crash 유틸리티를 통해 vmcore 파일을 분석할 수 있다.

vmlinux 파일은 압축되지 않은 커널 이미지로, 보통 /usr/lib/debug/lib/modules/커널버전/vmlinux에 위치한다.

[root@jhpark20 ~]# crash [vmlinux 파일] [vmcore 파일]

 

 

crash 유틸리티를 실행하면 아래와 같이 vmcore 파일을 분석한 내용들을 볼 수 있다.

(실제 고객사의 vmcore 파일이기 때문에 모자이크 처리해두었다.)

 

 

그리고 위의 내용을 바탕으로 crash 프롬프트에서 다양한 indicators를 사용하여 분석할 수 있다.

Indicators Description
log 커널 메시지 버퍼 표시
bt 커널 스택 추적 표시
ps 시스템의 프로세스 상태 표시
vm 가상 메모리 정보 표시
files 열린 파일에 대한 정보 표시

 

 

 

이렇게 crash 유틸리티를 통해 vmcore 파일을 분석해보았다.

하지만 정확한 문제 진단과 해결을 위해서는 Kernel Oops Analyzer(https://access.redhat.com/labs/kerneloopsanalyzer/)에 vmcore 파일을 업로드하여 더 전문적으로 분석할 수 있으며, crash 유틸리티는 문제 원인의 맥을 짚는 용도로 사용된다는 점을 알아두자. 😃

 

 

 

[참고 문서]

https://linux.die.net/man/8/crash

 

crash(8): Analyze crash dump data/live system - Linux man page

crash(8) - Linux man page Name crash - Analyze Linux crash dump data or a live system Synopsis crash [OPTION]... NAMELIST MEMORY-IMAGE (dumpfile form) crash [OPTION]... [NAMELIST] (live system form) Description Crash is a tool for interactively analyzing t

linux.die.net

https://man7.org/linux/man-pages/man1/debuginfo-install.1.html

 

debuginfo-install(1) - Linux manual page

 

man7.org

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/analyzing-a-core-dump_managing-monitoring-and-updating-the-kernel

 

Chapter 13. Analyzing a core dump Red Hat Enterprise Linux 9 | Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

https://mapoo.net/os/oslinux/vmcore-analyze/

 

vmcore analyze - mapoo's blog

커널도 소프트웨어이기 때문에 일반적인 어플리케이션에서 발생하는 메모리 할당 오류(segfault)등의 문제가 발생할 수 있다. 커널은 OS의 핵심이므로 어플리케이션의 오류보다 심각한 결과를 초

mapoo.net

 

'LINUX > Advanced' 카테고리의 다른 글

[Linux] [CentOS] 시스템 구성 정보 확인  (3) 2022.10.26
[Linux] netfilter와 iptables  (1) 2022.10.03
[Linux] [CentOS] Jumbo Frame  (0) 2022.09.18
[Linux] [CentOS] 보안 설정  (0) 2022.09.16
[Linux] [CentOS] 패스워드 정책 설정  (1) 2022.09.15