13.3. kdump 대상 구성

크래시 덤프는 일반적으로 로컬 파일 시스템에 파일로 저장되며 장치에 직접 작성됩니다. 또는 NFS 또는 SSH 프로토콜을 사용하여 네트워크를 통해 전송되는 크래시 덤프를 설정할 수 있습니다. 크래시 덤프 파일을 유지하기 위해 이러한 옵션 중 하나만 한 번에 설정할 수 있습니다. 기본 동작은 로컬 파일 시스템의 /var/crash/ 디렉터리에 저장하는 것입니다.

사전 요구 사항

  • 시스템에 대한 root 권한이 있습니다.
  • kdump 구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상을 참조하십시오.

절차

  • 크래시 덤프 파일을 로컬 파일 시스템의 /var/crash/ 디렉터리에 저장하려면 /etc/kdump.conf 파일을 편집하고 경로를 지정합니다.

    path /var/crash

    옵션 경로 /var/crashkdump 가 크래시 덤프 파일을 저장하는 파일 시스템의 경로를 나타냅니다.

    참고
    • /etc/kdump.conf 파일에서 덤프 대상을 지정하면 경로는 지정된 덤프 대상을 기준으로 합니다.
    • /etc/kdump.conf 파일에 덤프 대상을 지정하지 않으면 경로는 루트 디렉터리의 절대 경로를 나타냅니다.

    현재 시스템에 마운트된 항목에 따라 덤프 대상 및 조정된 덤프 경로가 자동으로 수행됩니다.

    크래시 덤프 파일과 kdump 에서 생성된 관련 파일을 보호하려면 사용자 권한 및 SELinux 컨텍스트와 같은 대상 대상 디렉터리에 대한 적절한 속성을 설정해야 합니다. 또한 다음과 같이 kdump.conf 파일에서 kdump_post.sh 스크립트를 정의할 수 있습니다.

    kdump_post <path_to_kdump_post.sh>

    kdump_post 지시문은 kdump 에서 캡처하고 지정된 대상에 크래시 덤프를 저장한 실행되는 쉘 스크립트 또는 명령을 지정합니다. 이 메커니즘을 사용하여 kdump 의 기능을 확장하여 파일 권한 조정을 포함하여 작업을 수행할 수 있습니다.

예 13.1. kdump 대상 설정

# grep -v ^# /etc/kdump.conf | grep -v ^$
ext4 /dev/mapper/vg00-varcrashvol
path /var/crash
core_collector makedumpfile -c --message-level 1 -d 31

여기서 덤프 대상(ext4 /dev/mapper/vg00-varcrashvol)을 지정하므로 /var/crash 에 마운트됩니다. path 옵션도 /var/crash 로 설정되므로 kdump/var/crash/var/crash 디렉터리에 vmcore 파일을 저장합니다.

  • 크래시 덤프를 저장할 로컬 디렉터리를 root 로 변경하려면 /etc/kdump.conf 구성 파일을 편집합니다.

    1. #path /var/crash 행의 시작 부분에서 해시 기호( # )를 제거합니다.
    2. 값을 의도된 디렉터리 경로로 바꿉니다. 예를 들면 다음과 같습니다.

      path /usr/local/cores
      중요

      Red Hat Enterprise Linux 9에서는 kdump systemd 서비스가 실패를 방지할 때 path 지시문을 사용하여 kdump 대상으로 정의된 디렉터리가 있어야 합니다. 이 동작은 서비스가 시작될 때 없는 경우 디렉터리가 자동으로 생성되는 RHEL 이전 버전과 다릅니다.

  • 파일을 다른 파티션에 작성하려면 /etc/kdump.conf 구성 파일을 편집합니다.

    1. 선택한 항목에 따라 #ext4 행의 시작 부분에서 해시 기호(# )를 제거합니다.

      • 장치 이름 (#ext4 /dev/vg/lv_kdump 행)
      • 파일 시스템 레이블 (#ext4 LABEL=/boot 행)
      • UUID (#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 줄)
    2. 파일 시스템 유형과 장치 이름, 레이블 또는 UUID를 필수 값으로 변경합니다. UUID 값을 지정하는 올바른 구문은 UUID="correct-uuid"UUID=correct-uuid 입니다. 예를 들면 다음과 같습니다.

      ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
      중요

      LABEL= 또는 UUID= 를 사용하여 스토리지 장치를 지정하는 것이 좋습니다. /dev/sda3 과 같은 디스크 장치 이름은 재부팅 후에도 일관되게 보장되지 않습니다.

      IBM Z 하드웨어에서 Direct Access Storage Device(DASD)를 사용하는 경우 kdump 를 진행하기 전에 덤프 장치가 /etc/dasd.conf 에 올바르게 지정되었는지 확인합니다.

  • 크래시 덤프를 장치에 직접 작성하려면 /etc/kdump.conf 구성 파일을 편집합니다.

    1. #raw /dev/vg/lv_kdump 행의 시작 부분에서 해시 기호( # )를 제거합니다.
    2. 값을 원하는 장치 이름으로 바꿉니다. 예를 들면 다음과 같습니다.

      raw /dev/sdb1
  • NFS 프로토콜을 사용하여 크래시 덤프를 원격 시스템에 저장하려면 다음을 수행합니다.

    1. #nfs my.server.com:/export/tmp 행의 시작 부분에서 해시 기호( # )를 제거합니다.
    2. 값을 유효한 호스트 이름 및 디렉터리 경로로 바꿉니다. 예를 들면 다음과 같습니다.

      nfs penguin.example.com:/export/cores
    3. 변경 사항을 적용하려면 kdump 서비스를 다시 시작하십시오.

      sudo systemctl restart kdump.service
      참고

      NFS 지시문을 사용하여 NFS 대상을 지정하는 경우 kdump.service 는 자동으로 NFS 대상을 마운트하여 디스크 공간을 확인합니다. NFS 대상을 사전에 마운트할 필요가 없습니다. kdump.service 가 대상을 마운트하지 않도록 kdump.conf에서 dracut_args --mount 지시문을 사용하여 kdump.conf 에서 kdump.service--mount 인수를 사용하여 dracut 유틸리티를 호출하여 NFS 대상을 지정합니다.

  • SSH 프로토콜을 사용하여 크래시 덤프를 원격 시스템에 저장하려면 다음을 수행합니다.

    1. #ssh user@my.server.com 행의 시작 부분에서 해시 기호(# )를 제거합니다.
    2. 값을 유효한 사용자 이름 및 호스트 이름으로 바꿉니다.
    3. 구성에 SSH 키를 포함합니다.

      1. #sshkey /root/.ssh/kdump_id_rsa 줄에서 해시 기호를 제거합니다.
      2. 덤프하려는 서버에서 유효한 키 위치로 값을 변경합니다. 예를 들면 다음과 같습니다.

        ssh john@penguin.example.com
        sshkey /root/.ssh/mykey