41.2. 명령줄에서 kdump 구성
kdump
의 메모리는 시스템 부팅 중에 예약되어 있습니다. 시스템의 GRUB(GRUB) 구성 파일에서 메모리 크기를 구성할 수 있습니다. 메모리 크기는 구성 파일에 지정된 crashkernel=
값과 시스템의 실제 메모리에 따라 다릅니다.
41.2.1. kdump 크기 추정 링크 복사링크가 클립보드에 복사되었습니다!
kdump
환경을 계획하고 구축할 때는 크래시 덤프 파일에 필요한 공간을 알아야 합니다.
makedumpfile --mem-usage
명령은 크래시 덤프 파일에 필요한 공간을 추정합니다. 메모리 사용량 보고서를 생성합니다. 이 보고서를 사용하면 덤프 수준과 제외할 수 있는 페이지를 결정하는 데 도움이 됩니다.
프로세스
다음 명령을 입력하여 메모리 사용량 보고서를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
makedumpfile --mem-usage
명령은 필요한 메모리를 페이지에 보고합니다. 즉, 커널 페이지 크기에 대해 사용 중인 메모리 크기를 계산해야 합니다.
41.2.2. kdump 메모리 사용량 구성 링크 복사링크가 클립보드에 복사되었습니다!
kdump
의 메모리 예약은 시스템 부팅 중에 수행됩니다. 메모리 크기는 시스템의 GRUB(GRUB) 구성에서 설정됩니다. 메모리 크기는 구성 파일에 지정된 crashkernel=
옵션 값과 시스템 물리적 메모리 크기에 따라 다릅니다.
crashkernel=
옵션을 여러 가지 방법으로 정의할 수 있습니다. crashkernel=
값을 지정하거나 auto
옵션을 구성할 수 있습니다. crashkernel=auto
매개 변수는 시스템의 총 실제 메모리 크기에 따라 메모리를 자동으로 예약합니다. 구성되면 커널은 캡처 커널에 적절한 양의 필요한 메모리를 자동으로 예약합니다. 이렇게 하면 OOM(메모리 부족) 오류를 방지할 수 있습니다.
kdump
의 자동 메모리 할당은 시스템 하드웨어 아키텍처 및 사용 가능한 메모리 크기에 따라 다릅니다.
시스템에 자동 할당을 위한 최소 메모리 임계값보다 적은 경우 예약된 메모리 양을 수동으로 구성할 수 있습니다.
사전 요구 사항
- 시스템에 대한 root 권한이 있습니다.
-
kdump
구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.
프로세스
crashkernel=
옵션을 준비합니다.예를 들어 128MB의 메모리를 예약하려면 다음을 사용합니다.
crashkernel=128M
crashkernel=128M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 설치된 총 메모리 크기에 따라 예약된 메모리 양을 변수로 설정할 수 있습니다. 변수에 대한 메모리 예약 구문은
crashkernel= <range1> : <size1 > , <range2 > : <size2
> 입니다. 예를 들면 다음과 같습니다.crashkernel=512M-2G:64M,2G-:128M
crashkernel=512M-2G:64M,2G-:128M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 총 시스템 메모리 양이 512MB 및 2GB의 범위에 있는 경우 64MB의 메모리를 예약합니다. 총 메모리 양이 2GB를 초과하면 메모리 예약은 128MB입니다.
예약된 메모리를 오프셋합니다.
크래시커널
예약이 조기에 수행되므로 일부 시스템은 특정 고정 오프셋이 있는 메모리를 예약해야 하며 특수 사용을 위해 더 많은 메모리를 예약해야 할 수 있습니다. 오프셋을 정의하면 예약된 메모리가 여기에서 시작됩니다. 예약된 메모리를 오프셋하려면 다음 구문을 사용합니다.crashkernel=128M@16M
crashkernel=128M@16M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
kdump
는 16MB(실제 주소0x01000000
)부터 128MB의 메모리를 예약합니다. offset 매개변수를 0으로 설정하거나 완전히 생략하면kdump
가 예약된 메모리를 자동으로 오프셋합니다. 변수 메모리 예약을 설정할 때 이 구문을 사용할 수도 있습니다. 이 경우 오프셋은 항상 last으로 지정됩니다. 예를 들면 다음과 같습니다.crashkernel=512M-2G:64M,2G-:128M@16M
crashkernel=512M-2G:64M,2G-:128M@16M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
crashkernel=
옵션을 부트 로더 구성에 적용합니다.grubby --update-kernel=ALL --args="crashkernel=<value>"
# grubby --update-kernel=ALL --args="crashkernel=<value>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;value
>를 이전 단계에서 준비한crashkernel=
옵션 값으로 바꿉니다.
41.2.3. kdump 대상 구성 링크 복사링크가 클립보드에 복사되었습니다!
크래시 덤프는 일반적으로 장치에 직접 작성된 로컬 파일 시스템에 파일로 저장됩니다. 선택적으로 NFS
또는 SSH
프로토콜을 사용하여 네트워크를 통해 크래시 덤프를 보낼 수 있습니다. 크래시 덤프 파일을 보존하기 위한 이러한 옵션 중 하나만 한 번에 설정할 수 있습니다. 기본 동작은 로컬 파일 시스템의 /var/crash/
디렉터리에 저장하는 것입니다.
사전 요구 사항
- 시스템에 대한 root 권한이 있습니다.
-
kdump
구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.
프로세스
크래시 덤프 파일을 로컬 파일 시스템의
/var/crash/
디렉터리에 저장하려면/etc/kdump.conf
파일을 편집하고 경로를 지정합니다.path /var/crash
path /var/crash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 옵션
경로 /var/crash
는kdump
에서 크래시 덤프 파일을 저장하는 파일 시스템의 경로를 나타냅니다.참고-
/etc/kdump.conf
파일에 덤프 대상을 지정하면 경로는 지정된 덤프 대상과 관련이 있습니다. -
/etc/kdump.conf
파일에 덤프 대상을 지정하지 않으면 경로는 루트 디렉터리의 절대 경로를 나타냅니다.
현재 시스템에 마운트된 파일 시스템에 따라 덤프 대상 및 조정된 덤프 경로가 자동으로 구성됩니다.
-
크래시 덤프 파일과
kdump
에서 생성된 관련 파일을 보호하려면 사용자 권한 및 SELinux 컨텍스트와 같은 대상 대상 디렉터리에 대한 적절한 속성을 설정해야 합니다. 또한 다음과 같이kdump.conf
파일에서kdump_post.sh
스크립트를 정의할 수 있습니다.kdump_post <path_to_kdump_post.sh>
kdump_post <path_to_kdump_post.sh>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kdump_post
지시문은kdump
가 캡처를 완료하고 지정된 대상에 크래시 덤프를 저장한 후 실행되는 쉘 스크립트 또는 명령을 지정합니다. 이 메커니즘을 사용하여kdump
의 기능을 확장하여 파일 권한 조정을 포함하여 작업을 수행할 수 있습니다.-
kdump
대상 구성
*grep -v ^# /etc/kdump.conf | grep -v ^$*
# *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
는 vmcore
파일을 /var/crash/var/crash
디렉터리에 저장합니다.
크래시 덤프 저장을 위해 로컬 디렉터리를 변경하려면
/etc/kdump.conf
구성 파일을root
사용자로 편집합니다.-
행의 시작 부분에서 해시 기호( # )를 제거합니다.#
path /var/crash 값을 의도한 디렉터리 경로로 바꿉니다. 예를 들면 다음과 같습니다.
path /usr/local/cores
path /usr/local/cores
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요RHEL 8에서
path
지시문을 사용하여kdump
대상으로 정의된 디렉터리는kdump
systemd
서비스가 실패하는 것을 방지할 때 존재해야 합니다. 이전 버전의 RHEL과 달리 서비스가 시작될 때 디렉터리가 없는 경우 더 이상 자동으로 생성되지 않습니다.
-
파일을 다른 파티션에 작성하려면
/etc/kdump.conf
구성 파일을 편집합니다.선택한 항목에 따라
행의 시작 부분에서 해시 기호(# )를 제거합니다.#
ext4-
장치 이름(
#ext4 /dev/vg/lv_kdump
행) -
파일 시스템 레이블(
#ext4 LABEL=/boot
행) -
UUID (
#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
행)
-
장치 이름(
파일 시스템 유형과 장치 이름, 레이블 또는 UUID를 필수 값으로 변경합니다. UUID 값을 지정하는 올바른 구문은
UUID="correct-uuid"
및UUID=correct-uuid
입니다. 예를 들면 다음과 같습니다.ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요LABEL=
또는UUID=
를 사용하여 스토리지 장치를 지정하는 것이 좋습니다./dev/sda3
과 같은 디스크 장치 이름은 재부팅 시 일관성이 유지되지 않습니다.IBM Z 하드웨어에서 Direct Access Storage Device(DASD)를 사용하는 경우
kdump
를 진행하기 전에 덤프 장치가/etc/dasd.conf
에 올바르게 지정되었는지 확인합니다.
크래시 덤프를 장치에 직접 작성하려면
/etc/kdump.conf
구성 파일을 편집합니다.-
행의 시작 부분에서 해시 기호( # )를 제거합니다.#
raw /dev/vg/lv_kdump 값을 원하는 장치 이름으로 바꿉니다. 예를 들면 다음과 같습니다.
raw /dev/sdb1
raw /dev/sdb1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
NFS
프로토콜을 사용하여 크래시 덤프를 원격 시스템에 저장하려면 다음을 수행합니다.-
행의 시작 부분에서 해시 기호( # )를 제거합니다.#
nfs my.server.com:/export/tmp 값을 유효한 호스트 이름 및 디렉터리 경로로 바꿉니다. 예를 들면 다음과 같습니다.
nfs penguin.example.com:/export/cores
nfs penguin.example.com:/export/cores
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용하려면
kdump
서비스를 다시 시작하십시오.sudo systemctl restart kdump.service
sudo systemctl restart kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NFS 지시문을 사용하여 NFS 대상을 지정하는 동안
kdump.service
는 자동으로 NFS 대상을 마운트하여 디스크 공간을 확인합니다. NFS 대상을 미리 마운트할 필요가 없습니다.kdump.service
가 대상을 마운트하지 않도록 하려면kdump.conf
에서dracut_args --mount
지시문을 사용합니다. 그러면kdump.service
가--mount
인수와 함께dracut
유틸리티를 호출하여 NFS 대상을 지정할 수 있습니다.
-
SSH 프로토콜을 사용하여 크래시 덤프를 원격 시스템에 저장하려면 다음을 수행합니다.
-
행의 시작 부분에서 해시 기호(# )를 제거합니다.#
ssh user@my.server.com - 값을 유효한 사용자 이름 및 호스트 이름으로 바꿉니다.
구성에 SSH 키를 포함합니다.
-
#sshkey /root/.ssh/kdump_id_rsa
행의 시작 부분에서 해시 기호를 제거합니다. 덤프하려는 서버에서 유효한 키 위치로 값을 변경합니다. 예를 들면 다음과 같습니다.
ssh john@penguin.example.com sshkey /root/.ssh/mykey
ssh john@penguin.example.com sshkey /root/.ssh/mykey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
-
41.2.4. kdump 코어 수집기 구성 링크 복사링크가 클립보드에 복사되었습니다!
kdump
서비스는 core_collector
프로그램을 사용하여 크래시 덤프 이미지를 캡처합니다. RHEL에서 makedumpfile
유틸리티는 기본 코어 수집기입니다. 다음과 같이 덤프 파일을 줄이는 데 도움이 됩니다.
- 크래시 덤프 파일의 크기를 압축하고 다양한 덤프 수준을 사용하여 필요한 페이지만 복사합니다.
- 불필요한 크래시 덤프 페이지 제외.
- 크래시 덤프에 포함될 페이지 유형 필터링.
RHEL 7 이상에서는 크래시 덤프 파일 압축이 기본적으로 활성화됩니다.
크래시 덤프 파일 압축을 사용자 지정해야 하는 경우 다음 절차를 따르십시오.
구문
core_collector makedumpfile -l --message-level 1 -d 31
core_collector makedumpfile -l --message-level 1 -d 31
옵션
-
-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 구성 및 대상 을 참조하십시오.
프로세스
-
루트
로서/etc/kdump.conf
구성 파일을 편집하고#core_collector makedumpfile -l --message-level 1 -d 31
의 시작 부분에서 해시 기호("#")를 제거합니다. - 크래시 덤프 파일 압축을 활성화하려면 다음 명령을 입력합니다.
core_collector makedumpfile -l --message-level 1 -d 31
core_collector makedumpfile -l --message-level 1 -d 31
l
옵션은 덤프
압축 파일 형식을 지정합니다. d
옵션은 덤프 수준을 31로 지정합니다. --message-level
옵션은 메시지 수준을 1로 지정합니다.
또한 -c
및 -p
옵션을 사용하여 다음 예제를 고려하십시오.
-c
를 사용하여 크래시 덤프 파일을 압축하려면 다음을 수행합니다.core_collector makedumpfile -c -d 31 --message-level 1
core_collector makedumpfile -c -d 31 --message-level 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 크래시 덤프 파일을 압축하려면
-p
:core_collector makedumpfile -p -d 31 --message-level 1
core_collector makedumpfile -p -d 31 --message-level 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
입니다.
사전 요구 사항
- 루트 권한.
-
kdump
구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.
프로세스
-
root
사용자로/etc/kdump.conf
구성 파일의
행의 시작 부분에서 해시 기호(# )를 제거합니다.#
failure_action 값을 필수 작업으로 바꿉니다.
failure_action poweroff
failure_action poweroff
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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"
# KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
KDUMP_COMMANDLINE_APPEND
이 옵션은 현재 명령줄에 인수를 추가합니다. 이러한 인수는 이전
KDUMP_COMMANDLINE_REMOVE
변수에서 구문 분석되었을 수 있습니다.kdump
커널의 경우mce
,cgroup
,numa
,hest_disable
과 같은 특정 모듈을 비활성화하면 커널 오류를 방지할 수 있습니다. 이러한 모듈은kdump
용으로 예약된 커널 메모리의 중요한 부분을 사용하거나kdump
커널 부팅 실패를 유발할 수 있습니다.kdump
커널 명령줄에서 메모리cgroup
을 비활성화하려면 다음과 같이 명령을 실행합니다.
KDUMP_COMMANDLINE_APPEND="cgroup_disable=memory"
KDUMP_COMMANDLINE_APPEND="cgroup_disable=memory"
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
를 테스트하는 명령으로 인해 커널이 데이터 손실과 충돌합니다. - 시스템 아키텍처에 따라 상당한 머신 유지 관리 시간을 예약했습니다.
프로세스
kdump
서비스를 활성화합니다.kdumpctl restart
# kdumpctl restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kdumpctl
을 사용하여kdump
서비스의 상태를 확인합니다.kdumpctl status
# kdumpctl status kdump:Kdump is operational
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로
systemctl
명령을 사용하는 경우 출력은systemd
저널에 출력됩니다.커널 충돌을 시작하여
kdump
구성을 테스트합니다.sysrq-trigger
키 조합을 사용하면 커널이 충돌하고 필요한 경우 시스템을 재부팅할 수 있습니다.echo c > /proc/sysrq-trigger
# echo c > /proc/sysrq-trigger
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커널 재부팅 시
주소-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
설치에 대한 모든 구성은 필요에 따라 설정됩니다.
프로세스
multi-user.target
에 대해kdump
서비스를 활성화합니다.systemctl enable kdump.service
# systemctl enable kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 세션에서 서비스를 시작합니다.
systemctl start kdump.service
# systemctl start kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kdump
서비스를 중지합니다.systemctl stop kdump.service
# systemctl stop kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kdump
서비스를 비활성화합니다.systemctl disable kdump.service
# systemctl disable kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
kptr_restrict=1
을 기본값으로 설정하는 것이 좋습니다. kptr_restrict
가 기본값으로 설정된 경우 kdumpctl
서비스는KASLR
(커널 주소 공간 레이아웃)이 활성화되었는지 여부에 관계없이 크래시 커널을 로드합니다.
kptr_restrict
가 1
로 설정되지 않고 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 권한이 있습니다.
프로세스
현재 실행 중인 커널에 로드된 모듈 목록을 표시합니다. 로드에서 차단할 커널 모듈을 선택합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/kdump
파일에서KDUMP_COMMANDLINE_APPEND=
변수를 업데이트합니다. 예를 들면 다음과 같습니다.KDUMP_COMMANDLINE_APPEND="rd.driver.blacklist=hv_vmbus,hv_storvsc,hv_utils,hv_netvsc,hid-hyperv"
KDUMP_COMMANDLINE_APPEND="rd.driver.blacklist=hv_vmbus,hv_storvsc,hv_utils,hv_netvsc,hid-hyperv"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한
modprobe.blacklist= <modules
> 구성 옵션을 사용하여 다음 예제를 고려하십시오.KDUMP_COMMANDLINE_APPEND="modprobe.blacklist=emcp modprobe.blacklist=bnx2fc modprobe.blacklist=libfcoe modprobe.blacklist=fcoe"
KDUMP_COMMANDLINE_APPEND="modprobe.blacklist=emcp modprobe.blacklist=bnx2fc modprobe.blacklist=libfcoe modprobe.blacklist=fcoe"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kdump
서비스를 다시 시작하십시오.systemctl restart kdump
# systemctl restart kdump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
41.2.11. 암호화된 디스크가 있는 시스템에서 kdump 실행 링크 복사링크가 클립보드에 복사되었습니다!
LUKS 암호화된 파티션을 실행할 때 시스템에 특정 양의 사용 가능한 메모리가 필요합니다. 시스템에 필요한 양의 메모리보다 적은 경우 cryptsetup
유틸리티에서 파티션을 마운트하지 못합니다. 결과적으로 두 번째 커널(capture 커널)에서 vmcore
파일을 암호화된 대상 위치로 캡처할 수 없습니다.
kdumpctl estimate
명령은 kdump . kdump
ctl 추정에 필요한 메모리 양을 추정하는 데 도움이 됩니다.kdumpctl 추정은
kdump
에 필요한 메모리 크기에 가장 적합한 크래시커널
값을 출력합니다.
권장되는 crashkernel
값은 현재 커널 크기, 커널 모듈, initramfs 및 LUKS 암호화된 대상 메모리 요구 사항을 기반으로 계산됩니다.
사용자 정의 crashkernel=
옵션을 사용하는 경우 kdumpctl 추정치
는 필요한 크기
값을 출력합니다. 값은 LUKS 암호화된 대상에 필요한 메모리 크기입니다.
프로세스
추정치
crashkernel=
값을 출력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
crashkernel=
값을 늘려 필요한 메모리 양을 구성합니다. - 시스템을 재부팅합니다.
kdump
서비스가 여전히 덤프 파일을 암호화된 대상에 저장하지 못하는 경우 필요에 따라 crashkernel=
값을 늘립니다.