Linux 서버를 운영하다 보면 가장 심각한 장애 중 하나인 Kernel Panic을 경험할 수 있습니다. Kernel Panic은 Linux 커널이 더 이상 정상적으로 동작할 수 없는 치명적인 오류를 감지했을 때 시스템을 즉시 중단시키는 보호 메커니즘입니다.
일반적인 프로그램 오류는 해당 프로세스만 종료되지만, Kernel Panic은 운영체제 자체가 멈추므로 SSH 접속이 끊기고 모든 서비스가 중단됩니다. 데이터베이스, 웹 서버, 가상화 서버 등 운영 환경에서는 큰 장애로 이어질 수 있기 때문에 원인을 신속하게 분석하고 복구하는 것이 매우 중요합니다.
이번 글에서는 Kernel Panic이 발생하는 원인과 복구 절차를 실무 중심으로 알아보겠습니다.
Kernel Panic이란 무엇인가?
Kernel Panic은 Linux 커널이 복구할 수 없는 치명적인 오류를 감지했을 때 시스템을 중지시키는 기능입니다.
대표적인 화면은 다음과 같습니다.
Kernel panic - not syncing: Fatal exception
또는
Kernel panic - not syncing: Attempted to kill init!
또는
Kernel panic - not syncing: VFS: Unable to mount root fs
Kernel Panic이 발생하면 대부분의 경우 시스템은 더 이상 정상적으로 동작하지 않으며 재부팅이 필요합니다.
Kernel Panic이 발생하는 대표적인 원인
다음과 같은 경우에 자주 발생합니다.
- 커널 버그
- 손상된 커널 이미지
- 메모리(ECC/RAM) 오류
- 디스크 장애
- 루트 파일 시스템 손상
- 잘못된 커널 모듈
- 드라이버 충돌
- CPU 오류
- 파일 시스템 오류
- 하드웨어 불량
실무에서는 Kernel Panic 직전의 로그를 확인하는 것이 가장 중요합니다.
1. 마지막 부팅 로그 확인하기
재부팅 후 이전 부팅 로그를 확인합니다.
journalctl -k -b -1
또는
journalctl -b -1
Kernel Panic 직전에 어떤 오류가 발생했는지 확인합니다.
2. 커널 로그 확인하기
현재 커널 로그를 확인합니다.
dmesg
또는
dmesg -T
다음과 같은 오류가 있는지 확인합니다.
- Call Trace
- BUG
- Kernel BUG
- General Protection Fault
- Unable to handle kernel paging request
3. 부팅 로그 확인하기
부팅 과정에서 오류가 발생했는지 확인합니다.
journalctl -xb
또는
systemd-analyze blame
부팅 중 실패한 서비스가 있는지도 함께 확인합니다.
4. 디스크 상태 확인하기
디스크 이상 여부를 확인합니다.
smartctl -H /dev/sda
상세 정보
smartctl -a /dev/sda
SMART 오류가 있다면 저장 장치 이상을 의심해야 합니다.
5. 파일 시스템 검사하기
파일 시스템 손상이 있는지 확인합니다.
fsck /dev/sda1
루트 파티션은 복구 모드에서 검사하는 것이 안전합니다.
6. 메모리 검사하기
RAM 오류는 Kernel Panic의 주요 원인입니다.
메모리 테스트는 다음과 같은 방법으로 수행합니다.
- MemTest86+
- 서버 제조사 진단 도구
- ECC Error Log 확인
ECC 메모리를 사용하는 서버에서는 BIOS와 BMC 로그도 함께 확인하는 것이 좋습니다.
7. 커널 버전 확인하기
현재 실행 중인 커널 버전을 확인합니다.
uname -r
설치된 커널 목록
rpm -qa | grep kernel
또는
dpkg -l | grep linux-image
커널 업데이트 이후 문제가 발생했다면 이전 버전으로 부팅하여 비교해 볼 수 있습니다.
8. 커널 모듈 확인하기
로드된 모듈을 확인합니다.
lsmod
최근 추가한 드라이버나 모듈이 있다면 충돌 여부를 확인합니다.
모듈 정보 확인
modinfo 모듈명
9. 하드웨어 로그 확인하기
서버라면 하드웨어 이벤트 로그도 함께 확인합니다.
예를 들어 IPMI를 사용하는 경우
ipmitool sel list
전원 이상, 메모리 오류, CPU 오류 등이 기록되어 있을 수 있습니다.
10. Crash Dump 분석하기
kdump가 활성화되어 있다면 Crash Dump를 분석합니다.
Crash Dump 위치 확인
ls /var/crash
분석 도구
crash vmcore
Kernel Panic의 정확한 원인을 분석할 때 매우 유용합니다.
Kernel Panic 문제를 확인하는 순서
실무에서는 다음 순서대로 점검하는 것이 가장 효율적입니다.
- 이전 부팅 로그 확인
dmesg확인journalctl -xb확인- SMART 상태 확인
fsck실행- 메모리 검사
- 커널 버전 확인
- 커널 모듈 확인
- 하드웨어 로그 확인
- Crash Dump 분석
이 순서대로 점검하면 대부분의 원인을 체계적으로 분석할 수 있습니다.
Kernel Panic을 예방하는 방법
Kernel Panic은 대부분 커널, 하드웨어, 파일 시스템 문제에서 발생하므로 예방이 중요합니다.
다음과 같은 관리 방법을 권장합니다.
- 커널 업데이트 전 테스트
- ECC 메모리 사용
- SMART 모니터링
- 정기적인 파일 시스템 검사
- 안정적인 전원 공급(UPS)
- 최신 드라이버 사용
- RAID 구성
- Crash Dump 활성화
운영 서버에서는 kdump를 활성화해 두면 장애 분석 시간을 크게 줄일 수 있습니다.
자주 묻는 질문
Kernel Panic이 발생하면 무조건 재설치해야 하나요?
아닙니다. 로그 분석을 통해 커널 버그, 하드웨어 문제, 파일 시스템 손상 등 원인을 먼저 확인해야 합니다.
Kernel Panic과 Oops는 같은 것인가요?
아닙니다. Kernel Oops는 일부 커널 오류이며 시스템이 계속 동작할 수도 있습니다. Kernel Panic은 운영체제가 더 이상 동작할 수 없는 치명적인 상태입니다.
Kernel Panic이 반복해서 발생합니다.
하드웨어 문제(RAM, SSD, RAID Controller), 커널 버그, 손상된 드라이버 등을 종합적으로 점검해야 합니다.
마무리
Kernel Panic은 Linux 서버에서 가장 심각한 장애 중 하나이며, 단순 재부팅으로 끝낼 문제가 아닙니다. journalctl, dmesg, smartctl, fsck, lsmod, ipmitool, kdump 등을 활용하면 장애 원인을 체계적으로 분석할 수 있습니다. 특히 운영 환경에서는 Crash Dump를 활성화하고 하드웨어 상태를 지속적으로 모니터링하면 재발 방지와 장애 대응 시간을 크게 줄일 수 있습니다.