Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.2. kdump 설치 및 구성

7.2.1. kdump 설치

대부분의 경우 kdump 서비스는 새로운 Red Hat Enterprise Linux 7 설치에 기본적으로 설치되고 활성화됩니다. The Anaconda 설치 프로그램은 그래픽 또는 텍스트 인터페이스를 사용하여 대화형 설치를 수행할 때 kdump 설정 화면을 제공합니다. 설치 프로그램 화면에는 Kdump 라는 제목이 있으며 기본 설치 요약 화면에서 사용할 수 있으며 제한된 구성만 사용할 수 있습니다. kdump가 활성화되어 있는지 여부와 예약된 메모리 양만 선택할 수 있습니다. kdump의 메모리 요구 사항에 대한 정보는 7.8.1절. “kdump에 대한 메모리 요구 사항” 에서 확인할 수 있습니다. 설치 프로그램의 Kdump 구성 화면은 에 문서화되어 있습니다. Red Hat Enterprise Linux 7 Installation Guide.

참고

이전 Red Hat Enterprise Linux 릴리스에서 kdump 설정을 사용할 수 있었습니다. Firstboot 설치가 완료된 자동으로 실행되고 시스템이 처음으로 재부팅된 유틸리티. Red Hat Enterprise Linux 7.1부터 kdump 설정이 설치 프로그램으로 이동되었습니다.

사용자 정의 Kickstart 설치와 같은 일부 설치 옵션은 기본적으로 kdump를 설치하거나 활성화할 필요가 없습니다. 시스템의 경우 이 경우 시스템에 해당하고 kdump를 추가로 설치하려는 경우 쉘 프롬프트에서 root 로 다음 명령을 실행합니다.

# yum install kexec-tools

위의 명령은 시스템에 활성 서브스크립션 또는 가 포함된 사용자 정의 리포지터리가 있다고 가정하여 kdump 및 기타 필요한 모든 패키지를 설치할 수 있습니다. kexec-tools 시스템 아키텍처를 위한 패키지.

참고

kdump가 시스템에 설치되어 있는지 여부를 모르는 경우 rpm 을 사용하여 확인할 수 있습니다.

$ rpm -q kexec-tools

또한 위에서 설명한 명령을 사용하는 경우 그래픽 구성 툴을 사용할 수 있지만 기본적으로 설치되지 않습니다. 7.2.3절. “그래픽 사용자 인터페이스에서 kdump 구성” 에 설명된 이 유틸리티를 설치하려면 root 로 다음 명령을 사용하십시오.

# yum install system-config-kdump

Red Hat Enterprise Linux 7에 새 패키지를 설치하는 방법에 대한 자세한 내용은. Yum 패키지 관리자, 참조 Red Hat Enterprise Linux 7 System Administrator’s Guide.

중요

Red Hat Enterprise Linux 7.4부터 Intel IOMMU 드라이버는 kdump 에서 지원됩니다. 버전 7.3 이하에서 커널을 실행하는 경우 Intel IOMMU 지원을 사용하지 않는 것이 좋습니다.

7.2.2. 명령줄에서 kdump 설정

7.2.2.1. 메모리 사용량 구성

kdump 커널용으로 예약된 메모리는 항상 시스템 부팅 중에 예약되어 있습니다. 즉, 시스템의 부트 로더 구성에 메모리 크기가 지정됩니다.

kdump 커널용으로 예약된 메모리를 지정하려면 crashkernel= 옵션을 필수 값으로 설정합니다. 예를 들어 128MB의 메모리를 예약하려면 다음을 사용합니다.

crashkernel=128M

AMD64 및 Intel 64 시스템 및 IBM Power Systems 서버의 crashkernel= 옵션을 변경하는 방법에 대한 자세한 내용을 참조하십시오. GRUB2 부트 로더 및 IBM Z에서 사용 zipl3.1.1절. “커널 명령줄 매개변수 설정” 을 참조하십시오.

crashkernel= 옵션은 여러 가지 방법으로 정의할 수 있습니다. auto 값을 사용하면 7.8.1절. “kdump에 대한 메모리 요구 사항” 에 설명된 지침에 따라 시스템의 총 메모리 크기에 따라 예약된 메모리를 자동으로 구성할 수 있습니다. 더 큰 메모리 시스템은, 운영 체제의 설정된 한도까지 crashkernel=auto 옵션으로 아키텍처에 따라 계산됩니다.

