Wisdom’s Cloud
[Linux] [CentOS] vmcore 분석 본문
지난 시간(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
https://man7.org/linux/man-pages/man1/debuginfo-install.1.html
https://mapoo.net/os/oslinux/vmcore-analyze/
'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 |