OpenStack VM 전원 동기화 로직 분석
49
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

OpenStack VM 전원 동기화 로직 분석

이 게시물은 OpenStack Nova가 VM 전원 상태 변경 이벤트를 어떻게 감지하고 데이터베이스와 동기화하는지 설명합니다.

주요 처리 흐름

  • nova-compute 서비스가 libvirt에 연결해 VM 전원 상태 이벤트를 폴링
  • libvirt 이벤트 리스너를 등록하여 VM lifecycle 이벤트를 수신
  • 이벤트 감지 시 콜백 함수가 호출되어 이벤트를 큐에 적재하고 파이프를 통해 알림 전송
  • 디스패치 스레드가 큐에서 이벤트를 꺼내 ComputeManager에 전달
  • ComputeManager는 전달받은 이벤트와 DB 내 상태를 비교해 다르면 DB 업데이트 수행

기술적 상세

  • libvirt domainEventRegisterAny()로 이벤트 리스너 등록 및 콜백 실행
  • 이벤트는 native thread에서 비동기적으로 큐에 적재되고 green thread가 처리
  • STOPPED 이벤트는 재부팅 가능성 고려해 지연 처리
  • ComputeDriver의 emit_event()가 ComputeManager의 handle_lifecycle_event() 호출
  • handle_lifecycle_event()에서 VM 전원 상태를 파악해 DB와 동기화

연관 게시글