RHEL 9 for Real Time 설치


Red Hat Enterprise Linux for Real Time 9

Red Hat Enterprise Linux에 RHEL for Real Time 커널 설치

Red Hat Customer Content Services

초록

Red Hat Enterprise Linux에 RHEL for Real Time 커널을 설치하여 대기 시간을 단축하고 응답 시간을 예측할 수 있습니다. 실시간 커널을 설치하고 설치 후 작업을 수행하고 실시간, 주식 또는 부팅할 디버그 커널과 같은 커널 변형을 구성하는 방법을 알아봅니다.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (등록 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 모음에서 생성 을 클릭합니다.
  3. 요약 필드에 설명 제목을 입력합니다.
  4. 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. RHEL for Real Time 설치

많은 업계와 조직은 매우 높은 성능의 컴퓨팅을 필요로 하며 특히 금융 및 통신 업계에서는 짧고 예측 가능한 대기 시간이 필요할 수 있습니다. 대기 시간 또는 응답 시간은 이벤트와 시스템 응답 사이의 시간으로 정의되며 일반적으로 마이크로초(microseconds)로 측정됩니다.

Linux 환경에서 실행되는 대부분의 애플리케이션의 경우 기본 성능 튜닝을 통해 대기 시간을 충분히 개선할 수 있습니다. 대기 시간이 낮을 뿐만 아니라 책임이 높고 예측 가능한 업계의 경우 Red Hat은 이를 제공하는 '드레인' 커널 교체를 개발했습니다. RHEL for Real Time은 RHEL 9의 일부로 배포되며 RHEL 9와의 원활한 통합을 제공합니다. RHEL for Real Time은 고객에게 조직 내에서 대기 시간을 측정, 구성 및 기록할 수 있는 기회를 제공합니다.

주의

RHEL for Real Time을 설치하기 전에 기본 플랫폼이 올바르게 조정되고 시스템 BIOS 매개 변수가 조정되었는지 확인하십시오. 이러한 작업을 수행하지 않으면 RHEL Real Time 배포에서 일관된 성능을 얻지 못할 수 있습니다.

1.1. 대기 시간 최적화를 위한 RHEL for Real Time

RHEL for Real Time은 매우 높은 결정성이 높은 애플리케이션용 시스템에서 사용하도록 설계되었습니다. 커널 시스템 튜닝은 결정성이 크게 향상되었습니다.

예를 들어, 많은 워크로드에서 시스템 튜닝은 결과의 일관성이 약 90% 정도 향상됩니다. 따라서 RHEL for Real Time을 사용하기 전에 표준 RHEL의 시스템 튜닝을 먼저 수행하여 목표를 충족하는지 확인하는 것이 좋습니다.

실시간 커널을 사용할 때 시스템 튜닝은 표준 커널만큼이나 중요합니다. RHEL의 일부로 제공된 표준 커널을 실행하는 조정되지 않은 시스템에 Real Time 커널을 설치하면 큰 이점이 없습니다. 표준 커널을 튜닝하면 가능한 대기 시간 향상의 90%를 얻을 수 있습니다. 실시간 커널은 가장 어려운 워크로드에 필요한 대기 시간 감소의 마지막 10%를 제공합니다.

주의

실시간 커널 시스템을 튜닝하기 전에 기본 플랫폼이 올바르게 조정되고 시스템 BIOS 매개 변수가 조정되었는지 확인하십시오. 이러한 작업을 수행하지 않으면 RHEL Real Time 배포에서 일관된 성능을 얻지 못할 수 있습니다.

실시간 커널의 목표는 예측 가능한 응답 시간을 제공하는 일관되고 대기 시간이 짧은 결정성을 제공합니다. 실시간 커널과 관련된 몇 가지 추가 커널 오버헤드가 있습니다. 이는 주로 별도로 예약된 스레드에서 하드웨어 인터럽트를 처리하기 때문입니다. 일부 워크로드에서 오버헤드가 증가하면 전반적으로 처리량 성능이 저하됩니다. 정확한 양은 워크로드에 따라 달라지며, 범위는 0%에서 30% 사이입니다.

1.2. DNF를 사용하여 RHEL for Real Time 설치

dnf 를 사용하여 실시간 커널을 설치하는 것 외에도 Red Hat Enterprise Linux 다운로드 포털에서 Red Hat Enterprise Linux의 다른 모든 다운로드 구성 요소와 함께 다운로드할 수 있습니다. 버전 메뉴에서 적절한 버전을 선택합니다.

사전 요구 사항

  • 최신 버전의 RHEL 9는 AMD64 또는 Intel64 시스템에 설치됩니다. 실시간 커널은 Red Hat Enterprise Linux 실행을 위해 인증된 AMD64 및 Intel 64(x86_64라고도 함) 서버 플랫폼에서 실행됩니다.
  • 머신이 등록되었으며 RHEL은 RHEL for Real Time 서브스크립션에 연결되어 있습니다.
  • 기본 플랫폼이 올바르게 튜닝되고 시스템 BIOS 매개 변수가 조정되었는지 확인합니다.

    주의

    실시간 커널을 설치하기 전에 사전 요구 사항 작업을 수행하지 못하면 RHEL for Real Time 커널 배포의 일관된 성능을 방지할 수 있습니다.

절차

  1. RHEL for Real Time 리포지토리를 활성화합니다.

    # subscription-manager repos --enable rhel-9-for-x86_64-rt-rpms
    Copy to Clipboard Toggle word wrap
  2. RHEL for Real Time 패키지 그룹을 설치합니다.

    # dnf groupinstall RT
    Copy to Clipboard Toggle word wrap

    이 그룹은 여러 패키지를 설치합니다.

    • kernel-rt 에는 RHEL for Real Time 커널 패키지가 포함되어 있습니다.
    • kernel-rt-core 에는 코어 RHEL for Real Time 커널 패키지가 포함되어 있습니다.
    • kernel-rt-devel 에는 RHEL for Real Time 커널 개발 패키지가 포함되어 있습니다.
    • kernel-rt-modules 에는 RHEL for Real Time 커널 모듈 패키지가 포함되어 있습니다.
    • kernel-rt-modules-extra 에는 RHEL for Real Time 커널 추가 모듈 패키지가 포함되어 있습니다.
    • realtime-setup 은 RHEL for Real Time에 필요한 기본 환경을 설정합니다.
    • RHEL의 실시간 시스템 적합성을 평가합니다.
    • rteval-loadsrteval 로드에 대한 소스 코드를 제공합니다.
    • tuned-profiles-realtime 에는 실시간을 대상으로 하는 추가 TuneD 프로필이 포함되어 있습니다.
  3. 선택 사항: tuna 패키지에는 실시간 커널 워크로드를 조정하는 데 도움이 되는 툴이 포함되어 있으므로 명령줄 또는 GUI에서 CPU 격리 및 스레드 선호도 작업을 크게 자동화할 수 있습니다. 이 패키지는 기본 RHEL 9 리포지토리에서 사용할 수 있습니다.

    # dnf install tuna
    Copy to Clipboard Toggle word wrap
참고

RHEL for Real Time 커널이 설치되면 자동으로 기본 커널로 설정되고 다음 부팅 시 사용됩니다. 커널 ,kernel-debug 또는 kernel -rt-debug 와 같은 다른 기존 커널 변형을 기본 부팅 커널로 구성할 수도 있습니다. 자세한 내용은 kernel-rt를 기본 부팅 커널로 구성을 참조하십시오.

검증

  • 설치 위치를 확인하고 구성 요소가 성공적으로 설치되었는지 확인합니다.

    # rpm -ql realtime-setup
    /etc/security/limits.d/realtime.conf
    /etc/sysconfig/realtime-setup
    /etc/udev/rules.d/99-rhel-rt.rules
    /usr/bin/realtime-setup
    /usr/bin/rt-setup-kdump
    /usr/bin/slub_cpu_partial_off
    /usr/lib/.build-id
    /usr/lib/.build-id/a4
    /usr/lib/.build-id/a4/da77908aa4c6f048939f3267f1c552c456d117
    /usr/lib/systemd/system/rt-entsk.service
    /usr/lib/systemd/system/rt-setup.service
    /usr/sbin/kernel-is-rt
    /usr/sbin/rt-entsk
    Copy to Clipboard Toggle word wrap

1.3. RHEL for Real Time 리포지토리에서 사용 가능한 RPM 패키지

RHEL for Real Time 리포지토리용 RPM(Red Hat Package Manager)에는 다음과 같은 패키지가 포함되어 있습니다.

  • kernel-rt 패키지 - RHEL for Real Time 커널 패키지입니다.
  • RHEL for Real Time 커널 테스트 패키지에는 실시간 커널용 테스트 프로그램이 포함되어 있습니다.
  • RHEL for Real Time 디버깅 패키지 - 디버깅 및 코드 추적을 위한 패키지입니다.
Expand
표 1.1. 기본 RHEL for Real Time 커널 패키지
RPM 패키지 이름설명RT-specific필수 항목

kernel-rt

짧은 대기 시간 및 선점 기능

제공됨

제공됨

Expand
표 1.2. RHEL for Real Time 커널 테스트 패키지
RPM 패키지 이름설명RT-specific필수 항목

kernel-rt-devel

커널 개발을 위한 헤더 및 라이브러리

제공됨

없음

kernel-rt-debug

(낮음)에서 컴파일된 디버깅 기능을 사용하는 RHEL for Real Time 커널

제공됨

없음

kernel-rt-debug-devel

디버그 커널에서의 개발을 위한 헤더 및 라이브러리

제공됨

없음

realtime-tests

시스템 대기 시간을 측정하고 우선 순위 상속 뮤지션이 제대로 작동하는 것을 증명하기 위한 유틸리티

없음

없음

디버깅 패키지는 perf,trace-cmd크래시 유틸리티와 함께 커널 크래시 덤프를 분석하도록 제공됩니다. 디버깅 패키지에는 기호 테이블이 포함되어 있으며 매우 큽니다. 따라서 디버깅 패키지는 다른 RHEL for Real Time 패키지와 별도로 제공됩니다. RHEL for Real Time - Debug RPMs 리포지토리에서 디버깅 패키지를 다운로드할 수 있습니다.

Expand
표 1.3. 실시간 디버깅 패키지용 기본 RHEL
RPM 패키지 이름설명RT-specific필수 항목

kernel-rt-debuginfo

perf 또는 trace-cmd와 같은 프로파일링 및 디버깅 사용에 대한 기호

제공됨

없음

kernel-rt-debug-debuginfo

프로파일링 및 추적의 기호

제공됨

없음

1.4. 설치 후 지침

실시간 커널을 설치한 후 다음을 확인하십시오.

  • 대기 시간이 짧은 결정성을 최적화하려면 RHEL for Real Time 관련 시스템 튜닝을 수행합니다.
  • 실시간 커널과 표준 커널의 모듈 호환성에 대해 알고 있습니다.
  • kdump 를 활성화하려면 kexec/kdump 를 활성화하여 크래시 덤프 정보를 제공하도록 RHEL for Real Time을 구성해야 합니다.
  • 실시간 커널이 기본 커널인지 확인합니다.

실시간 커널 및 표준 커널의 모듈 호환성

실시간 커널은 표준 Red Hat Enterprise Linux 9 커널과 크게 다릅니다. 결과적으로 타사 커널 모듈이 RHEL for Real Time과 호환되지 않습니다.

커널 모듈은 기본적으로 빌드되는 커널에 고유합니다. 실시간 커널은 표준 커널과 크게 다르며 모듈도 마찬가지입니다. 따라서 Red Hat Enterprise Linux 9의 타사 모듈을 사용하여 실시간 커널에 있는 그대로 사용할 수 없습니다.

타사 모듈을 사용해야 하는 경우 RHEL for Real Time 헤더 파일을 사용하여 RHEL for Real Time 개발 및 테스트 패키지에서 사용할 수 있습니다.

표준 Red Hat Enterprise Linux 9용 타사 드라이버이지만 현재 RHEL for Real Time에 대한 사용자 지정 빌드는 없습니다.

  • EMC Powerpath
  • NVIDIA 그래픽
  • Qlogic의 고급 스토리지 어댑터 구성 유틸리티

사용자 공간 syscall 인터페이스는 RHEL for Real Time과 호환됩니다.

2장. 실행할 RHEL 커널 지정

부팅 중에 GRUB 메뉴에서 필요한 커널을 수동으로 선택하여 설치된 커널, 표준 또는 실시간을 부팅할 수 있습니다. 기본적으로 부팅하도록 커널을 구성할 수도 있습니다.

RHEL for Real Time 커널이 설치되면 자동으로 기본 커널로 설정되고 다음 부팅 시 사용됩니다.

2.1. 기본 커널 표시

기본적으로 부팅하도록 구성된 커널을 표시할 수 있습니다.

절차

  • 기본 커널을 보려면 다음을 수행합니다.

    # grubby --default-kernel
    
    /boot/vmlinuz-kernel-rt-5.14.0-70.13.1.rt21.83.el9_0
    Copy to Clipboard Toggle word wrap

    명령 출력의 rt 는 기본 커널이 실시간 커널임을 보여줍니다.

2.2. 실행 중인 커널 표시

현재 실행 중인 커널을 표시할 수 있습니다.

절차

  • 시스템이 현재 실행 중인 커널을 표시하려면 다음을 수행하십시오.

    ~]# uname -a
    Linux rt-server.example.com 4.18.0-80.rt9.138.el8.x86_64 …
    Copy to Clipboard Toggle word wrap
    참고

    시스템에서 마이너 업데이트(예: 8.3에서 8.4로)를 수신하면 기본 커널이 자동으로 실시간 커널에서 표준 커널로 변경될 수 있습니다.

