vSphere에서 HA 발생 시, fault node에 있던 VM을 확인하는 방법

vSphere HA 발생 시 장애 host에 있던 VM을 확인하는 방법입니다. vCenter Events, VM Tasks, PowerCLI, ESXi Shell의 역할과 한계를 정리했습니다.

vSphere HA가 발생하면 실패한 ESXi host 위에 있던 VM은 같은 cluster의 다른 host에서 재시작될 수 있습니다. 이때 “현재 어느 host에 있는가”와 “장애 직전 어느 host에 있었는가”를 구분해서 확인해야 합니다.

vSphere HA는 vMotion처럼 무중단 이동을 보장하는 기능이 아니라, host failure 시 VM을 다른 host에서 재시작해 가용성을 높이는 기능입니다. 따라서 VM의 과거 위치를 찾을 때는 VM 현재 요약 화면만 보면 부족하고, vCenter event/task와 HA event를 같이 확인해야 합니다.

vCenter UI에서 확인

  1. vSphere Client에서 장애가 발생한 cluster를 엽니다.
  2. Monitor > Events에서 장애 발생 시간대를 필터링합니다.
  3. vSphere HA restarted virtual machine, Host connection and power state, VM restarted 계열 이벤트를 확인합니다.
  4. VM 객체의 Monitor > Tasks and Events에서 해당 VM의 restart, power on, migration 이력을 확인합니다.
  5. event 상세에서 source host, destination host, user/system action을 구분합니다.

PowerCLI로 VM 현재 위치 확인

Connect-VIServer vcenter.example.com
Get-VM -Name "APP01" | Select-Object Name, PowerState, VMHost

현재 위치만 필요하면 위 명령으로 충분합니다. HA 발생 직전 위치는 event를 조회해야 합니다.

PowerCLI로 시간대 이벤트 조회

$start = (Get-Date).AddHours(-6)
Get-VIEvent -Start $start -MaxSamples 10000 |
  Where-Object { $_.FullFormattedMessage -match "APP01|HA|restarted|host" } |
  Select-Object CreatedTime, UserName, FullFormattedMessage |
  Sort-Object CreatedTime

VM이 많으면 cluster 또는 host 기준으로 먼저 좁히는 편이 빠릅니다.

$hostName = "esxi-01.example.com"
Get-VIEvent -Entity (Get-VMHost $hostName) -Start $start -MaxSamples 10000 |
  Select-Object CreatedTime, FullFormattedMessage |
  Sort-Object CreatedTime

ESXi Shell에서 볼 수 있는 것과 한계

vim-cmd vmsvc/getallvms
vim-cmd vmsvc/power.getstate VMID
esxcli vm process list

ESXi Shell은 현재 host에서 보이는 VM 상태 확인에는 유용하지만, 장애 직전 다른 host에 있던 이력을 완전하게 보여주는 도구가 아닙니다. 과거 위치와 HA 판단 근거는 vCenter event가 기준입니다.

장애 후 확인할 항목

  • 장애 host가 disconnected, not responding, isolated 중 어떤 상태였는지 확인합니다.
  • HA admission control과 restart priority 설정을 확인합니다.
  • VM별 restart 성공/실패 이벤트를 확인합니다.
  • datastore 접근 장애가 있었는지 확인합니다.
  • vSAN 환경이면 host isolation response와 storage policy 영향도 같이 봅니다.

장애 대응 후 남길 항목

  • 장애 발생 시각과 복구 시각
  • 장애 host 이름과 cluster 이름
  • HA로 재시작된 VM 목록
  • 재시작 실패 VM과 실패 사유
  • VM별 기존 host와 재시작 host
  • 사용자 영향과 애플리케이션 복구 확인 결과

공식 문서

BGM EVER