WIPIVERSE

kdump

kdump은 리눅스 커널에서 제공하는 시스템 크래시(dump) 메커니즘으로, 시스템이 비정상적으로 종료될 경우 메모리 내용의 스냅샷을 별도의 저장소에 기록하여 이후 문제 분석에 활용할 수 있도록 한다. 이 기능은 주로 커널 패닉(kernel panic) 발생 시 자동으로 작동한다.

주요 기능

  1. 크래시 덤프 수집

    • 시스템이 크래시 상태에 도달하면, 별도로 할당된 “crashkernel” 영역에서 새로운 커널 인스턴스를 부팅한다.
    • 새 커널이 메모리 내용을 파일 시스템(예: ext4, NFS) 또는 원격 저장소에 기록한다.
  2. 문제 진단 지원

    • 수집된 메모리 덤프는 crash, gdb 등과 같은 디버깅 도구를 이용해 분석할 수 있다.
    • 메모리 상태, 프로세스 목록, 스택 트레이스 등을 확인함으로써 원인 파악이 가능하다.

구성 요소

  • crashkernel: kdump이 사용할 고정된 메모리 영역으로, 부팅 시 커널 파라미터(crashkernel=256M)를 통해 지정한다.
  • kdump.service: 시스템d 서비스 형태로 제공되며, 시스템 부팅 시 자동으로 활성화된다.
  • makedumpfile: 생성된 메모리 덤프 파일을 압축 및 필터링하여 저장 용량을 절감한다.

설정 절차 (일반적인 흐름)

  1. crashkernel 파라미터 지정
    • /etc/default/grub 또는 부트 로더 설정 파일에 crashkernel= 옵션을 추가하고, update-grub 등의 명령으로 적용한다.
  2. kdump 패키지 설치
    • 대부분의 배포판에서 kdump 패키지를 제공한다(yum install kdump, apt-get install kdump-tools 등).
  3. 덤프 저장 위치 설정
    • /etc/kdump.conf 파일에서 path, core_collector, swap 등 저장 옵션을 정의한다.
  4. 서비스 활성화 및 테스트
    • systemctl enable --now kdump.service 로 서비스를 시작하고, echo c > /proc/sysrq-trigger 명령으로 크래시를 강제 발생시켜 정상 동작을 확인한다.

활용 사례

  • 서버 운영: 데이터베이스 서버, 웹 서버 등 가용성이 중요한 시스템에서 발생한 커널 패닉 원인 분석.
  • 드라이버/하드웨어 테스트: 신규 드라이버나 하드웨어 추가 시, 비정상 종료 시점의 메모리 상태를 확인하여 안정성 검증.
  • 보안 조사: 시스템 침해나 악성 코드에 의해 발생한 커널 수준의 이상 징후를 추적.

제한 사항

  • 메모리 요구량: crashkernel에 할당된 메모리가 실제 시스템 메모리에서 차감되므로, 메모리 제한이 있는 환경에서는 적절한 크기 설정이 필요하다.
  • 덤프 크기: 전체 메모리 덤프는 대용량 파일이 될 수 있어 저장소 용량 관리가 요구된다.
  • 복구 시간: 크래시 후 덤프 수집 및 저장 과정에서 시스템 가용성이 일시적으로 중단된다.

참고

  • man kdump, man crashkernel, man makedumpfile 등 공식 매뉴얼 페이지.
  • 주요 리눅스 배포판(예: RHEL, CentOS, Fedora, Debian)의 문서와 가이드.
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기