LINUX 덤프 설정을 해보자 (linux 5,6)


Kdump
- kdump
이슈 발생시 시스템 메모리에 적재된 커널의 각종 정보들을 덤프한 데이터


1. 필요 Package 확인 (kexec-tools-*.rpm)


[root@]# rpm -qa |grep kexec-tools
 kexec-tools-2.0.0-258.el6.x86_64




2. Service 상태 확인

[root@]# service kdump status
Kdump is operational




3. kdump 설정 확인


3-1 grub.conf 수정
[root@]# vi /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server (2.6.39-400.214.3.el5uek)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.39-400.214.3.el5uek ro root=LABEL=/ rhgb quiet crashkernel=128M@48M nmi_watchdog=2 numa=off libata.force=noncq,1.5G
        initrd /boot/initrd-2.6.39-400.214.3.el5uek.img
사용하는 커널을 찾아
crashkernel=128M@48M (kdump 기본 상주 메모리 영역 설정)
nmi_watchdog=2 시스템이 일정시간 응답이 없는 경우 특정 Task를 구동하는 타이머
(hw에 따라서 1 또는 2로 설정함)
3.2 sysctl.conf 파라미터 확인 및 변경
[root@]# sysctl -a|grep nmi_watchdog # 내용 추가 및 수정
kernel.unknown_nmi_panic = 1
kernel.nmi_watchdog = 1 # nmi watchdog 사용
kernel.panic_on_unrecovered_nmi = 1
kernel.panic_on_io_nmi = 1 # hw를 통한 nmi시그널 입력
[root@]# sysctl -p # 변경내용 적용
3.3 kdump.conf 설정
1) 생성 위치 지정
ext3 LABEL=/var/crash # 라벨로 설정된경우
path /var/crash # dump 생성 위치
2) 덤프레벨 및 압축 옵션
core_collector makedumpfile -c --message -level 1 -d 31
-c는 압축 옵션이고, -d는 덤프를 생성할 덤프레벨 (0 – Full Dump, 31 – Small Dump)

3) 덤프 실패 시 취할 액션
default reboot   - 재부팅(기본)
default halt    - 시스템 halt 된 후 덤프 시도
default poweroff   - 시스템 종료
default shell    - shell이 수행되며, 수동으로 덤프 시도 가능, 종료 시 리부팅
default mount_root_run_init - root 파일시스템을 마운트 후 init을 수행.
     - init스크립트는 덤프를 /var/crash에 저장 시도
4) 그 외 옵션
link_delay <seconds>
 - 혹 네트워크 초기화가 늦는 경우를 대비하여 덤프를 생성 후 전송 전 일정시간 대기
kump_post <binary 또는 script>
 - 덤프 생성 프로세스 완료 후 사용자가 지정한 실행파일이나 스크립트를 실행
kdump_pre <binary 또는 script>
 - 덤프 생성 프로세스 이전에 사용자가 지정한 실행 파일이나 스크립트 실행
extra_bins <binaries 또는 scripts>
 - kdump initrd에 실행 파일들이나 스크립트들을 포함
extra_modules <module(s)>
 - kdump initrd에 로드하고자하는 확장 커널 모듈에 대한 정의. 모듈들은 공백으로 구분
debug_mem_level <0-3>
 - kdump 스크립트 실행 시 디버그 모드를 활성화
 - kdump 스크립트 수행할 때 메모리의 상태를 실시간으로 출력
 - Redhat 권고 값으로 시스템을 설정 후 테스트 시 사용하면 kdump 메모리의 적정량 확인 가능




4. signal을 날려 dump 수행


  [root@]# echo c > /proc/sysrq-trigger
2) 키보드 Sys Rq로 signal
Alt + C + Sys Rq
3) 물리 장비의 nmi 버튼으로 signal

후면부에 있는 경우     전면부에 있는 경우
덤프 진행 시 원격 연결은 종료되고, 시스템(콘솔)은 응답 없음 상태로 진입
vmcore 생성이 완료되면 시스템이 재부팅 됨.
리부팅이 완료되면 지정했던 위치에 생성된 덤프를 확인할 수 있음
[root@vRH6x ~]# ls /var/crash/
127.0.0.1-2014-05-15-15:00:22
<참조>
How to Configure "kdump" on Oracle Linux 5 ( Doc ID 452067.1)

댓글

가장 많이 본 글