이 동작을 변경하려면 auto 값을 특정 메모리 양으로 바꿉니다.

crashkernel= 옵션은 작은 메모리 시스템에서 특히 유용할 수 있습니다. 예를 들어 128MB의 메모리를 예약하려면 다음을 사용합니다.

crashkernel=128M

설치된 메모리의 총 양에 따라 예약된 메모리의 양을 변수로 설정할 수도 있습니다. 변수 메모리 예약 구문은 crashkernel= <range1> : <size1 > , <range2 > : <size2 > 입니다. 예를 들어 다음과 같습니다.

crashkernel=512M-2G:64M,2G-:128M

위 예제에서는 총 시스템 메모리 크기가 512MB 이상이고 2GB보다 낮은 경우 64MB의 메모리를 예약합니다. 총 메모리 크기가 2GB를 초과하는 경우 대신 kdump용으로 128MB가 예약되어 있습니다.

일부 시스템은 정해진 오프셋으로 메모리를 예약해야 합니다. 오프셋이 설정된 경우 예약된 메모리가 시작됩니다. 예약된 메모리를 오프셋하려면 다음 구문을 사용합니다.

crashkernel=128M@16M

위의 예제에서는 kdump가 16MB(물리적 주소 0x01000000)에서 시작하는 128MB의 메모리를 예약함을 의미합니다. offset 매개 변수가 0으로 설정하거나 완전히 생략되면 kdump가 예약된 메모리를 자동으로 오프셋합니다. 이 구문은 위에서 설명한 대로 변수 메모리 예약을 설정할 때 사용할 수도 있습니다. 이 경우 오프셋은 항상 마지막입니다(예: crashkernel=512M-2G:64M,2G-:128M@16M).

7.2.2.2. kdump 대상 구성

커널 충돌을 캡처하면 코어 덤프를 로컬 파일 시스템에 파일로 저장하거나 장치에 직접 작성되거나 NFS (Network File System) 또는 SSH (Secure Shell) 프로토콜을 사용하여 네트워크를 통해 전송할 수 있습니다. 이러한 옵션 중 하나만 현재 설정할 수 있습니다. 기본 옵션은 vmcore 파일을 로컬 파일 시스템의 /var/crash 디렉터리에 저장하는 것입니다.

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

    path /var/crash

    옵션 경로 /var/crashkdumpvmcore 파일을 저장하는 파일 시스템 경로를 나타냅니다.

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

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

    예 7.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 에 마운트된 경로 옵션도 /var/crash 로 설정되므로 kdump/var/crash/var/crash 디렉터리에 vmcore 파일을 저장합니다.

루트 권한으로 덤프 위치를 변경하려면 텍스트 편집기에서 /etc/kdump.conf 구성 파일을 열고 아래에 설명된 대로 옵션을 편집합니다.

코어 덤프를 저장할 로컬 디렉터리를 변경하려면 #path /var/crash 줄의 시작 부분에서 해시 기호("#")를 제거하고 해당 값을 원하는 디렉토리 경로로 바꿉니다.

path /usr/local/cores
중요

Red Hat Enterprise Linux 7에서는 kdump systemd 서비스가 시작될 때 path 지시문을 사용하여 kdump 대상으로 정의된 디렉터리가 있어야 합니다. 그렇지 않으면 서비스가 실패합니다. 이 동작은 서비스를 시작할 때 존재하지 않는 경우 디렉터리가 자동으로 생성된 Red Hat Enterprise Linux의 이전 릴리스와 다릅니다.

선택적으로 파일을 다른 파티션에 작성하려는 경우 #ext4 로 시작하는 줄 중 하나를 사용하여 동일한 절차를 따르십시오. 여기에서 장치 이름 ( #ext4 /dev/vg/lv_kdump 라인), 파일 시스템 레이블 ( #ext4 LABEL=/boot 라인) 또는 UUID ( #ext4 UUID=03138356-5e6-4ab3-b58e-27507ac41937 라인)를 사용할 수 있습니다. 파일 시스템 유형 및 장치 이름, 레이블 또는 UUID를 원하는 값으로 변경합니다.

