41.2. 명령줄에서 kdump 구성


kdump 의 메모리는 시스템 부팅 중에 예약되어 있습니다. 시스템의 GRUB(GRUB) 구성 파일에서 메모리 크기를 구성할 수 있습니다. 메모리 크기는 구성 파일에 지정된 crashkernel= 값과 시스템의 실제 메모리에 따라 다릅니다.

41.2.1. kdump 크기 추정

kdump 환경을 계획하고 구축할 때는 크래시 덤프 파일에 필요한 공간을 알아야 합니다.

makedumpfile --mem-usage 명령은 크래시 덤프 파일에 필요한 공간을 추정합니다. 메모리 사용량 보고서를 생성합니다. 이 보고서를 사용하면 덤프 수준과 제외할 수 있는 페이지를 결정하는 데 도움이 됩니다.

프로세스

  • 다음 명령을 입력하여 메모리 사용량 보고서를 생성합니다.

    # makedumpfile --mem-usage /proc/kcore
    
    
    TYPE        PAGES    EXCLUDABLE    DESCRIPTION
    -------------------------------------------------------------
    ZERO          501635      yes        Pages filled with zero
    CACHE         51657       yes        Cache pages
    CACHE_PRIVATE 5442        yes        Cache pages + private
    USER          16301       yes        User process pages
    FREE          77738211    yes        Free pages
    KERN_DATA     1333192     no         Dumpable kernel data
    Copy to Clipboard Toggle word wrap
중요

makedumpfile --mem-usage 명령은 필요한 메모리를 페이지에 보고합니다. 즉, 커널 페이지 크기에 대해 사용 중인 메모리 크기를 계산해야 합니다.

41.2.2. kdump 메모리 사용량 구성

kdump 의 메모리 예약은 시스템 부팅 중에 수행됩니다. 메모리 크기는 시스템의 GRUB(GRUB) 구성에서 설정됩니다. 메모리 크기는 구성 파일에 지정된 crashkernel= 옵션 값과 시스템 물리적 메모리 크기에 따라 다릅니다.

crashkernel= 옵션을 여러 가지 방법으로 정의할 수 있습니다. crashkernel= 값을 지정하거나 auto 옵션을 구성할 수 있습니다. crashkernel=auto 매개 변수는 시스템의 총 실제 메모리 크기에 따라 메모리를 자동으로 예약합니다. 구성되면 커널은 캡처 커널에 적절한 양의 필요한 메모리를 자동으로 예약합니다. 이렇게 하면 OOM(메모리 부족) 오류를 방지할 수 있습니다.

참고

kdump 의 자동 메모리 할당은 시스템 하드웨어 아키텍처 및 사용 가능한 메모리 크기에 따라 다릅니다.

시스템에 자동 할당을 위한 최소 메모리 임계값보다 적은 경우 예약된 메모리 양을 수동으로 구성할 수 있습니다.

사전 요구 사항

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

프로세스

  1. crashkernel= 옵션을 준비합니다.

    • 예를 들어 128MB의 메모리를 예약하려면 다음을 사용합니다.

      crashkernel=128M
      Copy to Clipboard Toggle word wrap
    • 또는 설치된 총 메모리 크기에 따라 예약된 메모리 양을 변수로 설정할 수 있습니다. 변수에 대한 메모리 예약 구문은 crashkernel= <range1> : <size1 > , <range2 > : <size2 > 입니다. 예를 들면 다음과 같습니다.

      crashkernel=512M-2G:64M,2G-:128M
      Copy to Clipboard Toggle word wrap

      이 명령은 총 시스템 메모리 양이 512MB 및 2GB의 범위에 있는 경우 64MB의 메모리를 예약합니다. 총 메모리 양이 2GB를 초과하면 메모리 예약은 128MB입니다.

    • 예약된 메모리를 오프셋합니다.

      크래시커널 예약이 조기에 수행되므로 일부 시스템은 특정 고정 오프셋이 있는 메모리를 예약해야 하며 특수 사용을 위해 더 많은 메모리를 예약해야 할 수 있습니다. 오프셋을 정의하면 예약된 메모리가 여기에서 시작됩니다. 예약된 메모리를 오프셋하려면 다음 구문을 사용합니다.

      crashkernel=128M@16M
      Copy to Clipboard Toggle word wrap

      이 예에서 kdump 는 16MB(실제 주소 0x01000000)부터 128MB의 메모리를 예약합니다. offset 매개변수를 0으로 설정하거나 완전히 생략하면 kdump 가 예약된 메모리를 자동으로 오프셋합니다. 변수 메모리 예약을 설정할 때 이 구문을 사용할 수도 있습니다. 이 경우 오프셋은 항상 last으로 지정됩니다. 예를 들면 다음과 같습니다.

      crashkernel=512M-2G:64M,2G-:128M@16M
      Copy to Clipboard Toggle word wrap
  2. crashkernel= 옵션을 부트 로더 구성에 적용합니다.

    # grubby --update-kernel=ALL --args="crashkernel=<value>"
    Copy to Clipboard Toggle word wrap

    & lt;value >를 이전 단계에서 준비한 crashkernel= 옵션 값으로 바꿉니다.