2.3. kernel-rt를 기본 부팅 커널로 구성

새로 설치된 시스템에서 스톡 RHEL 커널 은 기본 부팅 커널로 설정되며 다음 부팅 및 후속 시스템 업데이트에서 기본 커널로 사용됩니다. 이 구성을 변경하고 kernel-rt 를 기본 커널로 설정하여 로 부팅하고 시스템 업데이트에서도 이 구성을 영구적으로 설정할 수 있습니다. kernel-rt 구성은 일회성 절차로, 필요한 경우 다른 커널로 변경하거나 되돌릴 수 있습니다. 커널 ,kernel-debug, kernel -rt-debug 와 같은 다른 기존 커널 변형을 기본 부팅 커널로 구성할 수도 있습니다.

절차

  1. kernel-rt 를 기본 부팅 커널로 구성하려면 다음 명령을 입력합니다.

    # grubby --set-default=<RT_VMLINUZ>
    Copy to Clipboard Toggle word wrap

    RT_VMLINUZ 는 kernel -rt 커널 과 연결된 vmlinux 파일의 이름입니다. 예를 들면 다음과 같습니다.

    # grubby --set-default=/boot/vmlinuz-5.14.0-284.11.1.rt14.296.el9_2.x86_64+rt
    Copy to Clipboard Toggle word wrap
  2. 시스템 업데이트에서 kernel-rt 를 기본 부팅 커널로 구성하려면 다음 명령을 입력합니다.

    # sed -i ‘s/UPDATEDEFAULT=.*/UPDATEDEFAULT=yes/g’/etc/sysconfig/kernel
    # sed -i 's/DEFAULTKERNEL=.*/DEFAULTKERNEL=kernel-rt-core/g'/etc/sysconfig/kernel
    Copy to Clipboard Toggle word wrap

    UPDATEDEFAULT 변수를 yes 로 지정하면 시스템 업데이트 시 기본 커널이 변경됩니다.

    예제 출력에서 기본 커널의 경로는 설치된 kernel-rt-core 패키지에 따라 다릅니다. rpm -q kernel-rt-core 명령을 사용하여 패키지에서 커널 경로를 확인할 수 있습니다.

    1. 선택 사항: 패키지에서 커널 경로를 결정해야 하는 경우 먼저 설치된 패키지를 나열합니다.

      # rpm -q kernel-rt-core
        kernel-rt-core-5.14.0-284.11.1.rt14.296.el9_2.x86_64
        kernel-rt-core-5.14.0-284.10.1.rt14.295.el9_2.x86_64
        kernel-rt-core-5.14.0-284.9.1.rt14.294.el9_2.x86_64
      Copy to Clipboard Toggle word wrap
    2. 설치된 최신 패키지를 기본값으로 사용하려면 다음 명령을 입력하여 해당 패키지에서 부팅 이미지의 경로를 찾습니다.

      # rpm -ql kernel-rt-core-5.14.0-284.11.1.rt14.296.el9_2.x86_64|grep‘^/boot/vmlinu’
      /boot/vmlinuz-5.14.0-284.11.1.rt14.296.el9_2.x86_64.x86_64+rt
      Copy to Clipboard Toggle word wrap
    3. kernel-rt 를 기본 부팅 커널로 구성하려면 다음 명령을 입력합니다.

      # grubby --set-default=/boot/vmlinuz-5.14.0-284.11.1.rt14.296.el9_2.x86_64.x86_64+rt
      Copy to Clipboard Toggle word wrap

