3장. 외부 커널 매개 변수로의 중요한 변경


이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.1과 함께 제공되는 커널의 중요한 변경 사항을 요약해서 설명합니다. 이러한 변경 사항에는 proc 항목, sysctlsysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 보이는 동작 변경이 포함됩니다.

새 커널 매개변수

perf_v4_pmi = [X86,INTEL]

이 매개 변수는 Intel PMU 카운터 정지 기능을 비활성화합니다.

이 기능은 Arch Perfmon v4(Skylake 이상)부터 시작됩니다.

형식: <bool>

hv_nopvspin [X86,HYPER_V]
이 매개변수는 반가상 스핀락 최적화를 비활성화하여 하이퍼바이저가 잠금 경합 시 게스트를 'idle'할 수 있도록 합니다.
ipcmni_extend [KNL]
이 매개 변수는 고유한 System V IPC 식별자의 최대 수를 32,768에서 16,777,216으로 확장합니다.
kpti = [ARM64]

이 매개 변수는 사용자 및 커널 주소 공간의 페이지 테이블 격리를 제어합니다.

옵션은 다음과 같습니다.

  • default: 완화가 필요한 코어에서 활성화됩니다.
  • 0: 강제 비활성화
  • 1: 강제로 활성화
mds = [X86,INTEL]

이 매개변수는 MDS(Micro-architectural Data Sampling) 취약점에 대한 완화 기능을 제어합니다.

특정 CPU는 특정 조건에서 공개 가젯으로 정보를 전달할 수 있는 CPU 내부 버퍼에 대한 위협에 취약합니다. 취약한 프로세서에서 예측 가능한 전달된 데이터를 캐시 사이드 채널 공격에 사용하여 공격자가 직접 액세스할 수 없는 데이터에 액세스할 수 있습니다.

옵션은 다음과 같습니다.

  • full - 취약한 CPU에서 MDS 완화를 활성화합니다.
  • full, nosmt - MDS 완화를 활성화하고 취약한 CPU에서 SMT(Simultaneous Multi Threading)를 비활성화합니다.
  • off - MDS 완화를 무조건 비활성화합니다.

    이 매개 변수를 지정하지 않는 것은 mds=full 과 동일합니다.

    자세한 내용은 업스트림 커널 설명서를 참조하십시오.

완화 = [X86,PPC, S390,ARM64]

이 매개변수는 CPU 취약점에 대한 선택적 완화 조치를 제어합니다. 이는 각각 기존 아카이브별 옵션의 집계인 선별된 아치 독립적인 옵션 집합입니다.

옵션은 다음과 같습니다.

  • off - 모든 선택적 CPU 완화를 비활성화합니다. 이로 인해 시스템 성능이 향상되지만 여러 CPU 취약점에 사용자가 노출될 수도 있습니다.

    다음과 같습니다.

    • nopti [X86,PPC]
    • kpti=0 [ARM64]
    • nospectre_v1 [X86,PPC]
    • nobp=0 [S390]
    • nospectre_v2 [X86,PPC,S390,ARM64]
    • spectre_v2_user=off [X86]
    • spec_store_bypass_disable=off [X86,PPC]
    • ssbd=force-off [ARM64]
    • l1tf=off [X86]
    • mds=off [X86]
  • auto (기본값) - 모든 CPU 취약점을 완화하지만 보안 취약점이 취약하더라도 SMT(Simultaneous Multi Threading)를 사용하도록 둡니다. 이 옵션은 SMT가 커널 업그레이드에서 비활성화되거나 SMT 기반 공격을 방지할 수 있는 다른 방법을 가지고 있기 때문에 놀랄 필요가 없는 사용자를 위한 것입니다.

    다음과 같습니다.

    • (기본 동작)
  • auto,nosmt - 모든 CPU 취약점을 완화하여 필요한 경우 SMT(동시 멀티 스레드)를 비활성화합니다. 이 옵션은 SMT를 손실하는 것을 의미하더라도 항상 완전히 완화하려는 사용자를 위한 것입니다.

    다음과 같습니다.

    • l1tf=flush,nosmt [X86]
    • mds=full,nosmt [X86]
novmcoredd [KNL,KDUMP]

이 매개 변수는 장치 덤프를 비활성화합니다.

장치 덤프를 사용하면 드라이버가 vmcore에 덤프 데이터를 추가할 수 있으므로 드라이버가 지정된 디버그 정보를 수집할 수 있습니다. 드라이버는 제한 없이 데이터를 추가할 수 있으며 이 데이터는 메모리에 저장되므로 메모리에 상당한 메모리 부하가 발생할 수 있습니다.

장치 덤프를 비활성화하면 메모리를 절약하는 데 도움이 될 수 있지만 드라이버 디버그 데이터를 더 이상 사용할 수 없습니다.

이 매개변수는 CONFIG_PROC_VMCORE_DEVICE_DUMP 커널 구성이 설정된 경우에만 사용할 수 있습니다.

nospectre_v1 [X86]

이 매개변수는 Spectre Variant 1의 완화 기능을 비활성화합니다(바운드 확인 바이패스).

이 옵션을 사용하면 시스템에서 데이터 유출이 가능합니다.

psi = [KNL]

이 매개 변수는 누수 정보 추적을 활성화하거나 비활성화합니다.

형식: <bool>

random.trust_cpu={on,off} [KNL]
이 매개변수는 CPU의 임의 번호 생성기(사용 가능한 경우) 사용을 신뢰하여 커널의 CRNG(Cryptdom Random Number Generation)을 완전히 시드할 수 있도록 활성화하거나 비활성화합니다. 기본값은 CONFIG_RANDOM_TRUST_CPU 커널 구성에서 제어합니다.
vm_debug[=options] [KNL]