41.2.3. kdump 대상 구성

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

사전 요구 사항

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

프로세스

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

    path /var/crash
    Copy to Clipboard Toggle word wrap

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

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

    현재 시스템에 마운트된 파일 시스템에 따라 덤프 대상 및 조정된 덤프 경로가 자동으로 구성됩니다.

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

    kdump_post <path_to_kdump_post.sh>
    Copy to Clipboard Toggle word wrap

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

  • 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
Copy to Clipboard Toggle word wrap

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

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

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

      path /usr/local/cores
      Copy to Clipboard Toggle word wrap
      중요

      RHEL 8에서 path 지시문을 사용하여 kdump 대상으로 정의된 디렉터리는 kdump systemd 서비스가 실패하는 것을 방지할 때 존재해야 합니다. 이전 버전의 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
      Copy to Clipboard Toggle word wrap
      중요

      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
      Copy to Clipboard Toggle word wrap
  • NFS 프로토콜을 사용하여 크래시 덤프를 원격 시스템에 저장하려면 다음을 수행합니다.

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

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

      sudo systemctl restart kdump.service
      Copy to Clipboard Toggle word wrap
      참고

      NFS 지시문을 사용하여 NFS 대상을 지정하는 동안 kdump.service 는 자동으로 NFS 대상을 마운트하여 디스크 공간을 확인합니다. NFS 대상을 미리 마운트할 필요가 없습니다. kdump.service 가 대상을 마운트하지 않도록 하려면 kdump.conf 에서 dracut_args --mount 지시문을 사용합니다. 그러면 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
        Copy to Clipboard Toggle word wrap

41.2.4. kdump 코어 수집기 구성

kdump 서비스는 core_collector 프로그램을 사용하여 크래시 덤프 이미지를 캡처합니다. RHEL에서 makedumpfile 유틸리티는 기본 코어 수집기입니다. 다음과 같이 덤프 파일을 줄이는 데 도움이 됩니다.

  • 크래시 덤프 파일의 크기를 압축하고 다양한 덤프 수준을 사용하여 필요한 페이지만 복사합니다.
  • 불필요한 크래시 덤프 페이지 제외.
  • 크래시 덤프에 포함될 페이지 유형 필터링.
참고

RHEL 7 이상에서는 크래시 덤프 파일 압축이 기본적으로 활성화됩니다.

크래시 덤프 파일 압축을 사용자 지정해야 하는 경우 다음 절차를 따르십시오.

구문

core_collector makedumpfile -l --message-level 1 -d 31
Copy to Clipboard Toggle word wrap

옵션

  • -c , -l 또는 -p:, zlib for -c 옵션을 사용하여 각 페이지에서 덤프 파일 형식을 압축하거나 -l 옵션에 대해 lzo 또는 -p 옵션을 위해 snappy 를 지정합니다.
  • -d (dump_level): 덤프 파일에 복사되지 않도록 페이지를 제외합니다.
  • --message-level : 메시지 유형을 지정합니다. 이 옵션으로 message_level 을 지정하여 출력된 출력을 제한할 수 있습니다. 예를 들어 7을 message_level 으로 지정하면 일반적인 메시지 및 오류 메시지가 출력됩니다. message_level 의 최대값은 31입니다.

