4.8. 커널

RHEL 8.4의 커널 버전

Red Hat Enterprise Linux 8.4는 커널 버전 4.18.0-305와 함께 배포됩니다.

외부 커널 매개 변수 및 장치 드라이버에 중요한 변경 사항 도 참조하십시오.

(BZ#1839151)

RHEL 8.4 용 Extended Berkeley Packet Filter

eBPF(Extended Berkeley Packet Filter) 는 제한된 기능 집합에 액세스할 수 있는 제한된 샌드박스 환경에서 커널 공간에서 코드를 실행할 수 있는 커널 내 가상 시스템입니다. 가상 시스템은 특수 어셈블리와 유사한 코드를 실행합니다.

eBPF 바이트코드는 먼저 커널로 로드된 다음 확인, 실시간 컴파일만 사용하여 네이티브 시스템 코드로 코드 변환한 다음 가상 시스템에서 코드를 실행합니다.

Red Hat은 eBPF 가상 시스템을 활용하는 다양한 구성 요소를 제공합니다. 각 구성 요소는 다른 개발 단계에 있으므로 현재 모든 구성 요소가 완전히 지원되지는 않습니다. RHEL 8.4에서는 다음 eBPF 구성 요소가 지원됩니다.

  • eBPF 를 사용하여 Linux 운영 체제의 I/O 분석, 네트워킹 및 모니터링을 위한 툴을 제공하는 BCC(BPF Compiler Collection) 툴 패키지.
  • BCC 라이브러리는 BCC 툴 패키지에서 제공되는 툴과 유사한 툴을 개발할 수 있도록 합니다.
  • 커널 네트워크 데이터 경로 내에서 프로그래밍 가능한 패킷 처리를 가능하게 하는 tc(트래픽 제어) 기능을 위한 eBPF 입니다.
  • 커널 네트워킹 스택이 처리하기 전에 수신된 패킷에 대한 액세스를 제공하는 eXpress Data Path(XDP) 기능은 특정 조건에서 지원됩니다.
  • libbpf 패키지는 bpf trace 및 bpf /xdp 개발과 같은 bpf 관련 애플리케이션에 중요합니다.
  • XDP 기능에 대한 사용자 공간 지원 유틸리티가 포함된 xdp-tools 패키지는 이제 AMD 및 Intel 64비트 아키텍처에서 지원됩니다. 여기에는 libxdp 라이브러리, XDP 프로그램 로드를 위한 xdp-loader 유틸리티, 패킷 필터링을 위한 xdp-filter 예제 프로그램, XDP가 활성화된 네트워크 인터페이스에서 패킷을 캡처하기 위한 xdpdump 유틸리티가 포함됩니다.

특정 구성 요소가 지원되는 것으로 표시되지 않는 한 다른 eBPF 구성 요소는 기술 프리뷰로 사용할 수 있습니다.

다음과 같은 주요 eBPF 구성 요소는 현재 기술 프리뷰로 사용할 수 있습니다.

  • bpftrace 추적 언어
  • 사용자 공간에 eXpress Data Path(XDP) 경로를 연결하는 AF_XDP 소켓

기술 프리뷰 구성 요소에 대한 자세한 내용은 기술 프리뷰를 참조하십시오.

(BZ#1780124)

새 패키지: kmod-redhat-oracleasm

이번 업데이트에서는 ASMLib 유틸리티의 커널 모듈 부분을 제공하는 새로운 kmod-redhat-oracleasm 패키지가 추가되었습니다. Oracle ASM(Automated Storage Management)은 Oracle 데이터베이스를 위한 데이터 볼륨 관리자입니다. ASMLib은 Linux 시스템에서 Oracle ASM 장치를 관리하는 데 사용할 수 있는 선택적 유틸리티입니다.

(BZ#1827015)

xmon 프로그램은 공격에 대해 Secure Boot 및 kernel_lock 복원력을 지원하도록 변경됩니다.

Secure Boot 메커니즘이 비활성화된 경우 커널 명령줄에서 xmon 프로그램을 읽기-쓰기 모드(xmon=rw)로 설정할 수 있습니다. 그러나 xmon=rw 를 지정하고 Secure Boot 모드로 부팅하면 kernel_lockdown 기능이 xmon=rw 를 재정의하여 읽기 전용 모드로 변경합니다. Secure Boot 활성화에 따라 xmon 의 추가 동작은 다음과 같습니다.

Secure Boot 가 설정되어 있습니다.

  • xmon=ro (기본값)
  • 스택 추적이 출력됨
  • 메모리 읽기 작동
  • 메모리 쓰기가 차단되었습니다

Secure Boot 가 꺼져 있습니다.

  • xmon=rw설정 가능
  • 스택 추적이 항상 인쇄됨
  • 메모리 읽기 항상 작동
  • 메모리 쓰기는 xmon=rw경우에만 허용됩니다.

이러한 xmon 동작 변경은 root 권한을 가진 공격자에 대한 Secure Bootkernel_lock 복원력을 지원하는 것을 목표로 합니다.

커널 명령줄 매개 변수를 구성하는 방법에 대한 자세한 내용은 고객 포털에서 커널 명령줄 매개 변수 구성을 참조하십시오.

(BZ#1952161)

Cornelis-Path Architecture (OPA) 호스트 소프트웨어

Red Hat Enterprise Linux 8.4에서 OPA(OPA-Path Architecture) 호스트 소프트웨어가 완벽하게 지원됩니다. OPA는 클러스터형 환경의 컴퓨팅 노드와 I/O 노드 간의 고성능 데이터 전송(고급 대역폭, 높은 메시지 속도, 짧은 대기 시간)을 위해 HFI(Host Fabric Interface) 하드웨어에 초기화 및 설정을 제공합니다.

✓-Path 아키텍처 설치에 대한 자세한 내용은 다음을 참조하십시오. Cornelis✓-Path Fabric Software Release Notes 파일.

(BZ#1960412)

기본적으로 SLAB 캐시 병합 비활성화

CONFIG_SLAB_MERGE_DEFAULT 커널 구성 옵션이 비활성화되어 SLAB 캐시가 기본적으로 병합되지 않습니다. 이러한 변경은 할당자의 캐시 사용량의 안정성과 추적성을 향상시키기 위한 것입니다. 이전의 slab-cache 병합 동작이 필요한 경우 사용자는 slub_merge 매개 변수를 커널 명령줄에 추가하여 다시 활성화할 수 있습니다. 커널 명령줄 매개 변수를 설정하는 방법에 대한 자세한 내용은 고객 포털에서 커널 명령줄 매개변수 구성을 참조하십시오.

(BZ#1871214)

ima-evm-utils 패키지가 버전 1.3.2로 업데이트되었습니다.

The ima-evm-utils 패키지가 버전 1.3.2로 업그레이드되어 여러 버그 수정 및 개선 사항을 제공합니다. 주요 변경 사항은 다음과 같습니다.

  • 신뢰할 수 있는 플랫폼 모듈 (TPM2) 다중 은행 기능 처리 지원 추가
  • RHEL(Platform Configuration Registers) 8 및 9로 부팅 집계 값 확장
  • CLI 매개변수를 통해 미리 로드된 OpenSSL 엔진
  • Intel Task State Segment (TSS2) PCR 읽기 지원 추가
  • 원래 IMA(Integrity measurement Architecture) 템플릿 지원 추가

libimaevm.so.0libimaevm.so.2 라이브러리는 모두 ima-evm-utils 의 일부입니다. 최신 애플리케이션이 libimaevm.so. 2를 사용하면 libimaevm.so. 0 사용자는 영향을 받지 않습니다.

(BZ#1868683)

지원되는 CPU 아키텍처에서 IMA 및 EVM 기능 수준을 높이는 방법

ARM을 제외한 모든 CPU 아키텍처는 무결성 측정 아키텍처(IMA) 및 EVM(Extended Verification Module) 기술에 대한 유사한 수준의 기능을 지원합니다. 활성화된 기능은 CPU 아키텍처마다 다릅니다. 지원되는 각 CPU 아키텍처에서 가장 중요한 변경 사항은 다음과 같습니다.

  • IBM Z: IMA 승인 및 신뢰할 수 있는 인증 키 활성화.
  • AMD64 및 Intel 64: 보안 부팅 상태의 특정 아키텍처 정책.
  • IBM Power System(little-endian): 안전하고 신뢰할 수 있는 부팅 상태의 특정 아키텍처 정책.
  • 지원되는 모든 아키텍처의 기본 해시 알고리즘으로 SHA-256.
  • 모든 아키텍처의 경우 측정 템플릿이 IMA-SIG로 변경되었습니다. 템플릿에 있는 서명 비트가 포함됩니다. 해당 형식은 d-ng|n-ng|sig 입니다.

이 업데이트의 목표는 지원되는 모든 CPU 아키텍처에서 사용자 공간 애플리케이션이 동일하게 작동할 수 있도록 IMA 및 EVM의 기능 차이를 줄이는 것입니다.

(BZ#1869758)

RHEL 8에 기본적으로 비활성화됨으로 사전 예방적 압축 포함

지속적인 워크로드 활동을 통해 시스템 메모리가 조각화됩니다. 조각화로 인해 용량 및 성능 문제가 발생할 수 있습니다. 프로그램 오류도 발생할 수 있습니다. 따라서 커널은 메모리 압축이라는 반응 메커니즘을 사용합니다. 메커니즘의 원래 설계는 보수적이며 압축 작업은 할당 요청 요청에 따라 시작됩니다. 그러나 시스템 메모리가 이미 조각화된 경우 반응적 동작은 할당 대기 시간을 늘리는 경향이 있습니다. 사전 압축 은 할당 요청을 수행하기 전에 정기적으로 메모리 압축 작업을 시작하여 설계를 향상시킵니다. 이 향상된 기능으로 인해 메모리 할당 요청이 온디맨드로 생성되는 메모리 압축 없이 물리적 메모리 블록을 찾을 가능성이 높아집니다. 결과적으로 특정 메모리 할당 요청에 대한 대기 시간이 줄어듭니다.

주의

사전 압축 으로 인해 압축 활동이 증가할 수 있습니다. 다른 프로세스에 속한 메모리 페이지가 이동되고 다시 매핑되기 때문에 시스템 전체에 심각한 영향을 미칠 수 있습니다. 따라서 사전 압축을 활성화하려면 애플리케이션의 대기 시간 급증을 방지하기 위해 최대한 주의해야 합니다.

(BZ#1848427)

RHEL 8에 EDAC 지원이 추가되었습니다

이번 업데이트를 통해 RHEL 8은 8차 및 9세대 Intel Core Processor(CoffeeLake)에서 설정된 오류 감지 및 수정(EDAC) 커널 모듈 세트를 지원합니다. EDAC 커널 모듈은 주로 오류 코드 수정(ECC) 메모리를 처리하고 PCI 버스 패리티 오류를 감지 및 보고합니다.

(BZ#1847567)

새 패키지: kpatch-dnf

kpatch-dnf 패키지는 DNF 플러그인을 제공하므로 RHEL 시스템을 커널 라이브 패치 업데이트에 서브스크립션할 수 있습니다. 서브스크립션은 향후 설치될 커널을 포함하여 시스템에 현재 설치된 모든 커널에 영향을 미칩니다. kpatch-dnf 에 대한 자세한 내용은 dnf-kpatch(8) 매뉴얼 페이지 또는 커널 관리, 모니터링 및 업데이트 설명서를 참조하십시오.

(BZ#1798711)

slab 메모리를 위한 새로운 cgroup 컨트롤러 구현

RHEL 8에서는 제어 그룹 기술을 위한 새로운 slab 메모리 컨트롤러 구현을 사용할 수 있습니다. 현재는 단일 메모리 슬랩에 다른 메모리 제어 그룹이 소유한 개체를 포함할 수 있습니다. 슬랩 메모리 컨트롤러는 슬랩 사용률(최대 45%)을 개선하고 메모리 계정을 페이지 수준에서 개체 수준으로 전환할 수 있도록 합니다. 또한 이러한 변경으로 인해 각 메모리 제어 그룹에 대해 각 CPU당 중복 및 노드당 slab 캐시 세트가 제거되고 모든 메모리 제어 그룹에 대해 하나의 공통 CPU 및 노드당 slab 캐시 세트가 설정됩니다. 결과적으로 총 커널 메모리 풋프린트를 대폭 감소하고 메모리 조각화에 긍정적인 영향을 확인할 수 있습니다.

새롭고 더 정확한 메모리 계정에는 더 많은 CPU 시간이 필요합니다. 그러나 실제로 차이점은 무시할 수 없는 것처럼 보입니다.

(BZ#1877019)

RHEL 8에 시간 네임스페이스가 추가되었습니다

시간 네임스페이스를 사용하면 시스템 monotonic 및 부팅 시간 클록이 AMD64, Intel 64 및 64비트 ARM 아키텍처에서 네임스페이스별 오프셋에서 작동할 수 있습니다. 이 기능은 Linux 컨테이너 내에서 날짜와 시간을 변경하고 체크포인트에서 복원한 후 컨테이너 내 클록을 조정하는 데 적합합니다. 결과적으로 사용자는 이제 개별 컨테이너에 대해 독립적으로 시간을 설정할 수 있습니다.

(BZ#1548297)

새로운 기능: 사용 가능한 메모리 페이지 반환

이번 업데이트를 통해 RHEL 8 호스트 커널은 VM(가상 머신)에서 하이퍼바이저로 다시 사용하지 않는 메모리 페이지를 반환할 수 있습니다. 이렇게 하면 호스트의 안정성과 리소스 효율성이 향상됩니다. 메모리 페이지가 작동하려면 VM에서 구성해야 하며 VM도 virtio_balloon 장치를 사용해야 합니다.

(BZ#1839055)

perf top의 정렬 순서 변경 지원

이번 업데이트를 통해 perf top 은 첫 번째 열에 따라 정렬하지 않고 그룹에 있는 여러 이벤트가 샘플링되는 경우 임의 이벤트 열별로 샘플을 정렬할 수 있습니다. 결과적으로 숫자 키를 누르면 일치하는 데이터 열에 따라 테이블이 정렬됩니다.

참고

열 번호는 0 에서 시작합니다.

group -sort-idx 명령줄 옵션을 사용하면 열 번호로 정렬할 수 있습니다.

(BZ#1851933)

kabi_whitelist 패키지의 이름이 kabi_stablelist로 변경되었습니다.

문제가 있는 언어 교체에 대한 Red Hat의 노력에 따라 RHEL 8.4 릴리스에서 kabi_whitelist 패키지의 이름을 kabi_stablelist 로 변경했습니다.

(BZ#1867910, BZ#1886901)

BPF를 버전 5.9로 업데이트

RHEL 8의 bpf 커널 기술은 커널 v5.9에서 업스트림 관련 기술을 최신 상태로 도입했습니다.

업데이트는 여러 버그 수정 및 개선 사항을 제공합니다. 주요 변경 사항은 다음과 같습니다.

  • 맵 요소를 위한 BPF(Berkeley Packet Filter) 반복기가 추가되어 커널 내 검사를 효율적으로 검사하기 위해 모든 BPF 프로그램을 반복합니다.
  • 동일한 제어 그룹(cgroup)의 프로그램은 cgroup 로컬 스토리지 맵을 공유할 수 있습니다.
  • BPF 프로그램은 소켓 조회 시 실행될 수 있습니다.
  • SO_KEEPALIVE 및 관련 옵션은 bpf_setsockopt() 도우미에서 사용할 수 있습니다.

일부 BPF 프로그램은 소스 코드를 변경해야 할 수 있습니다.

(BZ#1874005)

bcc 패키지가 버전 0.16.0으로 업데이트

bcc 패키지가 여러 버그 수정 및 개선 사항을 제공하는 버전 0.16.0으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 유틸리티 klockstatfuncinterval추가
  • tcpconnect 도움말 페이지의 다양한 부분 수정
  • tcptracer 도구 출력에서 IPv6 주소에 대한 SPORT 및 DPORT 열을 표시하도록 수정
  • 손상된 종속성 수정

(BZ#1879411)

bpftrace가 0.11.0 버전으로 다시 기반

bpftrace 패키지가 여러 버그 수정 및 개선 사항을 제공하는 버전 0.11.0으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 유틸리티 thread noop,tcpsynbl,tcplife,swapin,setuids, naptime추가
  • tcpdrop.bt 및 syncs noop. bt 도구 실행 실패
  • IBM Z 아키텍처에서 BPF(Berkeley Packet Filter) 프로그램을 로드하는 데 오류가 발생했습니다.
  • 기호 조회 오류 수정

(BZ#1879413)

libbpf가 0.2.0.1 버전으로 업데이트

libbpf 패키지가 여러 버그 수정 및 개선 사항을 제공하는 버전 0.2.0.1로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • BTF(BPF Type Format)가 액세스할 수 있는 프로그램에서 bpf_map 구조의 BPF(Berkeley Packet Filter) 맵 필드에 액세스하기 위한 지원이 추가되었습니다.
  • 추가된 BPF 링 버퍼
  • bpf 반복기 인프라 추가
  • 개선된 bpf_link 가시성

(BZ#1919345)

perf는 perf 를 중지하거나 재시작할 필요 없이 실행 중인 컬렉터에서 추적 지점 추가 또는 제거 지원

이전에는 perf 레코드 인스턴스에서 추적 포인트를 추가하거나 제거하려면 perf 프로세스를 중지해야 했습니다. 그 결과 프로세스가 중지된 시간 동안 발생한 성능 데이터가 수집되지 않아 손실되었습니다. 이번 업데이트를 통해 perf 레코드 프로세스를 중지하지 않고도 제어 파이프 인터페이스를 통해 perf 레코드에서 수집하는 추적 지점을 동적으로 활성화 및 비활성화할 수 있습니다.

(BZ#1844111)

perf 툴은 추적 데이터에 대한 절대 타임스탬프를 기록하고 표시하는 기능을 지원합니다.

이번 업데이트를 통해 이제 perf 스크립트가 절대 타임스탬프를 사용하여 추적 데이터를 기록하고 표시할 수 있습니다.

참고: 절대 타임스탬프를 사용하여 추적 데이터를 표시하려면 지정된 클럭 ID를 사용하여 데이터를 기록해야 합니다.

절대 타임스탬프를 사용하여 데이터를 기록하려면 클럭 ID를 지정합니다.

# perf record -k CLOCK_MONOTONIC sleep 1

지정된 시계 ID로 기록된 추적 데이터를 표시하려면 다음 명령을 실행합니다.

# perf script -F+tod

(BZ#1811839)

버전 1.19.1로 변경되지 않음

dwarves 패키지가 버전 1.19.1로 업그레이드되어 여러 버그 수정 및 개선 사항을 제공합니다. 또한 이번 업데이트에서는 관련 ftrace 항목이 있는 DWARF 디버그 데이터에서 기능을 확인하는 새로운 방법을 도입하여 ftrace 함수의 하위 집합이 생성되도록 합니다.

(BZ#1903566)

perf 는 지정된 이벤트를 사용하여 스냅샷을 트리거하는 순환 버퍼를 지원합니다.

이번 업데이트를 통해 지정한 이벤트가 감지될 때 perf.data 파일에 데이터를 쓰는 사용자 정의 원형 버퍼를 생성할 수 있습니다. 결과적으로 perf 레코드는 perf. data 파일에 데이터를 지속적으로 작성하여 과도한 오버헤드를 생성하지 않고 관심 있는 데이터만 기록하지 않고 시스템 백그라운드에서 계속 실행할 수 있습니다.

이벤트별 스냅샷을 기록하는 perf 툴을 사용하여 사용자 정의 원형 버퍼를 생성하려면 다음 명령을 사용합니다.

# perf record --overwrite -e _events_to_be_collected_ --switch-output-event _snapshot_trigger_event_

(BZ#1844086)

커널 DRBG 및 more 엔트로피 소스는 NIST SP 800-90A 및 NIST SP 800-90B를 준수합니다.

DRBG(Kernel Deterministic Random BitGenerations) 및tter 엔트로피 소스는 DRBG(NIST SP 800-90A)를 사용하여 난수 생성에 대한 권장 사항과 임의 비트 생성(NIST SP 800-90B) 사양에 사용되는 엔트로피 소스에 대한 권장 사항을 준수합니다. 결과적으로 FIPS 모드의 애플리케이션은 이러한 소스를 FIPS 호환 임의성 및 잡음 소스로 사용할 수 있습니다.

(BZ#1905088)

Kdump는 Virtual Local Area Network 태그가 지정된 팀 네트워크 인터페이스를 지원

이번 업데이트에서는 kdump 에 대해 Virtual Local Area Network 태그가 지정된 팀 인터페이스를 구성하는 기능이 추가되었습니다. 결과적으로 이 기능을 사용하면 kdump 에서 Virtual Local Area Network 태그가 지정된 팀 인터페이스를 사용하여 vmcore 파일을 덤프할 수 있습니다.

(BZ#1844941)

kernel-rt 소스 트리가 RHEL 8.4 트리로 업데이트

최신 Red Hat Enterprise Linux 커널 소스 트리를 사용하도록 kernel-rt 소스가 업데이트되었습니다. 실시간 패치 세트도 최신 업스트림 버전 v5.10-rt7로 업데이트되었습니다. 이 두 업데이트 모두 여러 버그 수정 및 개선 사항을 제공합니다.

(BZ#1858099, BZ#1858105)

stalld 패키지가 RHEL 8.4 배포에 추가되었습니다.

이번 업데이트에서는 대기 시간이 짧은 애플리케이션을 실행하는 시스템의 스레드를 모니터링하는 데몬인 RHEL 8.4.0.에 stalld 패키지가 추가되었습니다. 이 스크립트는 지정된 임계값에 대해 CPU에 예약되지 않고 run-queue에 있는 작업 스레드를 확인합니다.

지연된 스레드를 감지하면 stalld는 스케줄링 정책을 SCHED_DEADLINE 으로 일시적으로 변경하고 진행하기 위해 CPU 시간 슬라이스를 할당합니다. 시간 슬라이스가 완료되거나 스레드 블록이 완료되면 스레드가 원래 스케줄링 정책으로 돌아갑니다.

(BZ#1875037)

hv_24x7 및 hv_ gpci PMUs에서 CPU 핫플러그 지원

이번 업데이트를 통해 PMU 카운터가 CPU 핫 플러그에 올바르게 반응합니다. 결과적으로 비활성화되는 CPU에서 hv_gpci 이벤트 카운터가 실행 중이면 개수가 다른 CPU로 리디렉션됩니다.

(BZ#1844416)

POWERPC hv_24x7 중첩 이벤트에 대한 메트릭 사용 가능

이제 POWERPC hv_24x7 중첩 이벤트에 대한 지표를 perf 에 사용할 수 있습니다. 이러한 지표는 여러 이벤트를 집계하여 perf 카운터에서 얻은 값과 CPU가 워크로드를 처리할 수 있는지에 대한 보다 효과적인 이해를 제공합니다.

(BZ#1780258)

Hwloc가 버전 2.2.0으로 다시 기반

hwloc 패키지가 버전 2.2.0으로 업그레이드되어 다음과 같은 변경 사항을 제공합니다.

  • hwloc 기능은 총 디스크 크기 및 섹터 크기를 포함하여 NVMe(Nonvolatile Memory Express) 드라이브에 대한 세부 정보를 보고할 수 있습니다.

(BZ#1841354)

igc 드라이버가 완전히 지원됨

igc Intel 2.5G 이더넷 Linux 유선 LAN 드라이버는 RHEL 8.1에서 기술 프리뷰로 도입되었습니다. RHEL 8.4부터 모든 아키텍처에서 완전하게 지원됩니다. ethtool 유틸리티는 igc 유선 LAN도 지원합니다.

(BZ#1495358)