참고
UUID 값을 지정하는 올바른 구문은 UUID="correct-uuid"'UUID=correct-uuid 입니다.

예를 들어 다음과 같습니다.

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

LABEL= 또는 UUID= 을 사용하여 스토리지 장치를 지정하는 것이 좋습니다. /dev/sda3 과 같은 디스크 장치 이름은 재부팅 시 일관되게 보장되지 않습니다. 참조 Red Hat Enterprise Linux 7 Storage Administration Guide 영구 디스크 장치 이름 지정에 대한 자세한 내용은 다음을 참조하십시오.

중요

s390x 하드웨어의 DASD로 덤프할 때는 계속하기 전에 덤프 장치를 /etc/dasd.conf 에 올바르게 지정해야 합니다.

덤프를 장치에 직접 작성하려면 #raw /dev/vg/lv_kdump 행의 시작 부분에서 해시 기호("#")를 제거하고 해당 값을 원하는 장치 이름으로 교체합니다. 예를 들어 다음과 같습니다.

raw /dev/sdb1

NFS 프로토콜을 사용하여 원격 머신에 덤프를 저장하려면 #nfs my.server.com:/export/tmp 행의 시작 부분에서 해시 기호("#")를 제거하고 해당 값을 유효한 호스트 이름 및 디렉터리 경로로 교체합니다. 예를 들어 다음과 같습니다.

nfs penguin.example.com:/export/cores

SSH 프로토콜을 사용하여 원격 머신에 덤프를 저장하려면 #ssh user@my.server.com 행의 시작 위치에서 해시 기호("#")를 제거하고 해당 값을 유효한 사용자 이름과 호스트 이름으로 교체합니다. 구성에 SSH 키를 포함하려면 #sshkey /root/.ssh/.ssh/kdump_id_rsa 행의 시작 부분에서 해시 기호를 제거하고 덤프하려는 서버에서 유효한 키의 위치로 값을 변경합니다. 예를 들어 다음과 같습니다.

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

SSH 서버를 구성하고 키 기반 인증을 설정하는 방법에 대한 자세한 내용은 을 참조하십시오. Red Hat Enterprise Linux 7 System Administrator’s Guide.

현재 지원되는 대상 및 유형별로 정렬된 지원되지 않는 대상의 전체 목록은 표 7.3. “지원되는 kdump 대상” 를 참조하십시오.

7.2.2.3. 코어 수집기 구성

vmcore dump 파일의 크기를 줄이기 위해 kdump 를 사용하면 외부 애플리케이션( 코어 수집기)을 지정하여 데이터를 압축하고 선택적으로 모든 관련 정보를 남겨둘 수 있습니다. 현재는 완전히 지원되는 코어 수집기만 makedumpfile 입니다.

루트 로서 루트 수집기를 활성화하려면 텍스트 편집기에서 /etc/kdump.conf 구성 파일을 열고 #core_collector makedumpfile -l --message-level 1 -d 31 행의 시작 부분에서 해시 기호("#")를 제거하고, 아래에 설명된 대로 명령행 옵션을 편집합니다.

덤프 파일 압축을 활성화하려면 -l 매개 변수를 추가합니다. 예를 들어 다음과 같습니다.

core_collector makedumpfile -l

덤프에서 특정 페이지를 제거하려면 -d value 매개변수를 추가합니다. 여기서 value표 7.4. “지원되는 필터링 수준” 에 설명된 대로 생략하려는 페이지의 합계입니다. 예를 들어 0과 사용 가능한 페이지를 모두 제거하려면 다음을 사용합니다.

core_collector makedumpfile -d 17 -c

사용 가능한 전체 옵션 목록은 makedumpfile(8) 매뉴얼 페이지를 참조하십시오.

7.2.2.4. 기본 작업 구성

기본적으로 kdumpkexec 시스템 호출을 사용하여 재부팅하지 않고 두 번째 커널(커널 캡처)으로 부팅한 다음 충돌된 커널 메모리( crash dump 또는 vmcore)의 내용을 캡처하여 파일에 저장합니다. 저장 후 kdump 는 시스템을 재부팅합니다.