사전 요구 사항

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

프로세스

  1. 루트 로서 /etc/kdump.conf 구성 파일을 편집하고 #core_collector makedumpfile -l --message-level 1 -d 31 의 시작 부분에서 해시 기호("#")를 제거합니다.
  2. 크래시 덤프 파일 압축을 활성화하려면 다음 명령을 입력합니다.
core_collector makedumpfile -l --message-level 1 -d 31
Copy to Clipboard Toggle word wrap

l 옵션은 덤프 압축 파일 형식을 지정합니다. d 옵션은 덤프 수준을 31로 지정합니다. --message-level 옵션은 메시지 수준을 1로 지정합니다.

또한 -c-p 옵션을 사용하여 다음 예제를 고려하십시오.

  • -c 를 사용하여 크래시 덤프 파일을 압축하려면 다음을 수행합니다.

    core_collector makedumpfile -c -d 31 --message-level 1
    Copy to Clipboard Toggle word wrap
  • 크래시 덤프 파일을 압축하려면 -p:

    core_collector makedumpfile -p -d 31 --message-level 1
    Copy to Clipboard Toggle word wrap

41.2.5. kdump 기본 실패 응답 구성

기본적으로 kdump 가 구성된 대상 위치에서 크래시 덤프 파일을 생성하지 못하면 시스템이 재부팅되고 프로세스에서 덤프가 손실됩니다. 기본 실패 응답을 변경하고 코어 덤프를 기본 대상에 저장하지 못할 때 다른 작업을 수행하도록 kdump 를 구성할 수 있습니다. 추가 작업은 다음과 같습니다.

dump_to_rootfs
코어 덤프를 루트 파일 시스템에 저장합니다.
reboot
시스템을 재부팅하여 프로세스의 코어 덤프가 손실됩니다.
halt
시스템에서 시스템을 중지하고 프로세스에서 코어 덤프를 손실합니다.
poweroff
시스템의 전원을 끄고 프로세스의 코어 덤프를 끊습니다.
shell
initramfs 내에서 쉘 세션을 실행하면 코어 덤프를 수동으로 기록할 수 있습니다.
final_action
kdump 에 성공한 후 또는 shell 또는 dump_to_rootfs 실패 작업이 완료될 때 reboot,halt, poweroff 와 같은 추가 작업을 활성화합니다. 기본값은 reboot 입니다.
failure_action
커널 충돌에서 덤프가 실패할 때 수행할 작업을 지정합니다. 기본값은 reboot 입니다.

사전 요구 사항

프로세스

  1. root 사용자로 /etc/kdump.conf 구성 파일의 #failure_action 행의 시작 부분에서 해시 기호(# )를 제거합니다.
  2. 값을 필수 작업으로 바꿉니다.

    failure_action poweroff
    Copy to Clipboard Toggle word wrap

41.2.6. kdump 설정 파일

kdump 커널의 설정 파일은 /etc/sysconfig/kdump 입니다. 이 파일은 kdump 커널 명령줄 매개변수를 제어합니다. 대부분의 구성에서 기본 옵션을 사용합니다. 그러나 일부 시나리오에서는 kdump 커널 동작을 제어하도록 특정 매개변수를 수정해야 할 수 있습니다. 예를 들어 KDUMP_COMMANDLINE_APPEND 옵션을 수정하여 kdump 커널 명령줄을 추가하여 자세한 디버깅 출력을 얻거나 kdump 명령줄에서 인수를 제거하도록 KDUMP_COMMANDLINE_REMOVE 옵션을 변경합니다.

KDUMP_COMMANDLINE_REMOVE

