5.7.6. 커널
실수로 패치 제거로 인해 huge_page_setup_helper.py
가 오류가 표시됨
huge_page_setup_helper.py
스크립트를 업데이트하는 패치가 실수로 제거되었습니다. 결과적으로 huge_page_setup_helper.py
스크립트를 실행하면 다음과 같은 오류 메시지가 표시됩니다.
SyntaxError: Missing parentheses in call to 'print'
이 문제를 해결하려면 RHEL 8.1에서 huge_page_setup_helper.py
스크립트를 복사하여 /usr/bin/
디렉토리에 설치합니다.
-
RHEL-8
.1.0 설치 미디어 또는 Red Hat 고객 포털에서 libhugetlbfs-utils-2.21-3.el8.x86_64.rpm 패키지를 다운로드합니다
. rpm2cpio
명령을 실행합니다.# rpm2cpio libhugetlbfs-utils-2.21-3.el8.x86_64.rpm | cpio -D / -iduv '*/huge_page_setup_helper.py'
명령은 RHEL 8.1 RPM에서
huge_page_setup_helper.py
스크립트를 추출하여/usr/bin/
디렉터리에 저장합니다.
결과적으로 huge_page_setup_helper.py
스크립트가 올바르게 작동합니다.
(BZ#1823398)
부팅 프로세스 중 많은 양의 영구 메모리 경험이 있는 시스템
메모리 초기화가 직렬화되므로 많은 양의 영구 메모리가 있는 시스템은 부팅하는 데 시간이 오래 걸립니다. 결과적으로 /etc/fstab
파일에 영구 메모리 파일 시스템이 나열된 경우 장치를 사용할 수 있을 때까지 기다리는 동안 시스템이 시간 초과될 수 있습니다. 이 문제를 해결하려면 /etc/systemd/system.conf
파일에서 DefaultTimeoutStartSec
옵션을 충분히 큰 값으로 구성하십시오.
(BZ#1666538)
KSM이 NUMA 메모리 정책을 무시하는 경우가 있음
merge_across_nodes=1
매개 변수를 사용하여 KSM(커널 공유 메모리) 기능을 활성화하면 KSM은 mbind() 함수에서 설정한 메모리 정책을 무시하고 일부 메모리 영역의 페이지를 정책과 일치하지 않는 NUMA(Non-Uniform Memory Access) 노드에 병합할 수 있습니다.
이 문제를 해결하려면 QEMU와 함께 NUMA 메모리 바인딩을 사용하는 경우 KSM을 비활성화하거나 merge_across_nodes
매개변수를 0
으로 설정합니다. 결과적으로 KVM VM에 대해 구성된 NUMA 메모리 정책이 예상대로 작동되게 됩니다.
(BZ#1153521)
RHEL 8의 크래시 캡처 환경에서 커널을 부팅하지 못했습니다.
디버그 커널의 메모리 수요 특성으로 인해 디버그 커널이 사용 중이고 커널 패닉이 트리거되면 문제가 발생합니다. 결과적으로 디버그 커널은 캡처 커널로 부팅할 수 없으며 대신 스택 추적이 생성됩니다. 이 문제를 해결하려면 크래시 커널 메모리를 적절하게 늘립니다. 결과적으로 디버그 커널이 크래시 캡처 환경에서 성공적으로 부팅됩니다.
(BZ#1659609)
zlib
일부 압축 함수에서 vmcore
캡처 속도가 느려질 수 있습니다.
kdump
구성 파일은 기본적으로 lzo
압축 형식(makedumpfile -l
)을 사용합니다. zlib
압축 형식(makedumpfile -c
)을 사용하여 구성 파일을 수정할 때 vmcore
캡처 프로세스의 속도를 저하시키는 대신 압축 요인이 향상될 수 있습니다. 그 결과 lzo
에 비해 kdump
가 zlib
를 사용하여 vmcore
를 캡처하는 데 최대 4배 더 걸립니다.
따라서 속도가 주요 추진 요인인 경우에는 기본 lzo
를 사용하는 것이 좋습니다. 그러나 대상 시스템이 사용 가능한 공간이 부족한 경우 zlib
가 더 나은 옵션입니다.
(BZ#1790635)
메모리 핫플러그 또는 언플러그 작업 후 vmcore
캡처가 실패합니다.
메모리 핫플러그 또는 핫 플러그 해제 작업을 수행한 후에는 메모리 레이아웃 정보가 포함된 장치 트리를 업데이트한 후 이벤트가 제공됩니다. 따라서 makedumpfile
유틸리티는 존재하지 않는 실제 주소에 액세스를 시도합니다. 다음 모든 조건이 충족되면 문제가 표시됩니다.
- RHEL 8을 실행하는 IBM Power System의 little-endian 변형.
-
kdump
또는fadump
서비스가 시스템에서 활성화됩니다.
결과적으로 메모리 핫플러그 또는 핫 플러그 작업 후에 커널 충돌이 트리거되면 캡처 커널이 vmcore
를 저장하지 못합니다.
이 문제를 해결하려면 핫 플러그 또는 핫 플러그 후 kdump
서비스를 다시 시작하십시오.
# systemctl restart kdump.service
결과적으로 설명된 시나리오에 vmcore
가 성공적으로 저장됩니다.
(BZ#1793389)
fadump
덤프 메커니즘은 네트워크 인터페이스의 이름을 kdump-<interface-name>
으로 변경합니다.
펌웨어 지원 덤프(fadump
)를 사용하여 vmcore
를 캡처하고 SSH 또는 NFS 프로토콜을 사용하여 원격 머신에 저장하는 경우 네트워크 인터페이스의 이름을 kdump-<interface-name>
으로 변경합니다. <interface-name>
이 일반인 경우 이름 변경이 발생합니다(예: *eth# 또는 net# 등). 이 문제는 초기 RAM 디스크(initrd)
의 vmcore
캡처 스크립트를 네트워크 인터페이스 이름에 kdump- 접두사를 추가하여 영구적인 명명을 보안하기 때문에 발생합니다. 동일한 initrd
도 일반 부팅에 사용되므로 프로덕션 커널의 인터페이스 이름도 변경됩니다.
(BZ#1745507)
fadump
가 활성화된 경우 부팅 시 시스템이 긴급 모드로 전환됩니다.
systemd
관리자가 마운트 정보를 가져오지 못하고 마운트할 LV 파티션을 구성하지 못하기 때문에 initramfs
스키마에서 fadump
(kdump)
또는 dracut
squash 모듈이 활성화된 경우 시스템이 긴급 모드로 들어갑니다. 이 문제를 해결하려면 다음 커널 명령줄 parameter rd.lvm.lv=<VG>/<LV>
를 추가하여 실패한 LV 파티션을 적절하게 검색하고 마운트합니다. 따라서 설명된 시나리오에서 시스템이 성공적으로 부팅됩니다.
(BZ#1750278)
irqpoll
을 사용하면 vmcore
생성에 실패합니다.
AWS(Amazon Web Services) 클라우드 플랫폼에서 실행되는 64비트 ARM 아키텍처의 nvme
드라이버에 대한 기존 문제로 인해 첫 번째 커널에 irqpoll
커널 명령줄 매개변수를 제공할 때 vmcore
생성이 실패합니다. 결과적으로 커널 충돌 후 /var/crash/
디렉토리에 vmcore
파일이 덤프되지 않습니다. 이 문제를 해결하려면 다음을 수행합니다.
-
/etc/sysconfig/kdump
파일의KDUMP_COMMANDLINE_REMOVE
키에irqpoll
을 추가합니다. -
systemctl restart
.kdump
명령을 실행하여 kdump 서비스를 다시 시작합니다
결과적으로 첫 번째 커널이 올바르게 부팅되고 vmcore
파일이 커널 충돌 시 캡처될 것으로 예상됩니다.
kdump
서비스는 상당한 양의 크래시 커널 메모리를 사용하여 vmcore
파일을 덤프할 수 있습니다. 캡처 커널에 kdump
서비스에 사용할 수 있는 메모리가 충분한지 확인합니다.
(BZ#1654962)
vPMEM 메모리를 덤프 대상으로 사용하면 커널 크래시 캡처 프로세스가 지연됩니다.
vPEM(가상 영구 메모리) 네임스페이스를 kdump
또는 fadump
대상으로 사용하는 경우 papr_scm
모듈은 vPMEM에서 지원하는 메모리를 매핑하고 다시 매핑하고 메모리를 선형 맵에 다시 추가해야 합니다. 결과적으로 이 동작으로 인해 하이퍼바이저 호출(HCalls)이 POWER Hypervisor로 트리거되고 총 시간이 걸리기 때문에 캡처 커널 부팅 속도가 상당히 느립니다. 따라서 vPMEM 네임스페이스를 kdump 또는 fadump의 덤프 대상으로 사용하지 않는 것이 좋습니다.
vPMEM을 사용해야 하는 경우 이 문제를 해결하려면 다음 명령을 실행합니다.
/etc/dracut.conf.d/99-pmem-workaround.conf
파일을 만들고 다음을 추가합니다.add_drivers+="nd_pmem nd_btt libnvdimm papr_scm"
초기 RAM 디스크(initrd) 파일 시스템을 다시 빌드합니다.
# touch /etc/kdump.conf # systemctl restart kdump.service
(BZ#1792125)
HP NMI 워치독이 항상 크래시 덤프를 생성하지는 않음
경우에 따라 HP NMI 워치독의 hpwdt
드라이버는 perfmon
드라이버에서 NMI(maskable interrupt)를 사용했기 때문에 HPE 워치독 타이머에서 생성한 NMI(NMI)를 요청할 수 없습니다.
누락된 NMI는 다음 두 가지 조건 중 하나로 시작됩니다.
- iLO(Integrated Lights-Out) 서버 관리 소프트웨어에서 Generate NMI 버튼. 이 버튼은 사용자가 트리거합니다.
-
hpwdt
watchdog. 만료는 기본적으로 서버로 NMI를 보냅니다.
두 시퀀스 모두 시스템이 응답하지 않는 경우 일반적으로 발생합니다. 정상적인 상황에서 이러한 두 상황에 대한 NMI 핸들러는 커널 panic()
함수를 호출하고 구성된 경우 kdump
서비스에서 vmcore
파일을 생성합니다.
그러나 누락된 NMI로 인해 kernel panic()
은 호출되지 않으며 vmcore
는 수집되지 않습니다.
첫 번째 사례(1.)에서 시스템이 응답하지 않은 경우 그대로 유지됩니다. 이 시나리오를 수행하려면 virtual Power(가상 전원 ) 버튼을 사용하여 서버를 재설정하거나 전원을 켭니다.
두 번째 경우(2.) 누락된 NMI는 AAS(Automated System Recovery)에서 9초 후에 재설정됩니다.
HPE Gen9 Server 라인은 이 문제를 한 자리 숫자 비율로 경험합니다. Gen10은 훨씬 더 작은 빈도입니다.
(BZ#1602962)
tuned-adm profile powersave
명령을 사용하면 시스템이 응답하지 않습니다.
tuned-adm profile powersave
명령을 실행하면 이전 Thunderx(CN88x) 프로세서가 있는 Penguin Valkymaster 2000 2소켓 시스템이 응답하지 않는 상태가 됩니다. 그 결과 시스템을 재부팅하여 작동을 재개합니다. 이 문제를 해결하려면 시스템에서 언급된 사양과 일치하는 경우 powersave
프로필을 사용하지 마십시오.
(BZ#1609288)
cxgb4
드라이버로 인해 kdump 커널에서 충돌이 발생합니다.
vmcore
파일에 정보를 저장하려는 동안 kdump
커널이 충돌합니다. 결과적으로 cxgb4
드라이버는 kdump
커널이 나중에 분석을 위해 코어를 저장하지 못하게 합니다. 이 문제를 해결하려면 핵심 파일을 저장할 수 있도록 kdump 커널 명령줄에 novmcoredd
매개변수를 추가합니다.
(BZ#1708456)
모드 5(밸런싱-tlb
) 본딩 마스터 인터페이스에 ICE
드라이버 NIC 포트를 추가하려고 하면 실패할 수 있습니다.
모드 5(balance-tlb) 본딩 마스터 인터페이스에 ICE
드라이버 NIC 포트를 추가하려고 하면 Master 'bond0', Slave 'ens1f0' 오류가 발생할 수 있습니다. 오류: enslave failed
. 결과적으로 NIC 포트를 본딩 마스터 인터페이스에 추가하는 간헐적인 오류가 발생합니다. 이 문제를 해결하려면 인터페이스 추가를 다시 시도합니다.
(BZ#1791664)
인터페이스 type='hostdev'를 사용하여 가상 머신을 가상 머신에 연결하는 데
실패할 수 있습니다.
<interface type='hostdev'> 메서드를 사용하여 할당 후 .XML 파일을 사용하여
가상 머신에 VF(가상 기능)를 연결하는 데 실패할 수 있습니다. 이러한 문제는 Assignment with <interface type='hostdev'>
메서드를 사용하면 VM이 이 가상 머신에 표시되는 VF NIC에 연결할 수 없기 때문입니다. 이 문제를 해결하려면 Assignment with <hostdev>
메서드를 사용하여 .XML 파일을 사용하여 VM에 VF를 연결합니다. 결과적으로 virsh attach-device
명령이 오류 없이 성공합니다. Assignment with <hostdev> 및
(SRIOV 장치만 해당)의 차이점에 대한 자세한 내용은 호스트 네트워크 장치의 PCI 통과를 참조하십시오.
Assignment with <
interface type='hostdev'>
(BZ#1792691)