검증

  • kernel-rt 가 기본 커널인지 확인하려면 다음 명령을 입력합니다.

    # grubby --default-kernel
    /boot/vmlinuz-5.14.0-284.11.1.rt14.296.el9_2.x86_64.x86_64+rt
    Copy to Clipboard Toggle word wrap

3장. kdump 설치

RHEL 9 설치의 새 버전에서 kdump 서비스가 기본적으로 설치 및 활성화됩니다.

3.1. kdump란 무엇입니까?

kdump 는 크래시 덤프 메커니즘을 제공하고 크래시 덤프 또는 vmcore 덤프 파일을 생성하는 서비스입니다. vmcore 에는 분석 및 문제 해결을 위한 시스템 메모리 내용이 포함됩니다. kdumpkexec 시스템 호출을 사용하여 두 번째 커널로 부팅하고 재부팅하지 않고 커널을 캡처합니다. 이 커널은 충돌한 커널 메모리의 내용을 캡처하여 파일에 저장합니다. 두 번째 커널은 시스템 메모리의 예약된 부분에서 사용할 수 있습니다.

중요

커널 크래시 덤프는 시스템 오류가 발생한 경우 사용 가능한 유일한 정보일 수 있습니다. 따라서 작업 kdump 는 미션 크리티컬 환경에서 중요합니다. Red Hat은 일반 커널 업데이트 주기에서 kexec-tools 를 정기적으로 업데이트하고 테스트하는 것이 좋습니다. 이는 새 커널 기능을 설치할 때 중요합니다.

