10장. 커널
AMD64 및 Intel 64 시스템의 kdump
에서 여러 CPU 지원
AMD64 및 Intel 64 시스템에서
kdump
커널 크래시 덤프 메커니즘을 사용하여 두 개 이상의 CPU를 활성화할 수 있습니다. 이렇게 하면 커널 크래시 덤프를 생성할 때 높은 입력 및 출력으로 인해 maxcpus=1 또는 nr_cpus=1 커널 옵션을 사용하여 하나의 CPU만 활성화된 경우 Linux에서 장치에 대한 인터럽트를 할당하지 못하는 일부 시스템에서 문제가 해결되었습니다. 이전에 기술 프리뷰로 사용할 수 있는 이 기능은 이제 완전히 지원됩니다.
크래시 커널에서 여러 CPU를 활성화하려면 커널 명령줄에 nr_cpus= X 옵션(여기서 X는 프로세서 수)을 제공합니다.
kpatch지원
kpatch 유틸리티를 사용하면 사용자는 재부팅하지 않고 커널 패치를 동적으로 패치하는 데 사용할 수 있는 바이너리 커널 패치 컬렉션을 관리할 수 있습니다. 이전에는 kpatch 가 기술 프리뷰로 포함되었으며 Red Hat Customer Experience and Engagement 팀의 지침에 따라 사용 시 완전히 지원됩니다.
라이브 커널 패치 지원에 대한 자세한 내용은 https://access.redhat.com/solutions/2206511 에서 참조하십시오.
SHMMAX 및 SHMALL 커널 매개변수가 기본값으로 반환
이전에는
/usr/lib/sysctl.d/00-system.conf
파일에 설정된 kernel.shmmax
및 kernel.shmall
매개변수 값이 너무 낮았습니다. 그 결과 SAP와 같은 일부 애플리케이션이 제대로 작동하지 않았습니다. 적합하지 않은 덮어쓰기가 제거되었으며 이제 충분히 높은 커널 기본값이 사용됩니다.
투명한 대규모 페이지에 더 이상 메모리 손상이 발생하지 않음
투명 대규모 페이지가 읽기 및 쓰기 작업 중에 올바르게 동기화되지 않았습니다. 이로 인해 투명한 대규모 페이지가 활성화되면 메모리 손상이 발생했습니다. 이러한 메모리 손상이 더 이상 발생하지 않도록 메모리 중단이 투명한 대규모 페이지 처리에 추가되었습니다.
SCSI LIO 리베이스
SCSI 커널 대상 LIO는 Linux-4.0.stable에서 다시 기반을 두고 있습니다. 여기에는 iSER의 경우 가장 중요한 여러 버그 수정이 포함되지만 XCOPY, WRITE>-<E 및 ATS 명령에 대한 지원이 추가되고 DIF 데이터 무결성 지원이 포함됩니다.
makedumpfile은 최대 16TB의 물리적 메모리를 나타내는 새로운 sadump 형식을 지원합니다.
makedumpfile 명령에서는 이제 16TB 이상의 물리적 메모리 공간을 나타낼 수 있는 새로운 sadump 형식을 지원합니다. 이를 통해 kdumpfile 사용자는 향후 특정 서버 모델에서 sadump에 의해 생성된 16TB 이상의 덤프 파일을 읽을 수 있습니다.
커널 제거 또는 업그레이드에 더 이상 경고가 표시되지 않음
kmod
에서 kABI 호환 모듈 심볼릭 링크를 관리하는 데 사용되는 weak-modules 스크립트는 이전에는 커널과 연결된 파일을 제거할 때 /lib/modules/<version>/weak-updates
디렉터리를 제거했습니다. 이 디렉터리는 kernel 패키지에서 소유하고 파일 시스템과 rpm
이 예상되는 상태 간에 불일치가 발생합니다. 이로 인해 커널이 업그레이드 또는 제거될 때마다 경고가 표시되었습니다.
weak-updates
디렉터리의 내용을 제거하도록 스크립트가 업데이트되었지만 디렉터리 자체는 그대로 유지되며 경고가 더 이상 표시되지 않습니다.
새로운 패키지: libevdev
libevdev는 Linux 커널 입력 이벤트 장치 인터페이스의 하위 수준 라이브러리입니다. 장치 기능을 쿼리하고 장치의 이벤트를 처리하는 안전한 인터페이스를 제공합니다. 현재 버전의 xorg-x11-drv-evdev 및 xorg-x11-drv-synap#183에는 이 라이브러리가 종속성으로 필요합니다.
tuned를 no-daemon 모드에서 실행할 수 있음
이전에는 Tuned가 데몬으로만 실행될 수 있었기 때문에 Tuned 데몬의 메모리 풋프린트로 인해 소규모 시스템의 성능에 영향을 미칠 수 있었습니다. 이번 업데이트를 통해 상주 메모리가 필요하지 않은 no-daemon(한 샷) 모드가 Tuned에 추가되었습니다. 이 모드에서 Tuned 기능이 많이 없기 때문에 no-daemon 모드는 기본적으로 비활성화되어 있습니다.
새 패키지: tuned-profiles-realtime
tuned-profiles-realtime 패키지가 Red Hat Enterprise Linux Server 및 Red Hat Enterprise Linux for Real Time에 추가되었습니다. 여기에는 CPU 격리 및 IRQ 튜닝을 수행하기 위해 tuned 유틸리티에서 사용하는 실시간 프로필이 포함되어 있습니다. 프로필이 활성화되면 분리할 CPU를 지정하는 변수 섹션을 읽고 해당 CPU 코어에서 이동할 수 있는 모든 스레드를 이동합니다.
SCSI 오류 메시지를 쉽게 해석할 수 있습니다.
printk() 함수를 변경한 이전 커널로 인해 SCSI(Small Computer System Interface) 오류 메시지가 여러 줄에 걸쳐 기록되었습니다. 결과적으로 다른 장치에서 여러 오류가 발생한 경우 오류 메시지를 올바르게 해석하기가 어려울 수 있습니다. 이번 업데이트에서는 각 오류 메시지를 오류를 생성한 장치와 연결하는 dev_printk() 옵션을 사용하여 오류 메시지가 로그 메시지로 SCSI 오류 로깅 코드를 변경합니다.
libATA 하위 시스템 및 드라이버 업데이트
이번 개선된 업데이트에서는 libATA 하위 시스템 및 드라이버의 버그 수정 및 향상된 기능을 제공합니다.
FCoE 및 DCB 업그레이드
FCoE(Fibre Channel over Ethernet) 및 DCB(Data Center Bridging) 커널 구성 요소가 최신 업스트림 버전으로 업그레이드되어 이전 버전에 비해 많은 버그 수정 및 개선 사항을 제공합니다.
perf
버전 4.1으로 업데이트
perf 패키지가 업스트림 버전 4.1로 업그레이드되어 이전 버전에 비해 여러 성능 및 안정성 수정 및 개선 사항을 제공합니다. 특히 이 리베이스는 Intel Cache QoS Monitoring 및 AMD IBS Ops 기능을 추가하고 압축된 커널 모듈용 Intel Xeon v4에 대한 지원을 제공합니다. 또한 --system-wide,top -z,top -w,trace --filter-pids 및 trace --event 옵션과 같은 다양한 옵션이
perf
도구에 추가되었습니다.
TPM 2.0 지원
이번 업데이트에서는 신뢰할 수 있는 플랫폼 모듈(TPM) 장치를 준수하는 버전 2.0에 대한 드라이버 수준 지원이 추가되었습니다.
turbostat
가 올바른 출력 제공
이전에는
cpu
0 대신 cpu0
에 대한 /dev/cpu/0/msr 파일을 읽고 시스템에서 MSR 장치 지원이 있는 경우 turbostat
툴이 감지되었습니다. 그 결과 CPU를 비활성화하면 turbostat 출력에서 CPU가 삭제되었습니다. 이 버그가 수정되었으며 이제 turbostat ls 명령을 실행하면 올바른 출력이 반환됩니다.
turbostat
에서 Intel Xeon v5 프로세서 지원
이번 개선된 기능에는
turbostat
도구에 Intel Xeon v5 프로세서 지원이 추가되었습니다.
zswap
툴은 zpool
API를 사용합니다.
이전 버전에서는
zswap
툴에서 2 : 1의 비율로 압축 페이지를 저장하는 스토리지 풀인 zbud
를 직접 사용했습니다. 이번 업데이트에서는 zbud
또는 z smalleroc 풀에 액세스할 수 있는 zpool
API가 도입되었습니다. z
ECDHEoc은 압축 페이지를 잠재적 밀도가 높아서 압축 페이지를 압축할 수 있는 메모리를 보다 회수할 수 있도록 합니다.
이 업데이트에서는 z
pool
이 의도한 대로 작동하도록 /mm 드라이버로 승격되었습니다.
/proc/pid/cmdline 파일 길이가 무제한
ps 명령의 /proc/pid/cmdline 파일 길이 제한은 이전에 커널에서 4096자로 하드 코딩되었습니다. 이번 업데이트에서는 /proc/pid/cmdline의 길이가 무제한이며, 이는 긴 명령줄 인수가 있는 프로세스를 나열하는 데 특히 유용합니다.
dma_rmb 및 dma_wmb에 대한 지원
이번 업데이트에서는 캐시 일관성 있는 메모리 쓰기 및 읽기 dma_wmb() 및 dma_rmb()를 동기화하기 위한 두 가지 새로운 프리미티브를 도입합니다. 이 기능은 드라이버에서 적절한 용도로 사용할 수 있습니다.
qib HCA 드라이버 연결
SRP LOGIN ID가 일치하지 않아 SRP 대상이 qib HCA 장치 드라이버를 통해 연결되지 않았습니다. 이번 업데이트에서는 버그가 수정되어 앞서 언급한 연결을 성공적으로 설정할 수 있습니다.
메모리 제한 증가
Red Hat Enterprise Linux 7.2 부터 AMD64 및 Intel 64 시스템에서 지원되는 최대 메모리 제한이 6TB에서 12TB로 증가했습니다.
dracut
의 새로운 변수
이번 업데이트에서는 커널 명령줄에 사용할
dracut
initramfs 생성기에 대해 다음 변수가 도입되었습니다.
rd.net.dhcp.retry=cnt
- 이 옵션이 설정되어 있으면dracut
유틸리티는 실패하기 전에 DHCP cnt 시간을 통해 연결을 시도합니다. 기본값은 1입니다.rd.net.timeout.dhcp=arg
- 이 옵션이 설정되면 dhclient 명령은-timeout arg
옵션을 사용하여 호출됩니다.rd.net.timeout.iflink=seconds
링크가 표시될 때까지 시간( 초 )을 기다립니다. 기본값은 60초입니다.rd.net.timeout.ifup=seconds
- link의UP
상태가 될 때까지 시간( 초 )을 기다립니다. 기본값은 20초입니다.rd.net.timeout.route=seconds
- 경로가 표시될 때까지 시간( 초 )을 기다립니다. 기본값은 20초입니다.rd.net.timeout.ipv6dad=seconds
- IPv6 DAD가 완료될 때까지 시간( 초 )을 기다립니다. 기본값은 50초입니다.rd.net.timeout.ipv6auto=seconds
- IPv6 자동 주소가 할당될 때까지 시간( 초 )을 기다립니다. 기본값은 40초입니다.rd.net.timeout.carrier=seconds
- 캐리어가 인식될 때까지의 시간( 초 )을 기다립니다. 기본값은 5초입니다.