목록 보기
OpenStack VM 전원 동기화 로직 분석
백엔드

OpenStack VM 전원 동기화 로직 분석

데보션
데보션
2025년 5월 2일

두줄요약

OpenStack Nova가 libvirt lifecycle 이벤트를 받아 VM 전원 상태를 비동기적으로 감지하고 DB와 동기화하는 흐름을 설명했습니다. 이벤트 매핑, 큐 전달, 지연 처리, ComputeManager의 상태 비교까지 정리했습니다.

핵심 내용

  • OpenStack Nova가 libvirt lifecycle 이벤트를 받아 VM 전원 상태를 감지하는 흐름 정리
  • libvirt 이벤트를 nova virtevent로 매핑한 뒤 큐와 파이프로 비동기 전달
  • ComputeManager가 이벤트 상태와 DB 전원 상태를 비교해 불일치 시 동기화
  • STOPPED 이벤트는 재부팅 가능성 때문에 지연 처리

구조와 흐름

  • nova-compute 구동 시 libvirtd에 이벤트 리스너 등록
  • native thread에서 이벤트 수신 후 event queue 적재
  • dispatch thread가 큐를 읽어 lifecycle event를 compute manager로 전달

주의할 점

  • libvirt native thread에서는 로깅 API 사용 제한
  • STOPPED 이벤트의 즉시 반영 시 재부팅과 혼동 가능
  • 이벤트 지연으로 현재 상태와 불일치할 수 있어 DB 동기화 전 상태 비교 필요

적용해볼 점

  • 비동기 이벤트 수신과 전달을 위한 큐/파이프 구조 참고
  • 하이퍼바이저 이벤트를 DB와 직접 연결하지 않고 중간 계층에서 정합성 검증
  • 상태 전이별 매핑 테이블을 두어 운영 로직 단순화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...