그러나 kdump7.2.2.2절. “kdump 대상 구성” 에 지정된 대상 위치에 코어 덤프를 생성하지 못하면 kdump 는 vmcore를 저장하지 않고 시스템을 재부팅합니다. 이 동작을 변경하려면 루트 로서 텍스트 편집기에서 /etc/kdump.conf 구성 파일을 열고 # default 쉘 행의 시작 부분에서 해시 기호("# ")를 제거하고, 표 7.5. “지원되는 기본 작업” 에 설명된 대로 값을 원하는 작업으로 교체합니다.

예를 들어 다음과 같습니다.

default reboot

7.2.2.5. 서비스 활성화

부팅 시 kdump 데몬을 시작하려면 쉘 프롬프트에 root 로 다음을 입력합니다.

systemctl enable kdump.service

이를 통해 multi-user.target 에 대해 서비스를 사용할 수 있습니다. 마찬가지로 systemctl disable kdump 를 입력하면 kdump 가 비활성화됩니다. 현재 세션에서 서비스를 시작하려면 root 로 다음 명령을 사용하십시오.

systemctl start kdump.service
중요

Red Hat Enterprise Linux 7에서 kdump 대상으로 정의된 디렉터리는 kdump systemd 서비스를 시작할 때 있어야 합니다. 그렇지 않으면 서비스가 실패합니다. 이 동작은 서비스를 시작할 때 존재하지 않는 경우 디렉터리가 자동으로 생성된 Red Hat Enterprise Linux의 이전 릴리스와 다릅니다.

systemd 및 서비스 구성에 대한 자세한 내용은 을 참조하십시오. Red Hat Enterprise Linux 7 System Administrator’s Guide.

7.2.3. 그래픽 사용자 인터페이스에서 kdump 구성

시작 방법 Kernel Dump Configuration utility, 패널에서OtherKernel crash dumps 선택하거나 쉘 프롬프트에서 system-config-kdump 를 입력합니다. 그러면 그림 7.1. “기본 설정” 에 창이 표시됩니다.

유틸리티를 사용하면 부팅 시 서비스 시작을 활성화하거나 비활성화할 뿐만 아니라 kdump 를 구성할 수 있습니다. 완료되면 적용을 클릭하여 변경 사항을 저장합니다. 이미 인증되어 있지 않으면 슈퍼유저 암호를 입력합니다. 유틸리티는 구성 변경 사항을 적용하려면 시스템을 재부팅해야 한다는 알림을 제공합니다.

중요

Enforcing 모드에서 SELinux 가 실행되는 IBM Z 또는 PowerPC 시스템에서 커널 Dump Configuration 유틸리티를 시작하기 전에 kdumpgui_run_bootloader 부울을 활성화해야 합니다. 이 부울을 사용하면 system-config-kdump가 bootloader_t SELinux 도메인에서 부트 로더를 실행할 수 있습니다. 부울을 영구적으로 활성화하려면 root로 다음 명령을 실행하십시오.

# setsebool -P kdumpgui_run_bootloader 1
중요

s390x 하드웨어의 DASD로 덤프할 때는 계속하기 전에 덤프 장치를 /etc/dasd.conf 에 올바르게 지정해야 합니다.

7.2.3.1. 메모리 사용량 구성

기본 설정 탭을 사용하면 kdump 커널에 예약된 메모리 양을 구성할 수 있습니다. 이렇게 하려면 Manual settings (수동 설정) 라디오 버튼을 선택하고 New kdump Memory 필드 옆에 있는 위쪽 및 아래쪽 화살표 버튼을 클릭하여 예약할 메모리 양을 늘리거나 줄입니다. Usable Memory (원하는 메모리) 필드가 변경되어 시스템에서 사용할 수 있는 나머지 메모리가 표시됩니다. kdump의 메모리 요구 사항에 대한 자세한 내용은 7.1.2절. “메모리 요구 사항” 를 참조하십시오.

그림 7.1. 기본 설정

Basic Settings

7.2.3.2. kdump 대상 구성

대상 설정 탭에서 vmcore 덤프의 대상 위치를 지정할 수 있습니다. 덤프는 로컬 파일 시스템에 파일로 저장되거나 장치에 직접 작성되거나 NFS (Network File System) 또는 SSH (Secure Shell) 프로토콜을 사용하여 네트워크를 통해 전송할 수 있습니다.

그림 7.2. 대상 설정