머신에 여러 커널이 있는 경우 설치된 모든 커널 또는 지정된 커널에 대해 kdump 를 활성화할 수 있습니다. kdump 를 설치할 때 시스템은 기본 /etc/kdump.conf 파일을 생성합니다. /etc/kdump.conf 에는 kdump 구성을 사용자 지정하기 위해 편집할 수 있는 기본 최소 kdump 구성이 포함되어 있습니다.

3.2. Anaconda를 사용하여 kdump 설치

Anaconda 설치 프로그램은 대화형 설치 중에 kdump 구성에 대한 그래픽 인터페이스 화면을 제공합니다. kdump 를 활성화하고 필요한 메모리 양을 예약할 수 있습니다.

절차

  1. Anaconda 설치 프로그램에서 KDUMP 를 클릭하고 kdump 를 활성화합니다.
  2. Kdump 메모리 예약 에서 메모리 예약을 사용자 지정해야 하는 경우 Manual'을 선택합니다.
  3. KDUMP > Memory to be Reserved(MB) 에서 kdump 에 필요한 메모리 예약을 설정합니다.

    = 명령줄에 kdump 설치

사용자 지정 Kickstart 설치와 같은 설치 옵션은 경우에 따라 기본적으로 kdump 를 설치하거나 활성화 하지 않습니다. 다음 절차에서는 이 경우 kdump 를 활성화하는 데 도움이 됩니다.

