7장. 커널 크래시 덤프 가이드
7.1. kdump 소개
7.1.1. kdump 및 kexec 정보
kdump
는 크래시 덤프 메커니즘을 제공하는 서비스입니다. 이 서비스를 사용하면 분석을 위해 시스템 메모리의 내용을 저장할 수 있습니다.
kdump
는 kexec
시스템 호출을 사용하여 재부팅하지 않고 두 번째 커널(커널 캡처)으로 부팅한 다음 충돌된 커널 메모리 ( crash dump 또는 vmcore)의 콘텐츠를 캡처하여 파일에 저장합니다. 두 번째 커널은 시스템 메모리의 예약된 부분에 있습니다.
커널 크래시 덤프는 실패 시 사용할 수 있는 유일한 정보일 수 있으며, 비즈니스에 중요한 환경에서 이 데이터를 갖는 것의 중요성은 과소평가할 수 없습니다. Red Hat은 시스템 관리자가 일반 커널 업데이트 주기에서 kexec-tools
를 정기적으로 업데이트하고 테스트하는 것이 좋습니다. 이는 새로운 커널 기능을 구현할 때 특히 중요합니다.
HP Watchdog 타이머(hpwdt) 드라이버는 RHEV 하이퍼바이저로 실행되는 HP 시스템에 사전 로드되므로 이러한 시스템은 NMI 워치독을 사용할 수 있습니다. kexec-tools-2.0.15-33.el7.x86_64 로 시작하는 업데이트된 kexec-tools 패키지는 hpwdt 드라이버를 미리 로드했습니다.
kdump 커널에서 bnx2x 및 bmx2fc 드라이버가 블랙리스트로 지정되지 않으면 두 번째 커널에서 패닉 상태가 되고 덤프가 캡처되지 않습니다.
7.1.2. 메모리 요구 사항
kdump가 커널 크래시 덤프를 캡처하여 추가 분석을 위해 저장할 수 있으려면 캡처 커널에 대해 시스템 메모리의 일부를 영구적으로 예약해야 합니다. 예약된 경우 시스템 메모리의 이 부분은 기본 커널에서 사용할 수 없습니다.
메모리 요구 사항은 특정 시스템 매개변수에 따라 다릅니다. 주요 요인 중 하나는 시스템의 하드웨어 아키텍처입니다. 시스템 아키텍처의 정확한 이름(예: x86_64
)을 검색하고 표준 출력에 출력하려면 쉘 프롬프트에서 다음 명령을 입력합니다.
uname -m
uname -m
예약할 메모리 크기에 영향을 주는 또 다른 요소는 설치된 시스템 메모리의 총 양입니다. 예를 들어 x86_64 아키텍처에서 예약된 메모리 크기는 4KB의 RAM마다 160MB + 2비트입니다. 총 물리 메모리가 1TB인 시스템에서는 224MB(160MB + 64MB)를 의미합니다. 시스템 아키텍처 및 실제 메모리 양에 따라 kdump에 대한 전체 메모리 요구 사항 목록은 7.8.1절. “kdump에 대한 메모리 요구 사항” 에서 참조하십시오.
많은 시스템에서 kdump는 필요한 메모리 양을 추정하고 자동으로 예약할 수 있습니다. 이 동작은 기본적으로 활성화되어 있지만 특정 양의 사용 가능한 메모리를 초과하는 시스템에서만 작동하며 시스템 아키텍처에 따라 다릅니다. 시스템 아키텍처에 따라 자동 메모리 예약에 대한 최소 요구 사항 목록은 7.8.2절. “자동 메모리 예약에 대한 최소 임계값” 을 참조하십시오.
시스템에 자동 할당이 작동하는 데 필요한 최소 메모리 양보다 적거나 사용 사례에 다른 값이 필요한 경우 수동으로 예약된 메모리 양을 구성할 수 있습니다. 명령줄에서 이 작업을 수행하는 방법에 대한 자세한 내용은 7.2.2.1절. “메모리 사용량 구성” 을 참조하십시오. 그래픽 사용자 인터페이스에서 예약된 메모리 양을 구성하는 방법에 대한 자세한 내용은 7.2.3.1절. “메모리 사용량 구성” 을 참조하십시오.
자동 메모리 예약을 사용하는 경우에도 kdump 서비스를 설정한 후 설정을 테스트하는 것이 좋습니다. 구성을 테스트하는 방법에 대한 지침은 7.4절. “kdump 설정 테스트” 을 참조하십시오.