검색

11.7. 커널

download PDF

커널의 kdump 메커니즘으로 인해 64K 커널에서 OOM 오류가 발생합니다.

64비트 ARM 아키텍처의 64K 커널 페이지 크기는 4KB 커널보다 많은 메모리를 사용합니다. 결과적으로 kdump 는 커널 패닉 상태가 발생하고 메모리 할당이 OOM(메모리 부족) 오류로 인해 실패합니다. 작업을 수행하는 경우 crashkernel 값을 640MB로 수동으로 구성합니다. 예를 들어 crashkernel= 매개변수를 crashkernel=2G- :640M 으로 설정합니다.

그 결과 설명된 시나리오의 64K 커널에서 kdump 메커니즘이 실패하지 않습니다.

Bugzilla:2160676

커널 페이지 크기에 종속된 고객 애플리케이션은 4k에서 64k 페이지 크기 커널로 이동할 때 업데이트해야 할 수 있습니다.

RHEL은 4k 및 64k 페이지 크기 커널과 호환됩니다. 4k 커널 페이지 크기에 종속 항목이 있는 고객 애플리케이션은 4k에서 64k 페이지 크기 커널로 이동할 때 업데이트해야 할 수 있습니다. 알려진 인스턴스에는 jemalloc 및 종속 애플리케이션이 포함됩니다.

jemalloc 메모리 할당기 라이브러리는 시스템의 런타임 환경에서 사용되는 페이지 크기에 민감합니다. 라이브러리를 빌드하여 4k 및 64k 페이지 크기 커널과 호환되도록 빌드할 수 있습니다. 예를 들어 --with-lg-page=16 또는 env JEMALLOC_SYS_WITH_LG_PAGE=16 (Jemal locator Rust crate의 경우)으로 구성할 수 있습니다. 결과적으로 런타임 환경의 페이지 크기와 jemalloc 에 의존하는 바이너리를 컴파일할 때 존재하는 페이지 크기 사이에 불일치가 발생할 수 있습니다. 결과적으로 jemalloc기반 애플리케이션을 사용하면 다음 오류가 트리거됩니다.

<jemalloc>: Unsupported system page size

이 문제를 방지하려면 다음 방법 중 하나를 사용하십시오.

  • 적절한 빌드 구성 또는 환경 옵션을 사용하여 4k 및 64k 페이지 크기 호환 바이너리를 생성합니다.
  • 최종 64k 커널 및 런타임 환경으로 부팅한 후 jemalloc 을 사용하는 사용자 공간 패키지를 빌드합니다.

예를 들어 jemalloc 을 사용하여 Rust 패키지 관리자와 함께 fd-find 도구를 빌드할 수 있습니다. 마지막 64k 환경에서 모든 종속 항목의 새 빌드를 트리거하여 hugepages 명령을 입력하여 페이지 크기의 불일치를 확인합니다.

# cargo install fd-find --force

Bugzilla:2167783

kdump 서비스가 IBM Z 시스템에서 initrd 파일을 빌드하지 못했습니다.

64비트 IBM Z 시스템에서 znet 관련 설정 정보가 비활성 NetworkManager 연결 프로필에 있는 경우 kdump 서비스는 초기 RAM 디스크(initrd)를 로드하지 못합니다. 결과적으로 kdump 메커니즘이 다음 오류와 함께 실패합니다.

dracut: Failed to set up znet
kdump: mkdumprd: failed to make kdump initrd

해결 방법으로 다음 솔루션 중 하나를 사용하십시오.

  • znet 구성 정보가 있는 연결 프로필을 다시 사용하여 네트워크 본딩 또는 브리지를 구성합니다.

    $ nmcli connection modify enc600 master bond0 slave-type bond
  • 비활성 연결 프로필의 znet 구성 정보를 활성 연결 프로필에 복사합니다.

    1. nmcli 명령을 실행하여 NetworkManager 연결 프로필을 쿼리합니다.

      # nmcli connection show
      
      NAME                       UUID               TYPE   Device
      
      bridge-br0           ed391a43-bdea-4170-b8a2 bridge   br0
      bridge-slave-enc600  caf7f770-1e55-4126-a2f4 ethernet enc600
      enc600               bc293b8d-ef1e-45f6-bad1 ethernet --
    2. 비활성 연결의 구성 정보로 활성 프로필을 업데이트합니다.

      #!/bin/bash
       inactive_connection=enc600
       active_connection=bridge-slave-enc600
       for name in nettype subchannels options; do
       field=802-3-ethernet.s390-$name
       val=$(nmcli --get-values "$field"connection show "$inactive_connection")
       nmcli connection modify "$active_connection" "$field" $val"
       done
    3. 변경 사항을 적용하려면 kdump 서비스를 다시 시작하십시오.

      # kdumpctl restart

