안녕하세요! ESXi 환경을 운영하시다가 갑작스럽게 나타나는 보라색 화면, 일명 PSOD(Purple Screen of Death)를 만나셨나요? 특히 “GP Exception 13 in world 32771” 오류는 많은 관리자분들을 당황하게 만드는 문제 중 하나입니다.
이번 글에서는 이 문제가 왜 발생하는지, 그리고 어떻게 해결할 수 있는지를 단계별로 자세히 알아보겠습니다. 실제 현장에서 검증된 해결방법들을 중심으로 설명드리니 끝까지 따라와 주세요!
GP Exception 13 오류는 일반 보호 오류(General Protection Fault)로, ESXi 호스트에서 메모리 접근 권한 위반이나 잘못된 명령어 실행 시 발생합니다. “world 32771″은 특정 VMware 워크로드에서 발생한 것을 의미하며, 주로 네트워크 관련 드라이버나 하드웨어 문제와 연관이 깊습니다. 이 오류는 하드웨어 또는 소프트웨어 문제로 인해 발생할 수 있으며, 메모리 접근 권한 충돌이나 보호된 메모리 영역에 대한 잘못된 접근으로 인해 나타납니다.
1. 네트워크 드라이버 문제 해결
E1000 드라이버에서 VMXNET3로 변경
가장 흔한 원인 중 하나는 E1000 네트워크 드라이버 사용입니다. 많은 사례에서 E1000 드라이버 사용이 이 오류의 원인으로 확인되었습니다.
해결 단계:
- 가상머신 종료
- vCenter Client나 ESXi Web Client에서 해당 VM 종료
- 네트워크 어댑터 변경
- VM 설정 편집 (Edit Settings) 선택
- 하드웨어 (Hardware) 탭에서 네트워크 어댑터 선택
- 어댑터 유형을 VMXNET 3로 변경
- VMware Tools 업데이트
# VM 부팅 후 최신 VMware Tools 설치 mount /dev/cdrom /mnt cd /mnt tar -xzvf VMwareTools-*.tar.gz cd vmware-tools-distrib ./vmware-install.pl
VMXNET3 하드웨어 LRO 비활성화
VMXNET3 어댑터에서도 하드웨어 LRO(Large Receive Offload) 기능으로 인한 PSOD가 발생할 수 있습니다. 이는 ESXi 6.0 U2에서 특히 문제가 되었습니다.
ESXi 호스트에서 설정:
# SSH로 ESXi 호스트 접속 후 실행
esxcli system settings advanced set -o /Net/Vmxnet3HwLRO -i 0
설정 항목 | 기본값 | 권장값 | 설명 |
---|---|---|---|
Net.Vmxnet3HwLRO | 1 (활성화) | 0 (비활성화) | 하드웨어 LRO 기능 제어 |
2. Intel 13세대/12세대 CPU 관련 문제 해결
Intel 13세대(Raptor Lake) CPU를 사용하는 시스템에서 E-Core나 P-Core를 비활성화하지 않으면 VM 부팅 시 이 오류가 발생할 수 있습니다.
옵션 1: BIOS에서 E-Core 비활성화 (권장)
BIOS 설정 단계:
- 시스템 부팅 시 BIOS/UEFI 진입
- CPU 설정 (CPU Configuration) 메뉴 이동
- Efficiency Cores 또는 E-Cores 옵션을 Disabled로 설정
- 설정 저장 후 재부팅
옵션 2: ESXi 커널 설정 변경
BIOS에서 설정할 수 없는 경우 다음 방법을 사용하세요:
부팅 시 임시 설정:
- ESXi 부팅 시 Shift + O 키 입력
- 부팅 옵션에 추가:
cpuUniformityHardCheckPanic=FALSE
영구 설정:
# SSH로 ESXi 호스트 접속 후 실행
esxcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE
esxcli system settings kernel set -s ignoreMsrFaults -v TRUE
설정 확인:
esxcli system settings kernel list -o cpuUniformityHardCheckPanic
esxcli system settings kernel list -o ignoreMsrFaults
3. NUMA 설정 문제 해결
ESXi 6.5에서 vNUMA 최적화로 인해 가상머신 마이그레이션 시 vNUMA 토폴로지 변경으로 이 오류가 발생할 수 있습니다.
ESXi 호스트 NUMA 설정 변경
vCenter Web Client에서 설정:
- vCenter Server 연결
- ESXi 호스트 선택
- 구성(Configure) 탭 → 고급 시스템 설정(Advanced System Settings)
Numa.FollowCoresPerSocket
검색- 값을 1로 변경
SSH 명령어로 설정:
# ESXi 호스트에서 실행
esxcli system settings advanced set -o /Numa/FollowCoresPerSocket -i 1
가상머신 NUMA 설정 제거
문제가 있는 VM의 .vmx
파일을 편집합니다:
# 다음 항목들을 제거하거나 주석 처리
numa.autosize.cookie
numa.autosize.vcpu.maxPerVirtualNode
cpuid.coresPerSocket
4. 하드웨어 및 펌웨어 점검
네트워크 카드 드라이버 및 펌웨어 확인
현재 드라이버 정보 확인:
# 네트워크 카드 목록 확인
esxcli network nic list
# 특정 NIC 상세 정보 확인
esxcli network nic get -n vmnic0
# 설치된 드라이버 확인
esxcli software vib list | grep -i network
문제가 되는 드라이버들
드라이버명 | 설명 | 주요 문제 |
---|---|---|
nenic | Cisco VIC 이더넷 NIC | ESXi 8.0.3에서 PSOD 빈발 |
igbn | Intel Gigabit 이더넷 | 펌웨어 버전 불일치 시 문제 |
ixgben | Intel 10Gb 이더넷 | 구버전에서 메모리 접근 오류 |
해결 방법:
- VMware 하드웨어 호환성 가이드 확인
- 최신 드라이버 및 펌웨어로 업데이트
- 지원되지 않는 드라이버 조합 사용 금지
5. 메모리 및 시스템 설정 최적화
메모리 할당 설정 검토
가상머신 메모리 설정:
# 메모리 예약 설정 확인
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/get.config <VM_ID>
권장 설정:
- 메모리 예약: 물리 메모리의 75% 이하
- 메모리 제한: 무제한 또는 충분한 여유 공간
- 메모리 공유: 필요한 경우에만 활성화
전원 관리 설정 비활성화
일부 경우에서 SpeedStep, SpeedShift, C-states 비활성화로 안정성 향상이 확인되었습니다.
BIOS 설정:
- Intel SpeedStep: Disabled
- Intel Speed Shift: Disabled
- C-States: Disabled
- Enhanced Halt State (C1E): Disabled
6. 로그 수집 및 분석
Core Dump 수집
ESXi에서 PSOD 발생 시 자동으로 core dump가 생성됩니다:
# Core dump 위치 확인
esxcli system coredump file list
# Core dump 다운로드 준비
esxcli system coredump file get -f /vmfs/volumes/datastore1/vmkdump/...
로그 파일 확인
주요 로그 파일들:
# 시스템 로그
tail -f /var/log/vmkernel.log
# 가상머신 로그
tail -f /var/log/vmware.log
# 하드웨어 로그
tail -f /var/log/syslog.log
7. 예방적 조치 및 모니터링
정기적인 시스템 점검
월 1회 점검 항목:
- ESXi 버전 및 패치 상태 확인
- 드라이버 및 펌웨어 업데이트 여부
- 하드웨어 호환성 가이드 확인
- Core dump 파일 정리
모니터링 스크립트
#!/bin/bash
# esxi_health_check.sh
echo "=== ESXi Health Check ==="
echo "1. Memory Usage:"
esxcli hardware memory get
echo "2. Network Status:"
esxcli network nic list
echo "3. System Load:"
esxtop -b -n 1
echo "4. Recent Errors:"
tail -20 /var/log/vmkernel.log | grep -i error
ESXi의 “GP Exception 13 in world 32771” 오류는 다양한 원인으로 발생할 수 있지만, 체계적인 접근을 통해 해결 가능합니다. 네트워크 드라이버 변경부터 시작해서 CPU 설정, NUMA 구성, 하드웨어 점검 순으로 진행하시면 대부분의 문제를 해결할 수 있습니다. 특히 최신 Intel CPU를 사용하시는 경우라면 E-Core 비활성화나 커널 설정 변경이 가장 효과적인 해결책이 될 것입니다. 문제가 지속되면 VMware 지원팀의 도움을 받으시되, 이 글에서 설명한 기본적인 해결책들을 먼저 시도해 보시기 바랍니다.
혹시 이 글을 통해 문제가 해결되셨다면, 동일한 환경의 다른 호스트들도 예방 차원에서 같은 설정을 적용해 두시는 것을 권장드립니다! 🙂