Menu Close

10.8. 커널

동일한 크래시 확장자를 다시 로드하면 분할 오류가 발생할 수 있습니다.

이미 로드된 크래시 확장자 파일의 사본을 로드하면 분할 오류가 발생할 수 있습니다. 현재 crash 유틸리티는 원본 파일이 로드되었는지 감지합니다. 결과적으로 crash 유틸리티에 공존하는 두 개의 파일이 동일하므로 네임스페이스 충돌이 발생하여 crash 유틸리티가 트리거되어 세그먼트화 오류가 발생합니다.

crash 확장자 파일을 한 번만 로드하여 문제를 해결할 수 있습니다. 따라서 설명된 시나리오에서 분할 오류가 더 이상 발생하지 않습니다.

(BZ#1906482)

메모리 핫플러그 또는 언플러그 작업 후 vmcore 캡처가 실패합니다.

메모리 핫플러그 또는 핫 플러그 해제 작업을 수행한 후에는 메모리 레이아웃 정보가 포함된 장치 트리를 업데이트한 후 이벤트가 제공됩니다. 따라서 makedumpfile 유틸리티는 존재하지 않는 실제 주소에 액세스를 시도합니다. 다음 모든 조건이 충족되면 문제가 표시됩니다.

  • RHEL 8을 실행하는 IBM Power System의 little-endian 변형.
  • kdump 또는 fadump 서비스가 시스템에서 활성화됩니다.

결과적으로 메모리 핫플러그 또는 핫 플러그 작업 후에 커널 충돌이 트리거되면 캡처 커널이 vmcore 를 저장하지 못합니다.

이 문제를 해결하려면 핫 플러그 또는 핫 플러그 후 kdump 서비스를 다시 시작하십시오.

# systemctl restart kdump.service

결과적으로 설명된 시나리오에 vmcore 가 성공적으로 저장됩니다.

(BZ#1793389)

RHEL 8의 크래시 캡처 환경에서 커널을 부팅하지 못했습니다.

디버그 커널의 메모리 집약적인 특성으로 인해 디버그 커널이 사용 중이고 커널 패닉이 트리거되면 문제가 발생합니다. 결과적으로 디버그 커널은 캡처 커널로 부팅할 수 없으며 대신 스택 추적이 생성됩니다. 이 문제를 해결하려면 필요에 따라 크래시 커널 메모리를 늘립니다. 결과적으로 디버그 커널이 크래시 캡처 환경에서 성공적으로 부팅됩니다.

(BZ#1659609)

부팅 시 크래시 커널 메모리 할당 실패

특정 Ampere Altra 시스템에서 BIOS 설정에서 32비트 지역이 비활성화되면 부팅 중에 크래시 커널 메모리를 할당하지 못합니다. 결과적으로 kdump 서비스가 시작되지 않습니다. 이는 4GB 미만의 영역에서 메모리 조각화로 발생하며 크래시 커널 메모리를 포함할 만큼 조각이 크지 않습니다.

이 문제를 해결하려면 다음과 같이 BIOS에서 32비트 메모리 영역을 활성화합니다.

  1. 시스템에서 BIOS 설정을 엽니다.
  2. 설정 메뉴 엽니다.
  3. Memory Configuration(메모리 구성) 에서 Slave 32비트 옵션을 활성화합니다.

결과적으로 32비트 지역 내의 커널 메모리 할당 충돌이 성공하고 kdump 서비스가 예상대로 작동합니다.

(BZ#1940674)

기본 크래시 커널 메모리를 사용하는 일부 KVM 가상 머신에서 kdump가 실패합니다

kdump 의 기본 메모리 양을 사용하여 커널 크래시 덤프를 캡처할 때 일부 KVM 가상 머신 kdump 가 실패합니다. 결과적으로 크래시 커널은 다음 오류를 표시합니다.

/bin/sh: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory

이 문제를 해결하려면 kdump의 크기 요구 사항에 맞게 최소 32M까지 crashkernel= 옵션을 늘립니다. 예를 들어 최종 값은 현재 값과 32M의 합계여야 합니다.

crashkernel=auto 매개변수의 경우:

  1. 현재 메모리 크기를 확인하고 다음과 같이 32M만큼 크기를 늘립니다.

    echo $(($(cat /sys/kernel/kexec_crash_size)/1048576+32))M
  2. kernel crashkernel 매개 변수를 crashkernel=x 로 구성합니다. 여기서 x 는 증가 크기입니다.

(BZ#2004000)

QAT 관리자는 LKCF에 대한 예비 장치를 남겨 두지 않습니다.

Intel®QAT(QuickAssist Technology) 관리자(qatmgr)는 기본적으로 시스템의 모든 QAT 장치를 사용하는 사용자 공간 프로세스입니다. 그 결과 LKCF(Linux Kernel Cryptographic Framework)에 사용할 QAT 장치가 남아 있지 않습니다. 이 상황에서는 이 동작을 할 필요가 없으며 대부분의 사용자가 사용자 공간에서 가속화를 사용할 수 있습니다.

(BZ#1920086)

커널 ACPI 드라이버는 PCIe ECAM 메모리 리전에 액세스할 수 없음을 보고합니다.

펌웨어에서 제공하는 ACPI(Advanced Configuration and Power Interface) 표는 PCI 버스 장치의 현재 리소스 설정(_CRS) 방법의 PCI 버스에서 메모리 영역을 정의하지 않습니다. 결과적으로 시스템 부팅 중에 다음 경고 메시지가 발생합니다.

[    2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace
[    2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]

그러나 커널이 0x30000000-0x31ffff 메모리 영역에 계속 액세스할 수 있으며 해당 메모리 지역을 PCI ECAM(Enhanced Configuration Access Mechanism)에 올바르게 할당할 수 있습니다. 다음 출력으로 256바이트 오프셋을 통해 PCIe 구성 공간에 액세스하여 PCI ECAM이 올바르게 작동하는지 확인할 수 있습니다.

03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express])
 ...
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us

결과적으로 경고 메시지를 무시할 수 있습니다.

문제에 대한 자세한 내용은 "Firmware Bug를 참조하십시오. ECAM 영역 mem 0x30000000-0x31ffffffffffff ff in ACPI namespace"는 시스템 부팅 솔루션 중에 표시됩니다.

(BZ#1868526)

tuned-adm profile powersave 명령을 사용하면 시스템이 응답하지 않습니다.

tuned-adm profile powersave 명령을 실행하면 이전 Thunderx(CN88x) 프로세서가 있는 Penguin Valkymaster 2000 2소켓 시스템이 응답하지 않는 상태가 됩니다. 그 결과 시스템을 재부팅하여 작동을 재개합니다. 이 문제를 해결하려면 시스템에서 언급된 사양과 일치하는 경우 powersave 프로필을 사용하지 마십시오.

(BZ#1609288)

irqpoll 을 사용하면 vmcore 생성에 실패합니다.

AWS(Amazon Web Services) 클라우드 플랫폼에서 실행되는 64비트 ARM 아키텍처의 nvme 드라이버에 대한 기존 문제로 인해 첫 번째 커널에 irqpoll 커널 명령줄 매개 변수를 제공할 때 vmcore 생성이 실패합니다. 결과적으로 커널 충돌 시 /var/crash/ 디렉토리에 vmcore 파일이 덤프되지 않습니다. 이 문제를 해결하려면 다음을 수행합니다.

  1. /etc/sysconfig/kdump 파일에 irqpollKDUMP_COMMANDLINE_REMOVE 에 추가합니다.

    KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
  2. /etc/sysconfig/kdump 파일의 KDUMP_COMMANDLINE_APPEND 에서 irqpoll 을 제거합니다.

    KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
  3. kdump 서비스를 다시 시작하십시오.

    systemctl restart kdump

결과적으로 첫 번째 커널이 올바르게 부팅되고 vmcore 파일이 커널 충돌 시 캡처될 것으로 예상됩니다.

kdump 서비스는 상당한 양의 크래시 커널 메모리를 사용하여 vmcore 파일을 덤프할 수 있습니다. 캡처 커널에 kdump 서비스에 사용할 수 있는 메모리가 충분한지 확인합니다.

이 알려진 문제에 대한 관련 정보는 irqpoll 커널 명령줄 매개 변수에서 vmcore 생성 실패 문서를 참조하십시오.

(BZ#1654962)

HP NMI 워치독이 항상 크래시 덤프를 생성하지는 않음

경우에 따라 HP NMI 워치독의 hpwdt 드라이버는 perfmon 드라이버에서 NMI(maskable interrupt)를 사용했기 때문에 HPE 워치독 타이머에서 생성한 NMI(NMI)를 요청할 수 없습니다.

누락된 NMI는 다음 두 가지 조건 중 하나로 시작됩니다.

  1. iLO(Integrated Lights-Out) 서버 관리 소프트웨어에서 Generate NMI 버튼. 이 버튼은 사용자가 트리거합니다.
  2. hpwdt watchdog. 만료는 기본적으로 서버로 NMI를 보냅니다.

두 시퀀스 모두 시스템이 응답하지 않는 경우 일반적으로 발생합니다. 정상적인 상황에서 이러한 두 상황에 대한 NMI 핸들러는 커널 panic() 함수를 호출하고 구성된 경우 kdump 서비스에서 vmcore 파일을 생성합니다.

그러나 누락된 NMI로 인해 kernel panic() 은 호출되지 않으며 vmcore 는 수집되지 않습니다.

첫 번째 사례(1.)에서 시스템이 응답하지 않은 경우 그대로 유지됩니다. 이 시나리오를 수행하려면 virtual Power(가상 전원 ) 버튼을 사용하여 서버를 재설정하거나 전원을 켭니다.

두 번째 경우(2.) 누락된 NMI는 AAS(Automated System Recovery)에서 9초 후에 재설정됩니다.

HPE Gen9 Server 라인은 이 문제를 한 자리 숫자 비율로 경험합니다. Gen10은 훨씬 더 작은 빈도입니다.

(BZ#1602962)

가상 머신에 가상 기능을 연결할 때 연결이 실패합니다

an ionic 장치 드라이버를 사용하는 Pensando 네트워크 카드는 VLAN 태그 구성 요청을 자동으로 수락하고VF(네트워크 가상 기능)를VM(가상 시스템)에 연결하는 동안 네트워크 연결을 구성합니다. 이 기능은 카드 펌웨어에서 아직 지원하지 않으므로 이러한 네트워크 연결이 실패합니다.

(BZ#1930576)

OPEN MPI 라이브러리는 기본 PML을 사용하여 런타임 오류를 트리거할 수 있습니다.

OPEN MPI(Open Message Passing Interface) 구현 4.0.x 시리즈에서 UKX(Unified Communication X)는 기본 PML(Point-to-Point Communicator)입니다. 최신 버전의 OPEN MPI 4.0.x 시리즈의 경우 openib Byte Transfer Layer(BTL)가 더 이상 사용되지 않습니다.

그러나 동일 하드웨어 및 소프트웨어 구성 ( 동일한 하드웨어 및 소프트웨어 구성)을 통해 실행되는 경우, UCX는 여전히 MPI 단면 작업에 openib BTL을 사용합니다. 결과적으로 실행 오류가 발생할 수 있습니다. 이 문제를 해결하려면 다음을 수행합니다.

  • 다음 매개변수를 사용하여 mpirun 명령을 실행합니다.
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0

다음과 같습니다.

  • m ca btl openib 매개 변수는 openib BTL을 비활성화합니다.
  • m ca pml ucx 매개 변수는 OPEN MPI를 구성하여 PM L을 사용합니다.
  • x UCX_NET_DEVICES= 매개변수는 지정된 장치를 사용하도록 UCX를 제한합니다.

OPEN MPI는 이기종 클러스터(다양한 하드웨어 및 소프트웨어 구성)를 통해 실행할 때 UCX를 기본 PML으로 사용합니다. 결과적으로 OPEN MPI 작업이 잘못된 성능, 응답 없는 동작 또는 크래시 오류로 실행될 수 있습니다. 이 문제를 해결하려면 UCX 우선 순위를 다음과 같이 설정합니다.

  • 다음 매개변수를 사용하여 mpirun 명령을 실행합니다.
-mca pml_ucx_priority 5

결과적으로 OPEN MPI 라이브러리는 UCX를 통해 사용 가능한 대체 전송 계층을 선택할 수 있습니다.

(BZ#1866402)

Solarflare는 최대 VF(가상 기능)를 생성하지 못합니다.

Solarflare NIC는 리소스가 부족하여 최대 VF 수를 생성하지 못합니다. PCIe 장치가 /sys/bus/pci/devices/PCI_ID/sriov_totalvfs 파일에 생성할 수 있는 최대 VF 수를 확인할 수 있습니다. 이 문제를 해결하려면 시작 시 Solarflare Boot Manager에서 VF 수 또는 VF MSI 인터럽트 값을 더 낮은 값으로 조정하거나 Solarflare sfboot 유틸리티를 사용할 수 있습니다. 기본 VF MSI 인터럽트 값은 8 입니다.

  • sfboot 를 사용하여 VF MSI 인터럽트 값을 조정하려면 다음을 수행합니다.
# sfboot vf-msix-limit=2
참고

VF MSI 인터럽트 값 조정은 VF 성능에 영향을 미칩니다.

그에 따라 조정할 매개변수에 대한 자세한 내용은 Solarflare Server Adapter 사용자 가이드를 참조하십시오.

(BZ#1971506)