10.8. 커널

v1 모드에서 net_prio 또는 net_cls 컨트롤러를 사용하면 cgroup-v2 계층 구조의 일부 컨트롤러가 비활성화됩니다.

cgroup-v2 환경에서는 v1 모드에서 net_prio 또는 net_cls 컨트롤러를 사용하면 소켓 데이터의 계층적 추적을 사용할 수 없습니다. 결과적으로 소켓 데이터 추적 컨트롤러의 cgroup-v2 계층 구조가 활성화되지 않고 dmesg 명령은 다음 메시지를 보고합니다.

cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation

(BZ#2046396)

Anaconda에서 암호화된 장치의 암호를 입력한 후 실패합니다.

설치를 준비하고 사용자가 암호화된 디스크 파티션을 선택할 때 kdump 가 비활성화되어 있는 경우, 암호화된 장치의 암호를 입력한 후 Anaconda 설치 프로그램이 역추적(backback)과 함께 실패합니다.

이 문제를 해결하려면 다음 중 하나를 수행합니다.

  • kdump 를 비활성화하기 전에 암호화된 디스크 파티션을 생성하십시오.
  • 설치 중에 kdump 를 활성화하고 설치 프로세스가 완료된 후 비활성화합니다.

(BZ#2086100)

동일한 크래시 확장을 다시 로드하면 세그먼트 오류가 발생할 수 있습니다.

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

충돌 확장 파일을 한 번만 로드하여 문제를 해결할 수 있습니다. 그 결과 설명된 시나리오에서는 세그먼트화 오류가 더 이상 발생하지 않습니다.

(BZ#1906482)

메모리 핫 플러그 연결 또는 연결 해제 작업 후 vmcore capture 실패

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

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

결과적으로 메모리 핫 플러그 또는 핫 플러그 해제 작업 후 커널 충돌이 발생하면 capture 커널은 vmcore 를 저장하지 않습니다.

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

# systemctl restart kdump.service

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

(BZ#1793389)

RHEL 8의 크래시 캡처 환경에서 디버그 커널이 부팅되지 않음

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

(BZ#1659609)

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

일부 Ampere Altra 시스템에서는 BIOS 설정에서 32비트 영역이 비활성화되면 부팅 중에 크래시 커널 메모리를 할당합니다. 결과적으로 kdump 서비스가 시작되지 않습니다. 이는 4GB 미만 리전의 메모리 조각화로 인해 크래시 커널 메모리를 포함하기에 충분한 조각이 없기 때문입니다.

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

  1. 시스템에서 BIOS 설정을 엽니다.
  2. Chipset 메뉴를 엽니다.
  3. Memory Configuration 에서 Slave 32bit 옵션을 활성화합니다.

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

(BZ#1940674)

kernel 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-0x31ffffff 메모리 리전에 액세스할 수 있으며 해당 메모리 영역을 PCI 향상된 Configuration Access Mechanism(ECAM)에 적절하게 할당할 수 있습니다. 다음 출력을 사용하여 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 region mem 0x30000000-0x31ffffff ffff" 를 참조하십시오.

(BZ#1868526)

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

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

(BZ#1609288)

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

특정 경우 HP NMI 워치독의 hpwdt 드라이버는 NMI가 대신 Perfmon 드라이버에서 사용했기 때문에 HPE 워치독 타이머에 의해 생성되는 비마스크럽 (NMI)을 요청할 수 없습니다.

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

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

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

그러나 누락된 NMI로 인해 커널 panic() 은 호출되지 않고 vmcore 가 수집되지 않습니다.

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

두 번째 경우 (2.)에서 누락된 NMI는 자동 시스템 복구(ASR)에서 재설정한 후 9초 후에 시작됩니다.

HPE Gen9 Server 라인은 한 자리 백분율로 이 문제를 경험하고 있습니다. 더 작은 빈도로는 Gen10입니다.

(BZ#1602962)

irqpoll 을 사용하면 vmcore 생성 실패

Amazon Web Services Graviton 1 프로세서에서 실행되는 64비트 ARM 아키텍처의 nvme 드라이버의 기존 문제로 인해 첫 번째 커널에 irqpoll kernel 명령줄 매개 변수를 제공할 때 vmcore generation이 실패합니다. 결과적으로 커널 충돌 시 /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 파일은 커널 충돌 시 캡처될 것으로 예상됩니다.

Amazon Web Services Graviton 2 및 Amazon Web Services Graviton 3 프로세서에서는 /etc/sysconfig/kdump 파일에서 irqpoll 매개변수를 수동으로 제거할 필요가 없습니다.

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

이 알려진 문제에 대한 관련 정보는 The irqpoll kernel command line parameter might cause vmcore generation failure 문서를 참조하십시오.

(BZ#1654962)

가상 머신에 가상 기능을 연결할 때 연결 실패

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

(BZ#1930576)

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

OPEN Message Passing Interface (OPEN MPI) 구현 4.0.x 시리즈에서 UCX(Unified Communication X)는 기본 PML(point-to-point communicator)입니다. 최신 버전의 OPEN MPI 4.0.x 시리즈는 더 이상 사용되지 않는 openib Definition Transfer Layer (BTL)입니다.

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

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

다음과 같습니다.

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

OPEN MPI는 이기종 클러스터(다른 하드웨어 및 소프트웨어 구성)를 통해 실행될 때 기본 PML으로 UCX를 사용합니다. 결과적으로 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 에서 또는 Solarflare sfboot 유틸리티를 사용하여 VF 또는 VF 6.7 인터럽트 값의 수를 더 낮은 값으로 조정할 수 있습니다. 기본 VF 6.7 인터럽트 값은 8 입니다.

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

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

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

(BZ#1971506)

64비트 ARM 아키텍처에서 kdump 의 메모리 할당이 실패합니다.

특정 64비트 ARM 기반 시스템에서 펌웨어는 비연속 메모리 할당 방법을 사용하여 서로 다른 디스퍼스 위치에 메모리를 무작위로 예약합니다. 결과적으로 메모리 블록을 연속으로 사용할 수 없기 때문에 크래시 커널은 kdump 메커니즘의 메모리 공간을 예약할 수 없습니다.

이 문제를 해결하려면 RHEL 8.8 이상에서 제공하는 커널 버전을 설치하십시오. RHEL의 최신 버전은 설명된 시나리오에서 적절한 메모리 영역을 찾는 데 도움이 되는 대체 덤프 캡처 메커니즘을 지원합니다.

(BZ#2214235)

코어가 큰 시스템에서 실시간 커널의 하드웨어 인증을 사용하려면 잠금 경합을 방지하기 위해 skew-tick=1 부팅 매개변수를 전달해야 할 수 있습니다.

다수의 소켓과 대규모 코어 개수가 있는 대규모 또는 중간 규모의 시스템은 시간 보관 시스템에 사용되는 xtime_lock 의 잠금 경합으로 인해 대기 시간이 급증할 수 있습니다. 결과적으로 멀티프로세싱 시스템에서 대기 시간이 급증하고 하드웨어 인증 지연이 발생할 수 있습니다. 이 문제를 해결하려면 skew_tick=1 부팅 매개변수를 추가하여 CPU당 타이머 눈금을 다른 시간에 시작할 수 있습니다.

잠금 충돌을 방지하려면 skew_tick=1 을 활성화합니다.

  1. grubby 를 사용하여 skew_tick=1 매개변수를 활성화합니다.

    # grubby --update-kernel=ALL --args="skew_tick=1"
  2. 변경 사항을 적용하려면 재부팅하십시오.
  3. cat /proc/cmdline 명령을 실행하여 새 설정을 확인합니다.

skew_tick=1 을 활성화하면 전력 소비가 크게 증가하므로 대기 시간에 민감한 실시간 워크로드를 실행하는 경우에만 활성화해야 합니다.

(BZ#2214508)