Issue:
디스크 덤프 유틸리티를 사용하여 vmcore 파일 만드는 방법

Resolution:

Release found:
Red Hat Enterprise Linux 3 Update 3 이상의 버전에서 가능

Introduction:

디스크덤프 유틸리티는 네트워크에 연결되지 않은 싱글시스템에서 vmcore(커널 덤프)를 수집하거나 생성하는 것을 제공한다. 디스크덤프는 넷덤프 코어 파일과 동일한 포멧의 파일을 생성하며 동일한 툴로 분석이 가능하다. 넷덤프와 디스크덤프는 특정 하드웨어에서만 작동할 것이다.
지원되는 카드는 /usr/share/doc/diskdumputils-* 디렉토리안의 README 파일에서 확인할 수 있다. 디스크덤프는 Red Hat Enterprise Linux 3 Update 3이상의 버전에서만 이용가능 하다.


How it works:

디스크 덤프는 유닉스 스타일의 전통적인 디스크 덤프들과 비슷하게 두가지 단계로 진행되어진다. 첫번째 단계는 커널 자신에게  패닉이 생겼을 때 현재의 메모리와 CPU상태 그리고 관련된 정보들을 지정된 디스크의 파티션에 저장한다.

다음 단계에서 재부팅되면 시스템은 재가동되며 디스크 덤프 초기화 스크립트로부터 지정된 디스크 파티션에 저장된 정보를 가지고 vmcore 파일을 생성할 것이고  /var/crash/127.0.0.1-<발생시간>의 이름으로 저장될 것이다.

디스크 덤프와 동시에 넷덤프를 사용할려고 한다면 두개의 덤프 유틸리티의 설정을 나눠야 한다. 넷덤프로인한 IO에러가 발생하지 않게 하기 위해 디스크덤프는 넷덤프보다 우선시 해야한다.


Configuring diskdump



  • 첫번째 단계는 diskdumputils 패키지를 설치하는 것이다. 만약 설치되어 있지 않다면
    up2date diskdumputils를 사용하여 설치하도록 한다.
    up2date diskdumputils


    디스크 덤프를 설정하기 위해 디스크 덤프 모듈을 로드 시킨다.
    # modprobe diskdump
  • 모듈이 로드되었는지 체크하기 위해 아래의 명령을 치면 아래와 비슷한 출력이 나오게 될것이다.
    # dmesg | tail

    header blocks: 3
    bitmap blocks: 8
    total number of memory blocks: 261999
    total blocks written: 262010

  • 디스크덤프 데몬에 특정 파티션을 지정하기 위해 /etc/sysconfig/diskdumpe 파일에
    아래의 내용을 적어준다.
    DEVICE=/dev/sde1

  • 다음 단계로 지정한 디스크 파티션을 사용하기 위해 초기화한다. 이때는 이 파티션이
    마운트 되어있지 않아야하고 fstab 파일에 설정되어서도 안된다.
    <경고 : 지정된 파티션의 모든 정보는 사라지게 되므로 주의하기 바란다.>

    # service diskdump initialformat
    
  • 마지막으로 서비스에 등록하고 서비스를 시작한다.
    # chkconfig diskdump on
    # service diskdump start

    디스크 덤프 셋팅후에 아래의 명령을 이용하여 디스크덤프 이미지를 /var/crash 폴더에 저장한다.
    재부팅시 자동적으로 아래의 명령을 실행하기 위해 /etc/rc.local파일에 적어줄수 있다.
    # savecore -v /dev/<diskdump_disk_device>


    이제 디스크 덤프 서비스 설정은 완료되었다. 이제 시스템에 패닉이 일어나면 특정 파티션으로
    데이터들이 저장될 것이다. 만약 시스템의 램 용량이 크다면 약간의 시간이 더 걸릴 수 있다.

    http://kbase.redhat.com/faq/FAQ_79_4220.shtm

  1. 디지문 2010.09.06 00:45

    좋은 정보 감사합니다. 질문 좀 드릴게요.
    diskdump를 쓰려면 결국 빈 파티션이 하나 필요하다는 건가요?
    만약 없다면 swap 영역에 쓰게 할 수 있는 방법이 있다고 들었습니다. 정말 가능한지 궁금하네요.

+ Recent posts