사전 요구 사항

  • 활성 RHEL 서브스크립션입니다.
  • 시스템 CPU 아키텍처용 kexec-tools 패키지가 포함된 리포지토리입니다.
  • kdump 구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.

절차

  1. kdump 가 시스템에 설치되어 있는지 확인합니다.

    # rpm -q kexec-tools
    Copy to Clipboard Toggle word wrap

    패키지가 설치된 경우 출력됩니다.

    # kexec-tools-2.0.22-13.el9.x86_64
    Copy to Clipboard Toggle word wrap

    패키지가 설치되지 않은 경우 출력됩니다.

    package kexec-tools is not installed
    Copy to Clipboard Toggle word wrap
  2. kdump 및 기타 필수 패키지를 설치합니다.

    # dnf install kexec-tools
    Copy to Clipboard Toggle word wrap

4장. 명령줄에서 kdump 구성

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

4.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 명령은 필요한 메모리를 페이지에 보고합니다. 즉, 커널 페이지 크기에 대해 사용 중인 메모리 크기를 계산해야 합니다.

4.2. RHEL 9에서 kdump 메모리 사용량 구성

kexec-tools 패키지는 기본 crashkernel= 메모리 예약 값을 유지 관리합니다. kdump 서비스는 기본값을 사용하여 각 커널에 대해 크래시 커널 메모리를 예약합니다. 기본값은 crashkernel= 값을 수동으로 설정할 때 필요한 메모리 크기를 추정하는 참조 기본 값으로도 사용할 수 있습니다. 크래시 커널의 최소 크기는 하드웨어 및 머신 사양에 따라 다를 수 있습니다.

