류짱:Beyond MySelf

VMWare Host에서 운영 중인 Windows Server의 NMI를 이용한 Hang dump 수집 방법

Widows server를 운영 중 Hang 증상이 발생 할경우 원인 분석을 위해서 키보드 덤프나 NMI를 이용한 메모리 덤프를 수집 하는 경우가 종종 있습니다. Hyper-v Host나 물리 머신의 경우도 마찬가지이지만  
VMWare Host에서 운영 중인 Windows 가상머신에 hang이 발생 했을 때 NMI를 이용하여 Hang dump를 수집이 가능합니다.

자세한 방법은 아래 글을 참고 하시기 바랍니다.


먼저 NMI덤프를 수집하기 위해서는 레지스트리에 아래 첫번 째 그림과 같이 NMI 키 값이 등록 되어있어야 합니다.
Windows Server 2012부터는 별도의 키값 생성 없이 NMI덤프가 생성 가능 하므로 아래 키는 Windows server 2008R2와 그 이하 OS 버전에만 적용 하시면 됩니다. Windows Server 2012이상 버전의 NMI 관련 글은아래 블로그 참고.

Coming soon: How to generate a kernel or a complete memory dump file in Windows Server 2012 and Windows Server 2012 R2

https://blogs.technet.microsoft.com/yongrhee/2015/04/05/coming-soon-how-to-generate-a-kernel-or-a-complete-memory-dump-file-in-windows-server-2012-and-windows-server-2012-r2/


본격적으로 NMI 덤프 수집을 위한 세팅을 해보겠습니다.

먼저 덤프 수집필요한 대상 서버로 로그온 후 명령프롬프트에서 아래와 같이 커멘드를 입력하고 NMI 키를 생성합니다. 레지스트리 적용을 위해서는 시스템 재 시작 필요합니다.

NMI 덤프 설정 커멘드

do Reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl /v NMICrashDump /t REG_DWORD /d 1 /f



가상머신의 덤프 설정이 완료되면 해당 서버를 운영 중인 VM Host서버에 접속을 합니다. 접속 방법은 따로 설명 드리지 않겠습니다.^^
호스트 접속 후 /sbin 경로로 이동 후 vmdumper -l 커맨드를 이용해서 해당 VM명과 wid를 확인 합니다. 그리고 
vmdumper wid명 nmi를 입력 합니다. 예) vmdumper 1653269 nmi


시스템이 재 시작 된 후 덤프가 Windows에 폴더에서 방금 생성한 메모리 덤프를 확인 할 수 있습니다.



이벤트 로그도 참고 하시면 좋겠네요^^


수집 된 덤프를 분석 합니다.


[참고자료]

How to send NMI to Guest OS on ESXi 6.x (2149185)

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2149185

 

Coming soon: How to generate a kernel or a complete memory dump file in Windows Server 2012 and Windows Server 2012 R2

https://blogs.technet.microsoft.com/yongrhee/2015/04/05/coming-soon-how-to-generate-a-kernel-or-a-complete-memory-dump-file-in-windows-server-2012-and-windows-server-2012-r2/


감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0