23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
오픈스택에서 인스턴스의 라이브 마이그레이션(live migration)은 세 단계로 이루어집니다.
Pre-live-migration : 마이그레이션 전 처리 단계
Live-migration-operation : 실제 인스턴스 마이그레이션 단계
Post-live-migration : 마이그레이션 후 처리 단계
이번 글에서는 "Pre live migration" 단계의 워크플로우를 정리 했습니다.
동작 흐름, 컴포넌트 간 통신 방식, 상태 변화, 그리고 Notification 이벤트까지 상세히 다루었으므로, 오픈스택을 개발·운영하시는 분들께 트러블슈팅에 도움이 되길 바랍니다.
pre live migration 은 실제 instance 가 다른 노드로 옮겨가기 전에 처리되는 단계입니다.
다음과 같은 작업들이 이루어집니다.
instance 의 resource(cpu/mem/disk) 할당을 이전합니다. (출발지 노드 -> 도착지 노드)
instance 의 volume 을 도착지 노드에서 미리 연결해 둡니다.
instance 의 VIF(Virtual Interface) 를 도착지 노드에서 미리 연결해 둡니다.
요약하면 instance 가 넘어갔을 때 문제 없도록 도착지 노드에서 volume 과 VIF 를 미리 준비하는 과정으로 이해하시면 됩니다.
시나리오: 도착지 노드 지정 방식, shared storage 환경 (no block migration)
클라이언트로부터 migration 요청을 수신하고, request body 내 파라미터를 검증한다.
대상 인스턴스의 task_state 를 MIGRATING 으로 변경한다.
nova-conductor 에 live_migrate_instance RPC 요청을 보낸다.
클라이언트에게 202 응답을 보낸다.
migration 오브젝트를 생성하고 dest_compute, status, instance_uuid, source_compute, migration_type 필드를 설정한다.
초기 status = accepted
Placement API 호출
인스턴스 리소스 할당 정보 조회
할당을 source node → dest node 로 변경
Source 노드에 live_migration RPC 호출을 전달한다.
migration.status 를 queued 로 변경한다.
_do_live_migration() 작업을 스레드 풀에 등록하여 백그라운드에서 실행한다.
migration.status 를 preparing 으로 변경한다.
인스턴스 이벤트 대기 등록 (network-vif-plugged 이벤트 수신 대기)
Dest 노드의 pre_live_migration() RPC 를 호출한다.
live_migration.pre.start notification 메시지를 발행한다.
Cinder 호출
마이그레이션 대상 인스턴스의 볼륨 attachment 를 Dest 노드에 새로 생성한다.
BDM(Block Device Mapping) 업데이트
신규 attachment_id → Dest 노드용
기존 attachment_id → old_vol_attachment_ids 로 이동
마이그레이션 대상 instance 의 볼륨을 연결한다.
VIF 연결 준비
인스턴스의 VIF(가상 네트워크 인터페이스)를 미리 생성·연결
VM 이 넘어온 직후 네트워크가 끊기지 않도록 보장
Neutron 포트 업데이트
Port 의 binding:profile 에 migrating_to : 속성을 추가
볼륨 attachment 완료 처리
live_migration.pre.end notification 메시지를 발행한다.
다음 2편에서는 실제 인스턴스가 다른 노드로 옮겨지는 Live-migration-operation 단계를 정리할 예정입니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.