kdump 의 자동 메모리 할당은 시스템 하드웨어 아키텍처 및 사용 가능한 메모리 크기에 따라 다릅니다. 예를 들어 AMD64 및 Intel 64비트 아키텍처에서는 사용 가능한 메모리가 1GB를 초과하는 경우에만 crashkernel= 매개변수의 기본값이 작동합니다. kexec-tools 유틸리티는 AMD64 및 Intel 64비트 아키텍처에 다음과 같은 기본 메모리를 구성합니다.

crashkernel=1G-4G:192M,4G-64G:256M,64G:512M
Copy to Clipboard Toggle word wrap

kdumpctl 추정치를 실행하여 충돌을 트리거하지 않고 대략적인 값을 얻을 수도 있습니다. 추정된 crashkernel= 값은 정확히 일치하지 않을 수 있지만 적절한 crashkernel= 값을 설정하는 참조 역할을 할 수 있습니다.

참고

부팅 명령줄의 crashkernel=auto 옵션은 RHEL 9 이상 릴리스에서 더 이상 지원되지 않습니다.

사전 요구 사항

  • 시스템에 대한 root 권한이 있습니다.
  • 구성 및 대상에 대한 kdump 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.
  • zipl 유틸리티가 IBM Z 시스템인 경우 설치했습니다.