이 옵션은 현재 kdump 명령줄에서 인수를 제거합니다. kdump 오류 또는 kdump 커널 부팅 실패를 유발할 수 있는 매개변수를 제거합니다. 이러한 매개변수는 이전 KDUMP_COMMANDLINE 프로세스에서 구문 분석되었거나 /proc/cmdline 파일에서 상속되었을 수 있습니다.

이 변수가 구성되지 않은 경우 /proc/cmdline 파일의 모든 값을 상속합니다. 이 옵션을 구성하면 문제를 디버깅하는 데 유용한 정보도 제공합니다.

특정 인수를 제거하려면 다음과 같이 KDUMP_COMMANDLINE_REMOVE 에 추가합니다.

# KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
Copy to Clipboard Toggle word wrap
KDUMP_COMMANDLINE_APPEND

이 옵션은 현재 명령줄에 인수를 추가합니다. 이러한 인수는 이전 KDUMP_COMMANDLINE_REMOVE 변수에서 구문 분석되었을 수 있습니다.

kdump 커널의 경우 mce,cgroup,numa,hest_disable 과 같은 특정 모듈을 비활성화하면 커널 오류를 방지할 수 있습니다. 이러한 모듈은 kdump 용으로 예약된 커널 메모리의 중요한 부분을 사용하거나 kdump 커널 부팅 실패를 유발할 수 있습니다.

kdump 커널 명령줄에서 메모리 cgroup 을 비활성화하려면 다음과 같이 명령을 실행합니다.

KDUMP_COMMANDLINE_APPEND="cgroup_disable=memory"
Copy to Clipboard Toggle word wrap

41.2.7. kdump 설정 테스트

kdump 를 구성한 후 시스템 충돌을 수동으로 테스트하고 vmcore 파일이 정의된 kdump 대상에 생성되었는지 확인해야 합니다. vmcore 파일은 새로 부팅된 커널의 컨텍스트에서 캡처됩니다. 따라서 vmcore 에는 커널 충돌을 디버깅하는 데 중요한 정보가 있습니다.

주의

활성 프로덕션 시스템에서 kdump 를 테스트하지 마십시오. kdump 를 테스트하는 명령으로 인해 커널이 데이터 손실과 충돌합니다. 시스템 아키텍처에 따라 kdump 테스트에서 부팅 시간이 긴 몇 가지 재부팅이 필요할 수 있으므로 상당한 유지 관리 시간을 예약해야 합니다.

kdump 테스트 중에 vmcore 파일이 생성되지 않으면 kdump 테스트를 위해 테스트를 다시 실행하기 전에 문제를 식별하고 수정합니다.

수동 시스템을 수정하는 경우 시스템 수정이 끝날 때 kdump 구성을 테스트해야 합니다. 예를 들어 다음 변경 사항을 수행하는 경우 다음을 위한 최적의 kdump 성능에 대한 kdump 구성을 테스트해야 합니다.

  • 패키지 업그레이드.
  • 하드웨어 수준 변경(예: 스토리지 또는 네트워킹 변경)
  • 펌웨어 업그레이드.
  • 타사 모듈을 포함하는 새로운 설치 및 애플리케이션 업그레이드.
  • 핫플러그 메커니즘을 사용하여 이 메커니즘을 지원하는 하드웨어에 메모리를 추가하는 경우.
  • /etc/kdump.conf 또는 /etc/sysconfig/kdump 파일을 변경한 후

사전 요구 사항

  • 시스템에 대한 root 권한이 있습니다.
  • 모든 중요한 데이터를 저장했습니다. kdump 를 테스트하는 명령으로 인해 커널이 데이터 손실과 충돌합니다.
  • 시스템 아키텍처에 따라 상당한 머신 유지 관리 시간을 예약했습니다.