CONFIG_DEBUG_VM=y 와 함께 사용할 수 있습니다.

이 매개 변수를 활성화하면 특히 메모리 양이 많은 시스템에서 시스템 부팅 속도가 느려질 수 있습니다.

모든 옵션은 기본적으로 활성화되며, 이 인터페이스는 특정 가상 메모리 디버깅 기능을 선택적으로 활성화하거나 비활성화할 수 있도록 합니다.

옵션은 다음과 같습니다.

  • p - 페이지 구조 init 시간 침입을 활성화합니다.
  • - (대시) - 위의 모든 옵션을 비활성화합니다.

업데이트된 커널 매개변수

cgroup_no_v1 = [KNL]

이 매개변수는 버전 1(v1)에서 cgroup 컨트롤러 및 명명된 계층 구조를 비활성화합니다.

매개 변수는 cgroup_disable 커널 매개 변수와 같지만 cgroup v1에만 적용됩니다. 블랙리스트로 지정된 컨트롤러는 cgroup2에서 계속 사용할 수 있습니다. "all" 옵션은 모든 컨트롤러를 블랙리스트로 지정하고 "named" 옵션은 명명된 마운트를 비활성화합니다. "all"과 "named"를 모두 지정하면 v1 계층 구조가 모두 비활성화됩니다.

형식: { { controller | "all" | "named" } [,{ controller | "all" | "named" }…​] }

crashkernel = size[KMG][@offset[KMG]][KNL]

kexec 시스템 호출을 통해 Linux는 패닉 시 'crash kernel'으로 전환할 수 있습니다. 이 매개 변수는 해당 커널 이미지에 대해 [offset, offset + size] 물리적 메모리 영역을 예약합니다. @offset 을 생략하면 적합한 오프셋이 자동으로 선택됩니다.

[KNL, x86_64] 먼저 4G 아래의 지역을 선택하고 @offset 이 지정되지 않은 경우 4G 위의 지역을 예약하도록 대체합니다.

자세한 내용은 업스트림 kdump 문서를 참조하십시오.

l1tf = [X86]

이 매개변수는 영향을 받는 CPU에서 L1 Terminal Fault(L1TF) 취약점의 완화를 제어합니다.

옵션은 다음과 같습니다.

  • off - 하이퍼바이저 완화 기능을 비활성화하고 경고를 보내지 않습니다. 또한 하이퍼바이저와 베어 메탈에 대해 스왑 크기 및 사용 가능한 RAM 제한 제한도 줄입니다.
  • flush - 기본값입니다.

    자세한 내용은 업스트림 커널 설명서를 참조하십시오.

nospectre_v2 [X86,PPC_FSL_BOOK3E,ARM64]

이 매개변수는 Spectre variant 2 (indirect branch predict) 취약점에 대한 모든 완화 기능을 비활성화합니다.

시스템에서 이 매개 변수를 사용하여 데이터 누수를 허용할 수 있습니다.

pci=option[,option…​] [PCI]

다양한 PCI 하위 시스템 옵션.

옵션은 다음과 같습니다.

  • force_floating [S390] - 유동 인터럽트의 강제 사용.
  • nomio [S390] - 메모리 입/출력(MIO) 명령을 사용하지 마십시오.

새로운 /proc/sys/kernel 매개변수

hyperv_record_panic_msg

이 매개변수는 패닉 커널 메시지(kmsg) 데이터가 Hyper-V에 보고되는지 여부를 제어합니다.

값은 다음과 같습니다.

  • 0 - 패닉 kmsg 데이터를 보고하지 마십시오.
  • 1 - 패닉 kmsg 데이터를 보고합니다. 기본 동작입니다.

새로운 /proc/sys/net 매개변수

bpf_jit_limit

이 매개변수는 BPF JIT(Berkeley Packet Filter Just-in-Time) 컴파일러에 대한 메모리 할당에 대한 글로벌 제한을 적용하여 권한이 없는 JIT 요청을 초과하면 해당 요청을 거부합니다.

bpf_jit_limit 매개 변수에는 전역 제한 값(바이트)이 포함되어 있습니다.

업데이트된 /proc/sys/fs 매개변수

dentry-state

dentries는 동적으로 할당되고 할당됩니다.

사용자는 /proc/sys/fs/dentry-state 파일을 읽고 다음 값을 검색할 수 있습니다.

  • nr_dentry - 할당된 총 들여쓰기 수(활성 + 사용되지 않음)를 표시합니다.
  • nr_unused - 현재 사용되지 않지만 향후 재사용을 위해 최근 Least(Least) 목록에 저장되는 dentries 수를 표시합니다.
  • age_limit - 메모리가 짧으면 dcache 항목을 회수할 수 있는 시간(초)을 표시합니다.
  • want_pages - shrink_dcache_pages() 함수가 호출되고 dcache 가 아직 정리되지 않은 경우 0이 아닙니다.
  • nr_negative - 파일에 매핑되지 않는 음수 들여쓰기인 사용하지 않은 들여쓰기 수를 표시합니다. 대신 사용자가 제공하는 존재하지 않는 파일을 신속하게 거부할 수 있습니다.

업데이트된 /proc/sys/kernel 매개변수

msg_next_id, sem_next_id, and shm_next_id

참고:

  1. 커널은 새 오브젝트에 원하는 ID를 보장하지 않습니다. 이는 사용자 공간, "잘못" ID로 오브젝트를 처리하는 방법까지입니다.
  2. IPC(Inter-process Communication) 개체 할당 후 커널에서 기본값이 아닌 값으로 전환합니다. IPC 오브젝트 할당 syscall에 실패하면 값이 수정되지 않았거나 -1로 재설정되는 경우 정의되지 않습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.