Bugzilla:2064708

kTLS는 TLS 1.3을 NIC로 오프로드하는 것을 지원하지 않습니다.

kTLS(커널 전송 계층 보안)는 TLS 1.3을 NIC로 오프로드하는 것을 지원하지 않습니다. 결과적으로 NIC가 TLS 오프로드를 지원하는 경우에도 소프트웨어 암호화는 TLS 1.3과 함께 사용됩니다. 이 문제를 해결하려면 오프로드가 필요한 경우 TLS 1.3을 비활성화합니다. 따라서 TLS 1.2만 오프로드할 수 있습니다. TLS 1.3을 사용 중인 경우 TLS 1.3을 오프로드할 수 없기 때문에 성능이 저하됩니다.

Bugzilla:2000616

지연 계정 기능이 기본적으로 SWAPINIO% 통계 열을 표시하지 않습니다.

초기 버전과 달리 지연된 계정 기능은 기본적으로 비활성화되어 있습니다. 결과적으로 iotop 애플리케이션에 SWAPINIO% 통계 열이 표시되지 않고 다음 경고가 표시됩니다.

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%

taskstats 인터페이스를 사용하는 지연 계정 기능은 스레드 그룹에 속하는 모든 작업 또는 스레드에 대한 지연 통계를 제공합니다. 작업 실행 지연은 커널 리소스가 사용 가능할 때까지 기다릴 때 지연됩니다(예: 사용 가능한 CPU가 실행될 때까지 대기 중인 작업). 통계는 작업의 CPU 우선 순위, I/O 우선 순위 및 rss 제한 값을 적절하게 설정하는 데 도움이 됩니다.

이 문제를 해결하려면 런타임 또는 부팅 시 delayacct 부팅 옵션을 활성화할 수 있습니다.

  • 런타임에 delayacct 를 활성화하려면 다음을 입력합니다.

    echo 1 > /proc/sys/kernel/task_delayacct

    이 명령은 기능 시스템 전체에 적용되지만 이 명령을 실행한 후 시작하는 작업에 대해서만 사용할 수 있습니다.

  • 부팅 시 지연을 영구적으로 활성화하려면 다음 절차 중 하나를 사용하십시오.

결과적으로 iotop 애플리케이션에 SWAPINIO% 통계 열이 표시됩니다.

Bugzilla:2132480

kdump 메커니즘이 LUKS 암호화 대상에서 vmcore 파일을 캡처하지 못했습니다.

Linux Unified Key Setup (LUKS) 암호화 파티션이 있는 시스템에서 kdump 를 실행하는 경우 시스템에 특정 양의 사용 가능한 메모리가 필요합니다. 사용 가능한 메모리가 필요한 메모리 양보다 작으면 systemd-cryptsetup 서비스가 파티션을 마운트하지 못합니다. 결과적으로 두 번째 커널은 LUKS 암호화 대상에서 크래시 덤프 파일(vmcore)을 캡처하지 못합니다.

kdumpctl estimate 명령을 사용하면 kdump 에 필요한 권장 메모리 크기인 권장 crashkernel 값을 쿼리할 수 있습니다.

이 문제를 해결하려면 다음 단계를 사용하여 LUKS 암호화된 대상에서 kdump 에 필요한 메모리를 설정합니다.

  1. 예상 crashkernel 값을 출력합니다.

    # kdumpctl estimate
  2. crashkernel 값을 늘려 필요한 메모리 양을 구성합니다.

    # grubby --args=crashkernel=652M --update-kernel=ALL
  3. 변경 사항을 적용하려면 시스템을 재부팅합니다.

    # reboot

결과적으로 kdump 는 LUKS 암호화 파티션이 있는 시스템에서 올바르게 작동합니다.

Bugzilla:2017401

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

특정 Ampere Altra 시스템에서 사용 가능한 메모리가 1GB 미만인 경우 kdump 사용에 대해 크래시 커널 메모리를 할당하는 데 실패합니다. 결과적으로 kdumpctl 명령이 kdump 서비스를 시작하지 못했습니다.

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

  • 크기 요구 사항(예: crashkernel =240M )에 맞게 crashkernel 매개변수의 값을 최소 10.0.0.1MB까지 줄입니다.
  • crashkernel=x,high 옵션을 사용하여 kdump 에 대해 4GB 이상의 크래시 커널 메모리를 예약합니다.