프로세스

  1. kdump 서비스를 활성화합니다.

    # kdumpctl restart
    Copy to Clipboard Toggle word wrap
  2. kdumpctl 을 사용하여 kdump 서비스의 상태를 확인합니다.

    # kdumpctl status
      kdump:Kdump is operational
    Copy to Clipboard Toggle word wrap

    선택적으로 systemctl 명령을 사용하는 경우 출력은 systemd 저널에 출력됩니다.

  3. 커널 충돌을 시작하여 kdump 구성을 테스트합니다. sysrq-trigger 키 조합을 사용하면 커널이 충돌하고 필요한 경우 시스템을 재부팅할 수 있습니다.

    # echo c > /proc/sysrq-trigger
    Copy to Clipboard Toggle word wrap

    커널 재부팅 시 주소-YYYY-MM-DD-HH:MM:SS/vmcore 파일이 /etc/kdump.conf 파일에 지정된 위치에 생성됩니다. 기본값은 /var/crash/ 입니다.

41.2.8. 시스템 충돌 후 kdump에 의해 생성된 파일

시스템 충돌 후 kdump 서비스는 덤프 파일(vmcore)에 커널 메모리를 캡처하고 문제 해결 및 postmortem 분석을 지원하기 위해 추가 진단 파일을 생성합니다.

kdump 에 의해 생성된 파일:

  • vmcore - 충돌 시 시스템 메모리를 포함하는 주요 커널 메모리 덤프 파일입니다. kdump 구성에 지정된 core_collector 프로그램의 구성에 따라 데이터를 포함합니다. 기본적으로 커널 데이터 구조, 프로세스 정보, 스택 추적 및 기타 진단 정보.
  • vmcore-dmesg.txt - 패닉 상태인 기본 커널의 커널 링 버퍼 로그(dmesg)의 내용입니다.
  • kexec-dmesg.log - vmcore 데이터를 수집하는 보조 kexec 커널 실행으로부터의 커널 및 시스템 로그 메시지가 있습니다.

41.2.9. kdump 서비스 활성화 및 비활성화

특정 커널 또는 설치된 모든 커널에서 kdump 기능을 활성화하거나 비활성화하도록 구성할 수 있습니다. kdump 기능을 정기적으로 테스트하고 올바르게 작동하는지 확인해야 합니다.

사전 요구 사항

  • 시스템에 대한 root 권한이 있습니다.
  • 구성 및 대상에 대한 kdump 요구 사항을 완료했습니다. 지원되는 kdump 구성 및 대상 을 참조하십시오.
  • kdump 설치에 대한 모든 구성은 필요에 따라 설정됩니다.

프로세스

  1. multi-user.target 에 대해 kdump 서비스를 활성화합니다.

    # systemctl enable kdump.service
    Copy to Clipboard Toggle word wrap
  2. 현재 세션에서 서비스를 시작합니다.

    # systemctl start kdump.service
    Copy to Clipboard Toggle word wrap
  3. kdump 서비스를 중지합니다.

    # systemctl stop kdump.service
    Copy to Clipboard Toggle word wrap
  4. kdump 서비스를 비활성화합니다.

    # systemctl disable kdump.service
    Copy to Clipboard Toggle word wrap
주의

kptr_restrict=1 을 기본값으로 설정하는 것이 좋습니다. kptr_restrict 가 기본값으로 설정된 경우 kdumpctl 서비스는KASLR(커널 주소 공간 레이아웃)이 활성화되었는지 여부에 관계없이 크래시 커널을 로드합니다.

kptr_restrict1 로 설정되지 않고 KASLR이 활성화된 경우 /proc/kore 파일의 콘텐츠가 모든 0으로 생성됩니다. kdumpctl 서비스가 /proc/kcore 파일에 액세스하지 못하고 크래시 커널을 로드합니다. kexec-kdump-howto.txt 파일에는 kptr_restrict=1 을 설정할 것을 권장하는 경고 메시지가 표시됩니다. sysctl.conf 파일에서 다음을 확인하여 kdumpctl 서비스가 크래시 커널을 로드하는지 확인합니다.

  • sysctl.conf 파일의 커널 kptr_restrict=1.

41.2.10. 커널 드라이버가 kdump에 대한 로드되지 않음

