Linux Kernel의 Crash Dump를 취득하기 위해서는 DiskDump, NetDump, Kdump가 있는데, kdump는 RHEL5에서 부터 구현되는 기능으로 여기서는 NetDump에 대해서 다루도록 하겠습니다.
NetDump는 Crash Dump를 Network를 통해서 NetDump Server로 설정된 Server에 저장하게 됩니다. Local Disk에 저장하게 되는 DiskDump의 경우 별도의 File System을 준비 해 줘야 하는 불편함이 있으므로, NetDump가 훨씬 유용하게 사용할 수 있을 듯 합니다.
그럼, 먼저 NetDump Server를 설정하는 방법을 확인 하도록 하겠습니다.
NetDump Server가 설치되어 있는지를 먼저 확인 합니다.
# rpm -q netdump-server
netdump-server-0.7.16-10
설치되어 있지 않다면, Yum이나 Up2date 또는 RPM을 직접 받아서 설치를 합니다.
설치 후 Reboot시 항상 자동으로 기동이 되도록 chkconfig를 통해서 등록을 합니다.
# chkconfig netdump-server on
# service netdump-server start
or
# /etc/init.d/netdump-server start
혹시 netdump 계정에 대한 Password가 설정되어 있지 않다면 설정을 해 둡니다.
NetDump Server에서 Crash Dump는 /var/crash에 저장이 됩니다.
그럼, NetDump Client를 각 서버에 설치를 하고 Server와 통신할 수 있도록 설정을 합니다.
역시 Client가 설치되어 있는지를 먼저 확인하고,
# rpm -q netdump
netdump-0.7.16-2
/etc/sysconfig/netdump를 변경 해 줍니다. 여러 설정들이 있지만 여기서는 NetDump Server의 IP정보 입력과 인증을 위한 DSA 공개키를 등록 하거나, Secure한 Network 상에 모든 서버들이 존재한다면 DSA 공개키 등록없이 사용하는 설정을 공유 하도록 하겠습니다.
NetDump Server의 IP 정보 입력
# vi /etc/sysconfig/netdump
..
NETDUMPADDR=10.37.100.1
DSA 공개키의 등록
# service netdump propagate
or
# /etc/init.d/netdump propagate
[email protected]'s password:
DSA 공개키 등록없이 접근 가능하게 하는 방법
Cleint에서
# vi /etc/sysconfig/netdump
..
NETDUMPKEYEXCHANGE=none
..Server에서
# vi /etc/netdump.conf
secure=0후 각각 Restart
그리고, NetDump Server와 동일하게 Client도 기동을 해 줍니다.
# chkconfig netdump on
# service netdump start
or
# /etc/init.d/netdump start
initializing netdump [ OK ]
initializing netconsole [ OK ]Message from [email protected] at Mon Mar 21 15:17:24 2011 ...
XXXXXXX kernel: [...network console startup...]
Dump가 시작이 되면, 위에서 설명한 것 처럼 NetDump Server의 /var/crash/YYYY-MM-DD-hh:mm과 같이 Directory가 만들어지고 그 안에 vmcore-incomplete가 작성되고, Dump가 완성되면 vmcore file이 생성됩니다.
# ll 10.37.100.31-2011-03-16-22\:28/
total 15351800
-rw------- 1 netdump netdump 10075 Mar 19 13:33 log
-rw------- 1 netdump netdump 9395240960 Mar 19 13:29 vmcore
-rw------- 1 netdump netdump 9395240960 Mar 19 13:33 vmcore-incomplete
Crash Dump는 문제가 발생하였을 시에 발생하게 됨으로 netdump start 이후에는 vmcore, vmcore-incomplete file은 없고, log에
[…network console startup…] 라는 Message를 확인 할 수 있을 것입니다.
이걸로 NetDump로 Crash Dump를 취득가능하게 되고, 취득 된 Crash Dump는 이후에 Crash와 Kernel-debuginfo RPM을 설치하여 분석 가능하게 됩니다.