Target Settings

덤프를 로컬 파일 시스템에 저장하려면 로컬 파일 시스템 라디오 버튼을 선택합니다. 필요한 경우 Partition 드롭다운 목록에서 다른 파티션을 선택하고 Path 필드를 사용하여 대상 디렉터리를 선택하여 설정을 사용자 지정할 수 있습니다.

중요

Red Hat Enterprise Linux 7에서 kdump 대상으로 정의된 디렉터리는 kdump systemd 서비스를 시작할 때 있어야 합니다. 그렇지 않으면 서비스가 실패합니다. 이 동작은 서비스를 시작할 때 존재하지 않는 경우 디렉터리가 자동으로 생성된 Red Hat Enterprise Linux의 이전 릴리스와 다릅니다.

덤프를 장치에 직접 작성하려면 원시 장치 라디오 버튼을 선택하고 드롭다운 목록에서 원하는 대상 장치를 선택합니다.

네트워크 연결을 통해 원격 시스템으로 덤프를 보내려면 네트워크 라디오 버튼을 선택합니다. NFS 프로토콜을 사용하려면 NFS 라디오 버튼을 선택하고 서버 이름과 Path to directory 필드를 작성합니다. SSH 프로토콜을 사용하려면 SSH 라디오 버튼을 선택하고 각각 서버 이름,경로, 디렉터리, 사용자 이름 필드를 원격 서버 주소, 대상 디렉터리, 유효한 사용자 이름을 입력합니다.

SSH 서버를 구성하고 키 기반 인증을 설정하는 방법에 대한 자세한 내용은 을 참조하십시오. Red Hat Enterprise Linux 7 System Administrator’s Guide. 현재 지원되는 대상의 전체 목록은 표 7.3. “지원되는 kdump 대상” 를 참조하십시오.

7.2.3.3. 코어 수집기 구성

필터링 설정 탭에서 vmcore dump의 필터링 수준을 선택할 수 있습니다.

그림 7.3. 설정 필터링

Filtering Settings

제로 페이지,캐시 페이지,캐시 개인 데이터,사용자 데이터 또는 덤프에서 사용 가능한 페이지를 제외하려면 적절한 레이블 옆에 있는 확인란을 선택합니다.

7.2.3.4. 기본 작업 구성

kdump 가 코어 덤프를 생성하지 못할 때 수행해야 하는 작업을 선택하려면 덤프가 실패한 경우 작업에서 적절한 옵션을 선택합니다. 사용 가능한 옵션은 다음과 같습니다.

  • rootfs로 덤프하고 재부팅 시도에서 코어를 로컬에 저장한 다음 시스템을 재부팅합니다.
  • 시스템을 재부팅 하는 기본 작업 재부팅
  • 쉘을 시작하여 활성 쉘 프롬프트가 있는 사용자를 제공합니다.
  • 시스템을 중단하는 것을 중지합니다.
  • 시스템 전원을 끄 려면 전원 끄기

그림 7.4. 설정 필터링

Expert Settings

makedumpfile 코어 수집기에 전달되는 옵션을 사용자 지정하려면 Core 수집기 텍스트 필드를 편집합니다. 자세한 내용은 7.2.2.3절. “코어 수집기 구성” 을 참조하십시오.

7.2.3.5. 서비스 활성화

부팅 시 kdump 서비스를 시작하려면 도구 모음에서 Enable 버튼을 클릭한 다음 Apply 버튼을 클릭합니다. 이를 통해 multi-user.target 에 대한 서비스를 활성화 및 활성화합니다. Disable 버튼을 클릭하고 Apply 버튼을 클릭하여 서비스를 즉시 비활성화합니다.

중요

Red Hat Enterprise Linux 7에서 kdump 대상으로 정의된 디렉터리는 kdump systemd 서비스를 시작할 때 있어야 합니다. 그렇지 않으면 서비스가 실패합니다. 이 동작은 서비스를 시작할 때 존재하지 않는 경우 디렉터리가 자동으로 생성된 Red Hat Enterprise Linux의 이전 릴리스와 다릅니다.

systemd 대상 및 일반적인 서비스 구성에 대한 자세한 내용은 을 참조하십시오. Red Hat Enterprise Linux 7 System Administrator’s Guide.