/etc/sysconfig/kdump 구성 파일에 KDUMP_COMMANDLINE_APPEND= 변수를 추가하여 캡처 커널이 특정 커널 드라이버를 로드하지 않도록 제어할 수 있습니다. 이 방법을 사용하면 kdump 초기 RAM 디스크 이미지 initramfs 가 지정된 커널 모듈을 로드하지 못하도록 할 수 있습니다. 이렇게 하면 OOM(메모리 부족) 중단 오류 또는 기타 크래시 커널 실패를 방지할 수 있습니다.

다음 구성 옵션 중 하나를 사용하여 KDUMP_COMMANDLINE_APPEND= 변수를 추가할 수 있습니다.

  • rd.driver.blacklist=<modules>
  • modprobe.blacklist=<modules>

사전 요구 사항

  • 시스템에 대한 root 권한이 있습니다.

프로세스

  1. 현재 실행 중인 커널에 로드된 모듈 목록을 표시합니다. 로드에서 차단할 커널 모듈을 선택합니다.

    $ lsmod
    
    Module                  Size  Used by
    fuse                  126976  3
    xt_CHECKSUM            16384  1
    ipt_MASQUERADE         16384  1
    uinput                 20480  1
    xt_conntrack           16384  1
    Copy to Clipboard Toggle word wrap
  2. /etc/sysconfig/kdump 파일에서 KDUMP_COMMANDLINE_APPEND= 변수를 업데이트합니다. 예를 들면 다음과 같습니다.

    KDUMP_COMMANDLINE_APPEND="rd.driver.blacklist=hv_vmbus,hv_storvsc,hv_utils,hv_netvsc,hid-hyperv"
    Copy to Clipboard Toggle word wrap

    또한 modprobe.blacklist= <modules > 구성 옵션을 사용하여 다음 예제를 고려하십시오.

    KDUMP_COMMANDLINE_APPEND="modprobe.blacklist=emcp modprobe.blacklist=bnx2fc modprobe.blacklist=libfcoe modprobe.blacklist=fcoe"
    Copy to Clipboard Toggle word wrap
  3. kdump 서비스를 다시 시작하십시오.

    # systemctl restart kdump
    Copy to Clipboard Toggle word wrap

41.2.11. 암호화된 디스크가 있는 시스템에서 kdump 실행

LUKS 암호화된 파티션을 실행할 때 시스템에 특정 양의 사용 가능한 메모리가 필요합니다. 시스템에 필요한 양의 메모리보다 적은 경우 cryptsetup 유틸리티에서 파티션을 마운트하지 못합니다. 결과적으로 두 번째 커널(capture 커널)에서 vmcore 파일을 암호화된 대상 위치로 캡처할 수 없습니다.

kdumpctl estimate 명령은 kdump . kdump ctl 추정에 필요한 메모리 양을 추정하는 데 도움이 됩니다.kdumpctl 추정은 kdump 에 필요한 메모리 크기에 가장 적합한 크래시커널 값을 출력합니다.

권장되는 crashkernel 값은 현재 커널 크기, 커널 모듈, initramfs 및 LUKS 암호화된 대상 메모리 요구 사항을 기반으로 계산됩니다.

사용자 정의 crashkernel= 옵션을 사용하는 경우 kdumpctl 추정치필요한 크기 값을 출력합니다. 값은 LUKS 암호화된 대상에 필요한 메모리 크기입니다.

프로세스

  1. 추정치 crashkernel= 값을 출력합니다.

    # *kdumpctl estimate*
    
    Encrypted kdump target requires extra memory, assuming using the keyslot with minimum memory requirement
       Reserved crashkernel:    256M
       Recommended crashkernel: 652M
    
       Kernel image size:   47M
       Kernel modules size: 8M
       Initramfs size:      20M
       Runtime reservation: 64M
       LUKS required size:  512M
       Large modules: <none>
       WARNING: Current crashkernel size is lower than recommended size 652M.
    Copy to Clipboard Toggle word wrap
  2. crashkernel= 값을 늘려 필요한 메모리 양을 구성합니다.
  3. 시스템을 재부팅합니다.
참고

kdump 서비스가 여전히 덤프 파일을 암호화된 대상에 저장하지 못하는 경우 필요에 따라 crashkernel= 값을 늘립니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat