데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      [1편] OpenStack Live migration workflow (pre live migration)

      gsjeon 25.09.29
      768 6 1
      DEVOTEE 요약
      오픈스택의 "Pre live migration" 단계는 인스턴스가 다른 노드로 이동하기 전 필요한 준비 작업을 수행하는 과정입니다. 이 단계에서는 인스턴스의 리소스(CPU/메모리/디스크)와 볼륨, 가상 네트워크 인터페이스(VIF)를 도착지 노드에 미리 연결해 네트워크 단절 등 문제를 예방합니다. 워크플로우는 클라이언트로부터 요청을 받는 것에서 시작해, 도착지 노드에서 볼륨 연결 및 VIF 준비를 완료하고 알림을 발송하는 것으로 마무리됩니다.
      DEVOTEE 추천 블로그

      개요

      오픈스택에서 인스턴스의 라이브 마이그레이션(live migration)은 세 단계로 이루어집니다.

      • Pre-live-migration : 마이그레이션 전 처리 단계

      • Live-migration-operation : 실제 인스턴스 마이그레이션 단계

      • Post-live-migration : 마이그레이션 후 처리 단계

      이번 글에서는 "Pre live migration" 단계의 워크플로우를 정리 했습니다.

      동작 흐름, 컴포넌트 간 통신 방식, 상태 변화, 그리고 Notification 이벤트까지 상세히 다루었으므로, 오픈스택을 개발·운영하시는 분들께 트러블슈팅에 도움이 되길 바랍니다.


      요약

      pre live migration 은 실제 instance 가 다른 노드로 옮겨가기 전에 처리되는 단계입니다.

      다음과 같은 작업들이 이루어집니다.

      1. instance 의 resource(cpu/mem/disk) 할당을 이전합니다. (출발지 노드 -> 도착지 노드)

      2. instance 의 volume 을 도착지 노드에서 미리 연결해 둡니다.

      3. instance 의 VIF(Virtual Interface) 를 도착지 노드에서 미리 연결해 둡니다.

      요약하면 instance 가 넘어갔을 때 문제 없도록 도착지 노드에서 volume 과 VIF 를 미리 준비하는 과정으로 이해하시면 됩니다.


      Workflow

      시나리오: 도착지 노드 지정 방식, shared storage 환경 (no block migration)

      image.png

      (nova-api)

      • 클라이언트로부터 migration 요청을 수신하고, request body 내 파라미터를 검증한다.

      • 대상 인스턴스의 task_state 를 MIGRATING 으로 변경한다.

      • nova-conductor 에 live_migrate_instance RPC 요청을 보낸다.

      • 클라이언트에게 202 응답을 보낸다.

      (nova-conductor)

      • migration 오브젝트를 생성하고 dest_compute, status, instance_uuid, source_compute, migration_type 필드를 설정한다.

        • 초기 status = accepted

      • Placement API 호출

        • 인스턴스 리소스 할당 정보 조회

        • 할당을 source node → dest node 로 변경

      • Source 노드에 live_migration RPC 호출을 전달한다.

      (source node)

      • migration.status 를 queued 로 변경한다.

      • _do_live_migration() 작업을 스레드 풀에 등록하여 백그라운드에서 실행한다.

      • migration.status 를 preparing 으로 변경한다.

      • 인스턴스 이벤트 대기 등록 (network-vif-plugged 이벤트 수신 대기)

      • Dest 노드의 pre_live_migration() RPC 를 호출한다.

      (dest node, pre_live_migration 단계)

      • 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 단계를 정리할 예정입니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      gsjeon 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기