결과적으로 Ampere Altra 시스템에서 kdump 에 대한 크래시 커널 메모리 할당이 실패하지 않습니다.

Bugzilla:2065013

VMD가 활성화되면 RHEL에서 NVMe 디스크를 인식하지 못합니다.

드라이버를 재설정하거나 다시 연결할 때 VMI(볼륨 관리 장치) 도메인은 현재 소프트 재설정이 아닙니다. 결과적으로 하드웨어가 장치를 올바르게 감지하고 열거할 수 없습니다. 결과적으로 VMD가 활성화된 운영 체제는 NVMe 디스크를 인식하지 못합니다. 특히 서버를 재설정하거나 VM 머신으로 작업할 때 그러합니다.

Bugzilla:2128610

iwl7260-firmware 는 Intel Wi-Fi 6 AX200, AX210 및ECDHE ThinkPad P1 Gen 4에서 Wi-Fi를 중단

iwl7260-firmware 또는 iwl7260-wifi 드라이버를 RHEL 9.1 이상에서 제공하는 버전으로 업데이트한 후 하드웨어가 잘못된 내부 상태로 전환됩니다. 결과적으로 IntelECDHE 6 카드가 작동하지 않아 오류 메시지를 표시할 수 있습니다.

kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110
kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms)
kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110

확인되지 않은 작업은 시스템의 전원을 끄고 다시 켜는 것입니다. 재부팅하지 마십시오.

Bugzilla:2129288

Weak-modules from kmod fails to work with module inter-dependencies

kmod 패키지에서 제공하는 weak-modules 스크립트는 설치된 커널과 호환되는 kABI-호환 모듈을 결정합니다. 그러나 모듈의 커널 호환성을 확인하는 동안 약한 모듈은 모듈 기호의 종속성을 더 높은에서 더 낮은 버전의 커널 릴리스까지 제공합니다. 결과적으로 다른 커널 릴리스에 대해 빌드된 상호 의존 관계가 있는 모듈이 호환되지 않는 것으로 해석될 수 있으므로 약한 모듈 스크립트가 이 시나리오에서 작동하지 않습니다.

이 문제를 해결하려면 새 커널을 설치하기 전에 최신 스포지 커널에 대해 추가 모듈을 빌드하거나 배치합니다.

Bugzilla:2103605

Mellanox ConnectX-5 어댑터를 사용하는 동안 mlx5 드라이버가 실패합니다.

이더넷 스위치 장치 드라이버 모델(switchdev) 모드에서 DMFS(Device managed flow steering) 매개변수 및 ConnectX-5 어댑터 지원 하드웨어로 구성된 경우 mlx5 드라이버가 실패합니다. 결과적으로 다음과 같은 오류 메시지가 표시됩니다.

BUG: Bad page cache in process umount pfn:142b4b

이 문제를 해결하려면 DMFS 대신 SMFS(Software managed flow steering) 매개변수를 사용하십시오.

Bugzilla:2180665

코어가 큰 시스템에서 실시간 커널의 하드웨어 인증을 사용하려면 잠금 경합을 방지하기 위해 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 을 활성화하면 전력 소비가 크게 증가하므로 대기 시간에 민감한 실시간 워크로드를 실행하는 경우에만 활성화해야 합니다.

Bugzilla:2214508

dkms 는 64비트 ARM CPU에서 올바르게 컴파일된 드라이버를 사용하여 프로그램 오류에 대한 잘못된 경고를 제공합니다.

동적 커널 모듈 지원(dkms) 유틸리티는 64비트 ARM CPU의 커널 헤더가 4 킬로바이트 및 64 킬로바이트 페이지 크기가 있는 커널 모두에서 작동하는지 인식하지 못합니다. 결과적으로 커널 업데이트가 수행되고 kernel-64k-devel 패키지가 설치되지 않은 경우 dkms 는 프로그램이 올바르게 컴파일된 드라이버에서 실패한 이유에 대한 잘못된 경고를 제공합니다. 이 문제를 해결하려면 두 가지 유형의 ARM CPU 아키텍처에 대한 헤더 파일이 포함된 kernel-headers 패키지를 설치하고 dkms 및 해당 요구 사항에 국한되지 않습니다.

Jira:RHEL-25967

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.