10.6. 커널
특정 BCC 유틸리티는 무해한 경고를 표시합니다.
일부 컴파일러 특정 커널 헤더의 매크로 재정의로 인해. 일부 BCC(BPF Compiler Collection) 유틸리티는 다음 경고를 표시합니다.
warning: __no_sanitize_address' macro redefined [-Wmacro-redefined]
경고는 무해하며 무시해도 됩니다.
(BZ#1907271)
메모리 핫플러그 또는 언플러그 작업 후 vmcore 캡처가 실패합니다.
메모리 핫플러그 또는 핫 플러그 해제 작업을 수행한 후에는 메모리 레이아웃 정보가 포함된 장치 트리를 업데이트한 후 이벤트가 제공됩니다. 따라서 makedumpfile
유틸리티는 존재하지 않는 실제 주소에 액세스를 시도합니다. 다음 모든 조건이 충족되면 문제가 표시됩니다.
- RHEL 8을 실행하는 IBM Power System의 little-endian 변형.
-
kdump
또는fadump
서비스가 시스템에서 활성화됩니다.
결과적으로 메모리 핫플러그 또는 핫 플러그 작업 후에 커널 충돌이 트리거되면 캡처 커널이 vmcore
를 저장하지 못합니다.
이 문제를 해결하려면 핫 플러그 또는 핫 플러그 후 kdump
서비스를 다시 시작하십시오.
# systemctl restart kdump.service
결과적으로 설명된 시나리오에 vmcore
가 성공적으로 저장됩니다.
(BZ#1793389)
Kdump는 SSH 또는 NFS 덤프 대상에서 vmcore 덤프에 실패했습니다.
새 버전의 dracut-network
는 ipcalc
가 필요한 dhcp-client
에 종속 항목을 삭제합니다. 결과적으로 NIC 포트가 고정 IP로 구성되고 SSH 또는 NFS 덤프 대상에서 덤프하도록 kdump
가 구성되면 다음 오류 메시지가 표시되고 kdump
가 실패합니다.
ipcalc: command not found
이 문제를 해결하려면 다음을 수행합니다.
ipcalc
패키지를 수동으로 설치합니다.dnf install ipcalc
kdump
에 사용할initramfs
를 다시 빌드합니다.kdumpctrl rebuild
kdump
서비스를 다시 시작합니다.systemctl restart kdump
따라서 설명된 시나리오에서 kdump
가 성공합니다.
(BZ#1931266)
RHEL 8의 크래시 캡처 환경에서 커널을 부팅하지 못했습니다.
디버그 커널의 메모리 수요 특성으로 인해 디버그 커널이 사용 중이고 커널 패닉이 트리거되면 문제가 발생합니다. 결과적으로 디버그 커널은 캡처 커널로 부팅할 수 없으며 대신 스택 추적이 생성됩니다. 이 문제를 해결하려면 크래시 커널 메모리를 적절하게 늘립니다. 결과적으로 디버그 커널이 크래시 캡처 환경에서 성공적으로 부팅됩니다.
(BZ#1659609)
부팅 시 크래시 커널의 메모리 할당이 실패합니다
일부 Ampere Altra 시스템에서 BIOS 설정에서 32비트 지역이 비활성화되면 메모리 할당이 실패합니다. 결과적으로 기존 메모리는 메모리 할당을 예약할 만큼 크지 않으므로 kdump
서비스가 시작되지 않습니다.
이 문제를 해결하려면 다음과 같이 BIOS에서 32비트 CPU를 활성화합니다.
- 시스템에서 BIOS 설정을 엽니다.
- 설정 메뉴 를 엽니다.
-
Memory Configuration(메모리 구성) 에서
Slave 32비트
옵션을 활성화합니다.
결과적으로 크래시 커널이 32비트 지역 내의 메모리를 할당하고 kdump
서비스가 예상대로 작동합니다.
(BZ#1940674)
특정 커널 드라이버가 버전을 표시하지 않음
RHEL 8.4에서는 많은 네트워킹 커널 드라이버의 모듈 버전 지정에 대한 동작이 변경되었습니다. 결과적으로 이러한 드라이버는 이제 버전을 표시하지 않습니다. 또는 ethtool -i
명령을 실행한 후 드라이버는 드라이버 버전 대신 커널 버전을 표시합니다. 이 문제를 해결하기 위해 사용자는 다음 명령을 실행할 수 있습니다.
# modinfo <AFFECTED_DRIVER> | grep rhelversion
결과적으로 사용자는 필요한 시나리오에서 영향을 받는 커널 드라이버 버전을 확인할 수 있습니다.
드라이버 버전 문자열의 변경 양은 드라이버 자체의 변화량에 대한 실제 고려 사항이 없다는 점에 유의하십시오.
(BZ#1944639)
irqpoll을 사용하면 vmcore 생성에 실패합니다.
AWS(Amazon Web Services) 클라우드 플랫폼에서 실행되는 64비트 ARM 아키텍처의 nvme
드라이버에 대한 기존 문제로 인해 첫 번째 커널에 irqpoll
커널 명령줄 매개변수를 제공할 때 vmcore
생성이 실패합니다. 결과적으로 커널 충돌 후 /var/crash/
디렉토리에 vmcore
파일이 덤프되지 않습니다. 이 문제를 해결하려면 다음을 수행합니다.
/etc/sysconfig/kdump
파일에irqpoll
을KDUMP_COMMANDLINE_REMOVE
에 추가합니다.KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
/etc/sysconfig/kdump
파일의KDUMP_COMMANDLINE_APPEND
에서irqpoll
을 제거합니다.KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
-
systemctl restart
.kdump
명령을 실행하여 kdump 서비스를 다시 시작합니다
결과적으로 첫 번째 커널이 올바르게 부팅되고 vmcore
파일이 커널 충돌 시 캡처될 것으로 예상됩니다.
kdump
서비스는 상당한 양의 크래시 커널 메모리를 사용하여 vmcore
파일을 덤프할 수 있습니다. 캡처 커널에 kdump
서비스에 사용할 수 있는 메모리가 충분한지 확인합니다.
(BZ#1654962)
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)
커널 ACPI 드라이버는 PCIe ECAM 메모리 리전에 액세스할 수 없음을 보고합니다.
펌웨어에서 제공하는 ACPI(Advanced Configuration and Power Interface) 표는 PCI 버스 장치의 현재 리소스 설정(_CRS) 방법의 PCI 버스에서 메모리 영역을 정의하지 않습니다. 결과적으로 시스템 부팅 중에 다음 경고 메시지가 발생합니다.
[ 2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace [ 2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]
그러나 커널이 0x30000000-0x31ffff 메모리 영역에 계속 액세스할 수 있으며 해당 메모리
지역을 PCI ECAM(Enhanced Configuration Access Mechanism)에 올바르게 할당할 수 있습니다. 다음 출력으로 256바이트 오프셋을 통해 PCIe 구성 공간에 액세스하여 PCI ECAM이 올바르게 작동하는지 확인할 수 있습니다.
03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express]) ... Capabilities: [900 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us
결과적으로 경고 메시지를 무시할 수 있습니다.
문제에 대한 자세한 내용은 "Firmware Bug를 참조하십시오. ECAM 영역 mem 0x30000000-0x31ffffffffffff
ff in ACPI namespace"는 시스템 부팅 솔루션 중에 표시됩니다.
(BZ#1868526)
기본 설정의 hwloc 명령은 단일 CPU Power9 및 Power10 LPAR에서 작동하지 않습니다.
버전 2.2.0의 hwloc
패키지를 사용하면 Power9 / Power10 CPU를 실행하는 단일 노드 NUMA(Non-Uniform Memory Access) 시스템은 "비허용"으로 간주됩니다. 결과적으로 모든 hwloc
명령이 작동하지 않고 다음 오류 메시지가 표시됩니다.
Topology does not contain any NUMA node, aborting!
이 두 가지 옵션 중 하나를 사용하여 이 문제를 해결할 수 있습니다.
-
환경 변수
HWLOC_ALLOW=all
설정 -
다양한
hwloc
명령과 함께 비활성화된플래그
사용
결과적으로 hwloc
명령은 설명된 시나리오에 오류를 반환하지 않습니다.
OPEN MPI 라이브러리는 기본 PML을 사용하여 런타임 오류를 트리거할 수 있습니다.
OPEN MPI(Open Message Passing Interface) 구현 4.0.x 시리즈에서 UKX(Unified Communication X)는 기본 PML(Point-to-Point Communicator)입니다. 최신 버전의 OPEN MPI 4.0.x 시리즈의 경우 openib
Byte Transfer Layer(BTL)가 더 이상 사용되지 않습니다.
그러나 동일 하드웨어 및 소프트웨어 구성 ( 동일한 하드웨어 및 소프트웨어 구성)을 통해 실행되는 경우, UCX는 여전히 MPI 단면 작업에 openib
BTL을 사용합니다. 결과적으로 실행 오류가 발생할 수 있습니다. 이 문제를 해결하려면 다음을 수행합니다.
-
다음 매개변수를 사용하여
mpirun
명령을 실행합니다.
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0
다음과 같습니다.
-
m
ca btl openib
매개 변수는openib
BTL을 비활성화합니다. -
m
ca pml ucx
매개 변수는 OPEN MPI를 구성하여PM
L을 사용합니다. -
x UCX_NET_DEVICES=
매개변수는 지정된 장치를 사용하도록 UCX를 제한합니다.
OPEN MPI는 이기종 클러스터(다양한 하드웨어 및 소프트웨어 구성)를 통해 실행할 때 UCX를 기본 PML으로 사용합니다. 결과적으로 OPEN MPI 작업이 잘못된 성능, 응답 없는 동작 또는 크래시 오류로 실행될 수 있습니다. 이 문제를 해결하려면 UCX 우선 순위를 다음과 같이 설정합니다.
-
다음 매개변수를 사용하여
mpirun
명령을 실행합니다.
-mca pml_ucx_priority 5
결과적으로 OPEN MPI 라이브러리는 UCX를 통해 사용 가능한 대체 전송 계층을 선택할 수 있습니다.
(BZ#1866402)
가상 머신에 가상 기능을 연결할 때 연결이 실패합니다
an ionic
장치 드라이버를 사용하는 Pensando 네트워크 카드는 VLAN 태그 구성 요청을 자동으로 수락하고VF
(네트워크 가상 기능)를VM
(가상 시스템)에 연결하는 동안 네트워크 연결을 구성합니다. 이 기능은 카드 펌웨어에서 아직 지원하지 않으므로 이러한 네트워크 연결이 실패합니다.
(BZ#1930576)