
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와 동기화