절차

  1. 크래시 커널의 기본값을 구성합니다.

    # kdumpctl reset-crashkernel --kernel=ALL
    Copy to Clipboard Toggle word wrap

    crashkernel= 값을 구성할 때 kdump 가 활성화된 시스템을 재부팅하여 구성을 테스트합니다. kdump 커널이 부팅되지 않으면 메모리 크기를 점진적으로 늘려 허용 가능한 값을 설정합니다.

  2. 사용자 지정 crashkernel= 값을 사용하려면 다음을 수행합니다.

    1. 필요한 메모리 예약을 구성합니다.

      crashkernel=192M
      Copy to Clipboard Toggle word wrap

      선택적으로 crashkernel= <range1>:<size1>,<range2>:<size2>:<size2 > 구문을 사용하여 설치된 총 메모리 양에 따라 예약된 메모리 양을 변수로 설정할 수 있습니다. 예를 들면 다음과 같습니다.

      crashkernel=1G-4G:192M,2G-64G:256M
      Copy to Clipboard Toggle word wrap

      이 예제에서는 총 시스템 메모리 양이 1GB 이상이고 4GB보다 낮은 경우 192MB의 메모리를 예약합니다. 총 메모리 양이 4GB를 초과하면 kdump 용으로 256MB가 예약되어 있습니다.

    2. 선택 사항: 예약된 메모리를 끕니다.

      일부 시스템은 crashkernel 예약이 매우 초기이므로 특정 고정 오프셋이 있는 메모리를 예약해야 하며 특수 사용을 위해 일부 영역을 예약하려고 합니다. 오프셋이 설정되면 예약된 메모리가 여기에서 시작됩니다. 예약된 메모리를 오프셋하려면 다음 구문을 사용합니다.

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

      이 예제에서는 16MB(실제 주소 0x01000000)부터 192MB의 메모리를 예약합니다. 0으로 오프셋하거나 값을 지정하지 않으면 kdump 에서 예약된 메모리를 자동으로 오프셋합니다. 오프셋을 마지막 값으로 지정하여 변수 메모리 예약을 설정할 때 메모리를 오프셋할 수도 있습니다. 예를 들어 crashkernel=1G-4G:192M,2G-64G:256M@16M.

    3. 부트 로더 구성을 업데이트합니다.

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

      & lt;custom-value >에는 크래시 커널에 대해 구성한 사용자 정의 crashkernel= 값이 포함되어야 합니다.

  3. 변경 사항을 적용하려면 재부팅하십시오.

    # reboot
    Copy to Clipboard Toggle word wrap
검증

kdump 구성을 테스트하는 명령으로 인해 커널이 데이터 손실과 충돌합니다. 주의해서 지침을 따르십시오. kdump 설정을 테스트하기 위해 활성 프로덕션 시스템을 사용해서는 안 됩니다.

sysrq 키를 활성화하여 커널이 충돌하도록 합니다. address-YYY-MM-DD-HH:MM:SS/vmcore 파일은 /etc/kdump.conf 파일에 지정된 대로 대상 위치에 저장됩니다. 기본 대상 위치를 선택하면 vmcore 파일은 /var/crash/ 에 마운트된 파티션에 저장됩니다.

  1. kdump 커널에 부팅하려면 sysrq 키를 활성화합니다.

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

    명령을 사용하면 커널이 충돌하고 필요한 경우 커널이 다시 부팅됩니다.

  2. /etc/kdump.conf 파일을 표시하고 vmcore 파일이 대상 대상에 저장되는지 확인합니다.

4.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 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
      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

4.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

4.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

4.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

4.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/ 입니다.

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

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

kdump 에 의해 생성된 파일:

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

4.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.

4.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

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

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

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

권장되는 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= 값을 늘립니다.

5장. kdump 활성화

RHEL 9 시스템의 경우 특정 커널 또는 설치된 모든 커널에서 kdump 기능 활성화 또는 비활성화를 구성할 수 있습니다. 그러나 kdump 기능을 정기적으로 테스트하고 작동 상태를 검증해야 합니다.

5.1. 설치된 모든 커널에 kdump 활성화

kdump 서비스는 kexec 툴이 설치된 후 kdump.service 를 활성화하여 시작합니다. 머신에 설치된 모든 커널에 대해 kdump 서비스를 활성화하고 시작할 수 있습니다.

사전 요구 사항

  • 관리자 권한이 있습니다.

절차

  1. 설치된 모든 커널에 crashkernel= 명령줄 매개변수를 추가합니다.

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

    XXM 은 필요한 메모리(MB)입니다.

  2. 시스템을 재부팅합니다.

    # reboot
    Copy to Clipboard Toggle word wrap
  3. kdump 서비스를 활성화합니다.

    # systemctl enable --now kdump.service
    Copy to Clipboard Toggle word wrap

검증

  • kdump 서비스가 실행 중인지 확인합니다.

    # systemctl status kdump.service
    
    ○ kdump.service - Crash recovery kernel arming
         Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: disabled)
         Active: active (live)
    Copy to Clipboard Toggle word wrap

5.2. 설치된 특정 커널에 대해 kdump 활성화

머신에서 특정 커널에 대해 kdump 서비스를 활성화할 수 있습니다.

사전 요구 사항

  • 관리자 권한이 있습니다.

절차

  1. 시스템에 설치된 커널을 나열합니다.

    # ls -a /boot/vmlinuz-*
    /boot/vmlinuz-0-rescue-2930657cd0dc43c2b75db480e5e5b4a9
    /boot/vmlinuz-4.18.0-330.el8.x86_64
    /boot/vmlinuz-4.18.0-330.rt7.111.el8.x86_64
    Copy to Clipboard Toggle word wrap
  2. 시스템의 GRUB(GRUB) 설정에 특정 kdump 커널을 추가합니다.

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

    # grubby --update-kernel=vmlinuz-4.18.0-330.el8.x86_64 --args="crashkernel=xxM"
    Copy to Clipboard Toggle word wrap

    XXM 은 필요한 메모리 예약(MB)입니다.

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

    # systemctl enable --now kdump.service
    Copy to Clipboard Toggle word wrap

검증

  • kdump 서비스가 실행 중인지 확인합니다.

    # systemctl status kdump.service
    
    ○ kdump.service - Crash recovery kernel arming
         Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: disabled)
         Active: active (live)
    Copy to Clipboard Toggle word wrap

5.3. kdump 서비스 비활성화

kdump.service 를 중지하고 RHEL 9 시스템에서 서비스가 시작되지 않도록 비활성화할 수 있습니다.

사전 요구 사항

  • kdump 구성 및 대상에 대한 요구 사항을 충족했습니다. 자세한 내용은 지원되는 kdump 구성 및 대상 을 참조하십시오.
  • kdump 설치에 대한 모든 구성은 필요에 따라 설정됩니다. 자세한 내용은 kdump 설치를 참조하십시오.

절차

  1. 현재 세션에서 kdump 서비스를 중지하려면 다음을 수행합니다.

    # systemctl stop kdump.service
    Copy to Clipboard Toggle word wrap
  2. 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.

6장. RHEL for Real Time 버그 진단

RHEL for Real Time 또는 표준 커널인 커널을 식별하면 문제가 더 빨리 수정될 가능성이 높아집니다. 절차 단계를 수행하여 버그 보고서를 제출하기 전에 문제의 원인을 진단할 수 있습니다.

사전 요구 사항

  • 최신 버전의 RHEL for Real Time 커널이 설치됩니다.

절차

  1. 최신 버전의 RHEL for Real Time 커널이 있는지 확인합니다.
  2. GRUB 메뉴를 사용하여 RHEL for Real Time 커널로 부팅합니다.
  3. 문제가 발생하면 RHEL for Real Time에 대한 버그를 보고합니다.
  4. 표준 커널에서 문제를 재현하십시오.

    이 문제 해결 단계에서는 문제 위치를 식별하는 데 도움이 됩니다.

참고

표준 커널에서 문제가 발생하지 않으면 RHEL for Real Time 관련 개선 사항이 추가된 변경으로 인해 Red Hat이 기준 (4.18.0) 커널 상단에 적용했을 가능성이 큽니다.

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동