SeamlessMigrate
신규GPU 워크로드와 네트워크 컷오버, 0.4.0-rc.1의 기술 프리뷰

오픈소스 VM 마이그레이션: VMware·OpenStack에서 RHOSO 18.0 또는 커뮤니티 OpenStack으로. VM은 계속 실행하고,
컷오버는 몇 분 만에 끝내세요.

Seamless Migrate는 RHOSP 17.1, OpenStack, VMware vSphere의 VM을 RHOSO 18.0 또는 커뮤니티 OpenStack으로 마이그레이션합니다. 디스크는 VM이 트래픽을 처리하는 동안 복사되며, 최종 델타를 옮길 때만 VM이 중지됩니다.

Apache 2.0 데모에는 클라우드 자격 증명이 필요 없습니다

다운타임

VM 하나, 세 가지 이전 방법.

200 GiB 볼륨(사용량 120 GiB), 게스트 쓰기 2 MiB/s, 125 MiB/s 링크 기준입니다. 컨트롤 플레인의 계획 모델이 추정한 전략별 다운타임은 다음과 같습니다:

  • 콜드 복사 cold

    20분 53초 다운타임

    사용 중인 데이터를 모두 복사하는 동안 VM은 계속 중지되어 있습니다.

  • 웜 마이그레이션 warm

    11분 20초 다운타임

    VM이 트래픽을 처리하는 동안 복사 패스 3회가 실행되며(31분 32초 소요), 최종 델타를 옮길 때만 VM이 중지됩니다.

  • 스토리지 핸드오버 storage_handover

    4분 20초 다운타임

    데이터를 복사하지 않습니다. 공유 Ceph 또는 NetApp ONTAP에서 Cinder가 각 볼륨을 목적지에 인계합니다.

플랫폼

출발지는 달라도, 목적지는 원하는 곳으로.

모든 소스에 하나의 계획·웨이브·승인 모델을 적용합니다. Seamless는 각 클라우드의 공개 API로 통신하며, 내부적으로는 os-migrate Ansible 컬렉션으로 데이터를 옮깁니다.

  • Red Hat OpenStack Platform 17.1

    TripleO 기반의 마지막 릴리스입니다. 인플레이스 채택이 적합하지 않을 때는 병행 방식으로 이전하세요.

    • cold
    • warm
    • storage_handover
  • 커뮤니티 OpenStack 및 Kolla-Ansible

    Keystone v3, Nova 2.60 이상, Cinder v3, Neutron v2를 갖춘 모든 릴리스입니다.

    • cold
    • warm
    • storage_handover
  • VMware vSphere 7.0U3 및 8.x

    vCenter로 관리되는 환경입니다. Changed Block Tracking으로 웜 마이그레이션하고 virt-v2v로 변환합니다.

    • vmware_cold
    • vmware_warm

목적지

  • RHOSO 18.0

    Red Hat OpenStack Services on OpenShift로, 대상 플랫폼이며 릴리스의 실험실 검증은 아직 진행되지 않았습니다. Seamless는 공개 OpenStack API를 사용하며 OpenShift 리소스는 건드리지 않습니다.

  • 커뮤니티 OpenStack

    2023.1 Antelope부터 2026.2 Hibiscus까지의 모든 릴리스 시리즈를 지원합니다. Kolla-Ansible, OpenStack-Ansible 또는 다른 어떤 도구로 배포했든 같은 코드 경로로 처리합니다. 프로바이더 점검은 해당 목적지의 시리즈, 지원 등급, 정책 프로필을 보고합니다.

  • 네트워크, 서브넷, 라우터, 보안 그룹 재생성
  • 플레이버, 이미지, 키 쌍, 프로젝트, 사용자 이전
  • ML2/OVN의 Geneve를 포함해 목적지 네트워크 기준으로 MTU 확인
  • 기본적으로 모든 엔드포인트에서 TLS 검증

모든 주요 게스트 OS

OpenStack 소스는 KVM 게스트를 KVM으로 옮기므로 RHEL, CentOS, Rocky, AlmaLinux, Oracle Linux, Ubuntu, Debian, SLES, Windows 등 소스에서 부팅되는 게스트는 목적지에서도 부팅됩니다. VMware에서는 RHEL 9 변환 호스트의 virt-v2v가 게스트를 변환합니다. 레거시 릴리스에는 해결 방법과 함께 경고가 표시되며, 아무 안내 없이 차단되는 일은 없습니다.

전략

다섯 가지 전략 중 VM마다 하나를 선택합니다.

Seamless는 VM마다 적용 가능한 모든 전략을 추정해 다운타임이 가장 짧은 전략을 선택하며, 두 전략이 동률이면 더 단순한 전략을 택합니다. 선택은 직접 변경할 수 있습니다.

OpenStack에서

  • cold

    콜드 복사

    VM을 중지하고 사용 중인 데이터를 SSH로 복사한 뒤 목적지에서 부팅합니다.

  • warm

    웜

    VM 실행 중에 스냅샷 패스를 진행하고, 중지 후에는 최종 델타만 복사합니다.

  • storage_handover

    스토리지 핸드오버

    소스에서 Cinder unmanage, 목적지에서 manage를 수행합니다. 데이터는 복사하지 않습니다.

    필요 조건: 두 클라우드가 동일한 Ceph 클러스터 또는 NetApp ONTAP SVM을 사용해야 합니다.

VMware에서

  • vmware_cold

    VMware 콜드

    전체를 복사한 다음 virt-v2v로 변환합니다.

  • vmware_warm

    VMware 웜

    Changed Block Tracking 패스를 진행한 뒤 최종 델타를 복사하고 인플레이스 변환을 수행합니다.

    필요 조건: VM에 Changed Block Tracking이 활성화되어 있어야 합니다.

기술 프리뷰

GPU VM도 이전됩니다. 주소도 함께 옮길 수 있습니다.

릴리스 후보이며 프로덕션 인증이 아닙니다. 릴리스의 실험실 테스트 기록은 아직 없습니다. 0.4.0-rc.1의 새 기능으로, 플랜마다 선택해 켜며 시뮬레이션에서 검증했습니다. 둘 다 데모에서 동작하지만 GPU 호스트와 실제 클라우드에서의 랩 테스트는 아직 진행하지 않았습니다. 테스트를 통과하면 이 표시를 뗍니다.

  • GPU 워크로드

    기술 프리뷰, 시뮬레이션에서 검증

    타임 슬라이스 또는 MIG 기반 NVIDIA vGPU를 쓰는 VM이나 GPU를 통째로 패스스루한 VM도 이제 차단되지 않고 이전됩니다. 디스크는 다른 VM과 똑같이 옮겨지며, GPU 상태는 옮겨지지 않고 VM은 목적지에서 종료 후처럼 부팅됩니다.

    • GPU는 OpenStack 플레이버나 vCenter에서 읽어 인벤토리에 표시
    • 플랜이 각 GPU를 목적지의 GPU 플레이버에 매핑하며, 크기나 이름으로 자동 매칭하지 않음. 매핑이 없는 GPU VM은 계속 차단
    • 여유 용량은 검증할 때와 소스를 멈추기 직전에 Placement에서 다시 읽으며, 풀이 가득 찬 동안 소스는 계속 실행
    • 검증에서 GPU 플레이버와 Placement 할당을 확인하고, 점검 결과로 게스트에 필요한 드라이버와 라이선스 서버를 안내
  • 네트워크 컷오버

    기술 프리뷰, 시뮬레이션에서 검증

    마이그레이션이 VM의 네트워크 식별 정보까지 함께 옮길 수 있습니다. 각 기능은 플랜마다 선택해 켜며, 켜지 않은 플랜은 이전처럼 이전됩니다.

    • 훅: 관리자가 등록한 Ansible 플레이북과 HTTPS 웹훅을 pre_stop, post_create, post_verify, on_rollback, on_finalize에서 실행하며, 각각 타임아웃과 선택적 되돌리기 지원
    • 모든 OpenStack 전략에서 Floating IP의 주소 유지. 소스가 멈춘 뒤 옮기고 롤백하면 되돌려 줌
    • Designate 또는 RFC 2136 서버에서 compare-and-swap 방식으로 DNS 레코드를 전환하고, 롤백하면 되돌림
    • 도달 가능성 대기를 다운타임에 포함하고, Octavia 헬퍼가 소스 멤버를 드레인한 뒤 이전된 VM을 풀에 추가

사전 검증은 운영자의 몫으로 남는 항목을 런북과 함께 알려 줍니다. Heat 스택과 오토스케일링 그룹, 웨이브로 나뉘게 될 Octavia 풀, 주소 쌍이 있는 포트, 목적지가 게시할 수 없는 DNS 이름 등입니다.

다음 릴리스: 0.5.0

계획: 이메일, Slack, 서명된 웹훅을 통한 알림, 데이터 경로의 SSH 호스트 키 고정, 그리고 기술 프리뷰로 제공할 고가용성 컨트롤 플레인, 테넌트별 자격 증명, Ceph RBD 볼륨의 웜 마이그레이션에서 마지막 패스의 디스크 스캔을 없애는 변경 익스텐트 추적.

0.4.0-rc.1 릴리스 노트 (새 탭에서 열림)

작동 방식

하나의 여정, 모든 단계를 직접 제어하세요.

모든 소스에 하나의 워크플로를 적용합니다. 각 마이그레이션은 명시적인 상태 머신을 따라 진행되고, 컨트롤 플레인이 재시작되어도 체크포인트부터 이어지며, 모든 작업에 대해 감사 추적을 남깁니다.

  1. 01

    두 클라우드 연결

    플랫폼별 프리셋으로 RHOSP 17.1, 커뮤니티 OpenStack, Kolla-Ansible 또는 vCenter를 소스로, RHOSO 18.0 또는 커뮤니티 OpenStack 클라우드를 목적지로 추가합니다. 자격 증명은 쓰기 전용입니다. 플랫폼의 시크릿 저장소로 전달되며 데이터베이스나 API 응답에는 절대 포함되지 않습니다. 클릭 한 번으로 각 연결과 해당 연결로 가능한 작업을 확인하고, 목적지의 릴리스 시리즈, 지원 등급, 정책 프로필을 보고합니다.

  2. 02

    웨이브 계획, 파일럿부터

    디스크, NIC, 게스트 OS, 준비 상태 플래그를 포함한 인벤토리를 검색합니다. VM을 선택하고 네트워크, 플레이버, 볼륨 유형, 프로젝트를 매핑하면 플래너가 소규모 파일럿을 시작으로 위험도에 따라 웨이브 순서를 정합니다. 각 웨이브는 이전 웨이브가 완료되어야 시작됩니다.

  3. 03

    이전 전에 먼저 검증

    사전 점검은 차단 요소, 경고, 정보를 각각의 해결 방법과 함께 보고합니다. VM마다 적용 가능한 전략별 추정치와 자동 선택이 제공되며, 선택은 직접 변경할 수 있습니다.

  4. 04

    VM이 실행되는 동안 복사

    웜 VM은 트래픽을 처리하는 동안 스냅샷 패스로 복사됩니다. 첫 패스 이후에는 BLAKE2b 다이제스트가 바뀐 청크만 전송되며, 모든 패스는 검증된 매니페스트 다이제스트로 마무리됩니다. 수렴된 VM은 keep-warm 동기화로 최신 상태를 유지하며 변경 윈도우를 기다립니다.

  5. 05

    변경 윈도우 안에서 컷오버

    컷오버는 별도 승인자의 승인을 받은 후, 변경 윈도우 안에서, 사용 가능한 컷오버 슬롯이 있을 때만 시작됩니다. VM이 중지되고 최종 델타가 동기화된 뒤 목적지에서 부팅됩니다. 다운타임은 중지 시점부터 부팅이 검증될 때까지 측정됩니다.

  6. 06

    검증 후 확정

    Seamless는 서버가 ACTIVE 상태인지와 포트, TCP 프로브, 콘솔 패턴을 확인합니다. 점검에 실패하면 자동으로 롤백되어 목적지 인스턴스는 삭제되고 볼륨은 유지되며 소스 VM이 다시 시작됩니다. 되돌릴 수 없는 유일한 단계인 확정에는 승인자의 승인과 VM 이름 전체 입력이 필요합니다.

대시보드

모든 마이그레이션을 한눈에.

대시보드는 컨트롤 플레인에 함께 담겨 제공됩니다. 플랜과 웨이브, SLO 대비 각 다운타임 시계, 승인, 감사 추적을 server-sent events로 실시간 갱신합니다. 아래는 시뮬레이션된 클라우드로 실행한 데모에서 캡처한 실제 화면입니다.

seamless.internal/

원본 크기로 열기 (새 탭에서 열림)
Overview 페이지: KPI 타일, 15분 SLO 대비 다운타임 시계가 표시된 중단 중인 VM 3대, 대기 중인 승인 4건.

롤아웃 전체를 한눈에

상태별 마이그레이션 수, 평균 다운타임과 SLO 준수율, 지금 중단된 모든 VM과 그 시계, 그리고 사람의 판단을 기다리는 승인: 컷오버 승인과 어드바이저 결정. 각 항목은 결정이 내려지는 화면으로 연결됩니다.

폴링이 아닌 실시간
단계 변경, 패스, 승인, 이벤트가 server-sent events로 도착합니다. 연결이 끊겨도 대시보드는 마지막으로 받은 이벤트부터 이어서 받습니다.
거절만 하지 않고 이유를 말합니다
viewer부터 admin까지 네 가지 역할. 지금 할 수 없는 작업도 화면에 남아 무엇을 기다리는지 알려줍니다: 역할, 승인, 변경 윈도우, 단계.
WCAG 2.2 AA
키보드 우선, 진행 상황과 결과를 스크린 리더에 알림, 44 px 터치 영역, 동작 줄이기 설정 존중, 색상만으로 상태를 표시하지 않음.
다른 호스트에서 아무것도 불러오지 않음
폰트와 스크립트는 컨트롤 플레인과 함께 제공되고 서드파티에서 불러오는 것이 없어, 에어갭 환경에서도 똑같이 표시됩니다.

안전성

확정하기 전까지는 되돌릴 수 있습니다

승인, 변경 윈도우, 롤백은 런북 속 관례가 아니라 컨트롤 플레인의 규칙입니다. 승인자가 확정할 때까지 소스 VM은 그대로 유지됩니다.

컨트롤 플레인이 강제하는 게이트
승인, 변경 윈도우, 사용 가능한 컷오버 슬롯이 모두 충족될 때만 컷오버가 시작됩니다.
요청자와 승인자 분리
컷오버를 요청하거나 강제 실행한 사람은 승인할 수 없습니다. 반드시 별도 승인자가 승인해야 합니다.
확정 전까지 롤백 가능
롤백은 목적지 인스턴스를 삭제하고 볼륨은 유지하며, 컷오버 때 옮긴 Floating IP 주소나 DNS 레코드를 되돌린 뒤 소스 VM을 다시 시작합니다. 검증에 실패하면 자동으로 실행됩니다.
되돌릴 수 없는 단계는 직접 입력해 확인
확정 전에는 어떤 작업도 소스 데이터를 삭제하지 않으며, 확정에는 승인자의 승인과 VM 이름 전체 입력이 필요합니다.
재시작 후 재개
컨트롤 플레인이 다시 시작되면 진행 중이던 마이그레이션이 체크포인트부터 이어서 진행됩니다. 계획된 중지는 먼저 드레인할 수 있습니다: 플랜은 일시 정지되고, 진행 중인 컷오버가 끝나기 전까지는 아무것도 중지되지 않습니다.
방치되는 소스 VM 없음
모든 단계에 제한 시간이 있어, 멈춘 플레이북 때문에 중지된 VM이 계속 다운 상태로 남지 않습니다.
모든 작업을 기록
상태를 변경하는 모든 호출은 감사 기록에 남습니다. 기록을 내보내거나 보존 일정에 맞춰 정리하세요.

배포

사용 중인 인프라에 자연스럽게 녹아듭니다.

컨테이너 이미지 하나와 PostgreSQL로 구성됩니다. RHOSO와 나란히 OpenShift 클러스터에, 모든 Kubernetes 환경에, 또는 Linux 서버 자체의 Docker Engine, Mac의 Colima, Podman 중 하나를 사용하는 단일 호스트에 배포하세요.

  • Linux

    Docker Engine 20.10 이상과 Compose v2.20 이상: Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux, Fedora

    $ scripts/compose-init.sh$ make seamless-up$ curl -fsS http://127.0.0.1:8080/api/v1/health$ ssh -L 8080:127.0.0.1:8080 you@your-server

    서버 자체의 Docker Engine에서 실행되므로 Colima가 필요 없고, 이미지가 대시보드를 직접 빌드하므로 Node.js도 필요 없습니다. 컨트롤 플레인은 127.0.0.1:8080에서만 수신 대기하므로 방화벽 포트가 열리지 않고, 대시보드에는 SSH 터널을 통해 접속합니다. 컨테이너는 재부팅 후 자동으로 다시 시작되며, SELinux는 enforcing 모드를 그대로 유지할 수 있습니다.

  • macOS

    Colima, 또는 이름을 지정한 컨텍스트를 사용하는 Docker Desktop

    $ make seamless-colima-up$ scripts/compose-init.sh$ make seamless-up$ make seamless-logs

    전용 Colima 프로필(4 CPU, 6 GiB, 40 GiB)에서 실행되며 현재 활성화된 Docker 컨텍스트를 변경하지 않습니다. Docker Desktop이나 다른 컨텍스트를 사용할 때는 각 make 명령에 SEAMLESS_DOCKER_CONTEXT=desktop-linux를 추가하세요.

  • Podman

    4.7 이상

    $ scripts/compose-init.sh$ make seamless-up SEAMLESS_ENGINE=podman$ make seamless-logs SEAMLESS_ENGINE=podman

    podman compose가 같은 스택을 구동하며, docker-compose가 설치되어 있으면 이를 프로바이더로 사용합니다. SELinux 호스트에서는 토큰 마운트의 레이블이 자동으로 재지정됩니다.

  • Kubernetes

    1.28 이상: EKS, AKS, GKE, RKE2, k3s, kubeadm

    $ kubectl apply -k deploy/kubernetes$ kubectl -n seamless-migrate rollout status deploy/seamless$ kubectl -n seamless-migrate get ingress seamless

    OpenShift 매니페스트에 Ingress를 더한 Kustomize 오버레이입니다. 먼저 secret-example.yaml로 Secrets를 생성하고, TLS 시크릿 seamless-tls도 생성하세요.

  • OpenShift

    4.16 이상

    $ oc apply -k deploy/openshift$ oc -n seamless-migrate rollout status deploy/seamless$ oc -n seamless-migrate get route seamless

    PostgreSQL 16, 보안을 강화한 단일 레플리카 Deployment, edge-TLS Route, 기본 거부 NetworkPolicies로 구성됩니다. Secrets는 kustomization에 포함하지 않습니다.

자주 묻는 질문

궁금한 점에 답합니다.

첫 VM을 옮기기 전에 팀들이 묻는 질문입니다.

Seamless Migrate란 무엇인가요?

Seamless Migrate는 Apache License 2.0을 따르는 오픈소스 컨트롤 플레인으로, Red Hat OpenStack Platform 17.1, 커뮤니티 OpenStack(Kolla-Ansible 포함), VMware vSphere의 가상 머신을 Red Hat OpenStack Services on OpenShift(RHOSO) 18.0 또는 2023.1 Antelope부터 2026.2 Hibiscus까지의 커뮤니티 OpenStack 클라우드로 옮깁니다. 웨이브를 계획하고, 모든 VM의 다운타임을 추정하며, VM이 실행되는 동안 디스크를 복사하고, 각 컷오버를 승인과 변경 윈도우로 통제합니다. 또한 목적지에서 모든 VM을 검증하고, 점검에 실패하면 자동으로 롤백합니다.

VMware vSphere에서 OpenStack으로 VM을 마이그레이션하려면 어떻게 해야 하나요?

vCenter(vSphere 7.0U3 또는 8.x)를 소스로, RHOSO 18.0 또는 커뮤니티 OpenStack 클라우드를 목적지로 추가한 다음 웨이브를 계획하고 검증합니다. Changed Block Tracking(CBT, 변경 블록 추적)이 활성화된 VM은 웜 방식으로 마이그레이션됩니다. VM이 실행되는 동안 CBT 패스로 디스크를 복사하고, 컷오버 때는 최종 델타만 옮긴 뒤 virt-v2v 인플레이스 변환을 수행합니다. CBT가 없는 VM은 콜드 방식으로 마이그레이션되며, 전체를 복사한 다음 변환합니다. 데이터는 os-migrate vmware-migration-kit를 통해, 목적지 클라우드에 있는 VDDK를 갖춘 변환 호스트를 거쳐 이동합니다.

인플레이스 채택 없이 RHOSP 17.1에서 RHOSO 18.0으로 워크로드를 옮길 수 있나요?

네. Red Hat의 채택 절차는 17.1 배포를 인플레이스 방식으로 전환합니다. 새 하드웨어, 새 스토리지 백엔드, ML2/OVS에서 ML2/OVN으로의 전환 같은 네트워크 재설계, 여러 클라우드의 통합 때문에 이 방식이 맞지 않을 때는 Seamless Migrate가 워크로드를 병행 방식으로 옮깁니다. RHOSO에 네트워크, 보안 그룹, 플레이버, 이미지, 키 쌍, 프로젝트, 사용자를 다시 생성한 다음, 각 VM을 콜드, 웜 또는 스토리지 핸드오버 방식으로 마이그레이션합니다.

RHOSO 대신 커뮤니티 OpenStack 클라우드로 마이그레이션할 수 있나요?

네. RHOSO 18.0 외에도 2023.1 Antelope부터 2026.2 Hibiscus까지의 모든 커뮤니티 OpenStack 릴리스 시리즈를 목적지로 삼을 수 있으며, Kolla-Ansible, OpenStack-Ansible 또는 다른 도구 중 무엇으로 배포했든 상관없습니다. OpenStack Community 또는 Kolla-Ansible 프리셋으로 등록하면 동일한 콜드, 웜, 스토리지 핸드오버 전략이 그대로 실행됩니다. 프로바이더 점검은 각 목적지의 릴리스 시리즈, 지원 등급, 정책 프로필을 보고하고, 사전 검증은 필요한 기능이 빠져 있으면 아무것도 옮기기 전에 플랜을 차단합니다. RHOSO 18.0은 기준 대상이지만 릴리스의 실험실 검증은 아직 진행되지 않았으며, 업스트림에서 유지 관리되는 각 커뮤니티 시리즈의 랩 검증은 아직 진행하지 않았으며, 정식 릴리스 전에 진행합니다.

마이그레이션 시 다운타임은 얼마나 발생하나요?

전략과 VM에 따라 다릅니다. 사용량 120 GiB인 200 GiB 볼륨 1개, 게스트 쓰기 2 MiB/s, 125 MiB/s 링크를 기준으로 계획 모델이 추정한 다운타임은 콜드 복사 20분 53초, 웜 마이그레이션 11분 20초, 스토리지 핸드오버 4분 20초입니다. 웜 마이그레이션의 다운타임은 전체 복사가 아니라 최종 델타와 디스크 스캔에 따라 달라집니다.

콜드, 웜, 스토리지 핸드오버 마이그레이션은 어떻게 다른가요?

콜드 마이그레이션은 VM을 중지하고 사용 중인 데이터를 복사하므로 디스크가 클수록 다운타임이 길어집니다. 웜 마이그레이션은 VM이 계속 실행되는 동안 스냅샷 패스로 디스크를 복사하고, 최종 델타를 옮길 때만 VM을 중지합니다. 스토리지 핸드오버는 데이터를 전혀 복사하지 않습니다. 두 클라우드가 Ceph 클러스터나 NetApp ONTAP SVM을 공유하면 Cinder가 각 볼륨을 소스에서 unmanage하고 목적지에서 manage하므로, 크기와 관계없이 다운타임은 몇 분입니다.

GPU가 있는 VM도 이전할 수 있나요?

네, 시뮬레이션에서 검증한 기술 프리뷰로 지원합니다. 타임 슬라이스 또는 MIG 기반 NVIDIA vGPU를 쓰는 VM이나 GPU를 통째로 패스스루한 VM은 플랜이 각 GPU를 목적지의 GPU 플레이버에 매핑하면 이전되며, 매핑이 없는 GPU VM은 계속 차단됩니다. 검증은 플랜에 필요한 GPU를 Placement에 있는 목적지의 여유 용량과 비교하고, 컷오버 게이트는 소스를 멈추기 전에 다시 확인합니다. 자리가 없으면 마이그레이션은 기다리고 소스는 계속 실행됩니다. GPU를 패스스루한 VMware VM은 전원을 끈 상태에서 콜드로만 이전됩니다. GPU 호스트에서의 랩 테스트는 아직 진행하지 않았습니다.

이전한 VM은 IP 주소와 DNS 이름을 그대로 유지하나요?

고정 IP와 MAC 주소는 기본으로 유지됩니다. 시뮬레이션에서 검증한 기술 프리뷰로, 플랜은 각 Floating IP의 주소도 유지할 수 있습니다. 주소는 소스가 멈춘 뒤 옮기고 롤백하면 되돌려 주며, 주소가 바뀌면 Designate 또는 RFC 2136 서버의 DNS 레코드를 전환할 수 있습니다. 검증은 옮긴 주소가 모두 응답할 때까지 기다리고 그 대기 시간을 다운타임에 포함합니다. Seamless 자체는 BGP를 사용하지 않습니다. 나머지는 관리자가 등록하는 훅(Ansible 플레이북 또는 HTTPS 웹훅)으로 처리하고, Heat 스택, 오토스케일링 그룹, Octavia 풀처럼 운영자의 몫으로 남는 항목은 사전 검증이 알려 줍니다.

마이그레이션을 롤백할 수 있나요?

네, 확정하기 전까지는 가능합니다. 롤백은 목적지 인스턴스를 삭제하고 볼륨은 유지하며 소스 VM을 다시 시작합니다. 검증에 실패하면 롤백이 자동으로 실행됩니다. 확정 전에는 어떤 작업도 소스 데이터를 삭제하지 않으며, 확정에는 승인자의 승인과 VM 이름 전체 입력이 필요합니다.

어떤 게스트 운영 체제를 마이그레이션할 수 있나요?

OpenStack에서는 KVM 게스트가 KVM으로 옮겨지므로, 소스에서 부팅되는 게스트는 목적지에서도 부팅됩니다. 여기에는 RHEL 5~10, CentOS, Rocky, AlmaLinux, Oracle Linux, Ubuntu, Debian, SLES, openSUSE, Windows Server 2003~2025, Windows 7~11이 포함됩니다. VMware에서는 virt-v2v가 게스트를 변환합니다. RHEL 7~10과 Windows Server 2016~2025는 Red Hat이 지원하며, 그 밖의 게스트는 테스트 복사로 확인한 뒤 사용하거나 virtio 드라이버를 먼저 설치해야 합니다.

Seamless Migrate는 어디에서 실행되나요?

컨테이너 이미지 하나와 PostgreSQL 16으로 구성됩니다. RHOSO와 나란히 OpenShift 4.16 이상에, Kubernetes 1.28 이상(EKS, AKS, GKE, RKE2, k3s, kubeadm)에, 또는 단일 호스트에 배포할 수 있습니다. 단일 호스트로는 Linux 서버 자체의 Docker Engine 20.10 이상과 Compose v2.20(Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux, Fedora)을 Colima나 Node.js 없이 사용하거나, Colima를 설치한 Mac이나 Podman 4.7 이상을 사용할 수 있습니다. 운영 스크립트 seamless-ctl.sh 하나로 모든 플랫폼에서 같은 방식으로 배포를 올리고 내리고, 재시작하고, 스케일을 조정하며, 계획된 중지 전에는 실행 중인 플랜을 드레인합니다. 시뮬레이션 클라우드를 사용하는 데모는 노트북에서 실행되며 클라우드 자격 증명이 필요 없습니다.

Seamless Migrate는 무료인가요?

네. Apache License 2.0을 따르는 오픈소스이며, 소스 코드는 GitHub에 있습니다.

Seamless Migrate는 Red Hat 제품인가요?

아니요. Red Hat, OpenInfra Foundation, Broadcom과 제휴하거나 이들의 후원 또는 보증을 받지 않는 독립 오픈소스 프로젝트이며, 어떤 Red Hat 서브스크립션의 적용 대상도 아닙니다. 업스트림 os-migrate Ansible 컬렉션을 기반으로 하며, 데이터 이동은 계속 이 컬렉션이 담당합니다.

Seamless Migrate는 os-migrate와 어떻게 다른가요?

os-migrate는 테넌트 리소스를 내보내고 가져오며 워크로드를 콜드 방식으로 복사하므로, 복사하는 내내 VM이 중지됩니다. Seamless Migrate는 os-migrate를 기반으로 OpenStack 소스용 웜 경로, 스토리지 핸드오버, VMware 웜 오케스트레이션을 추가하고, 계획, 웨이브, 다운타임 추정, 승인, 검증, 롤백, 대시보드, REST API, CLI를 갖춘 컨트롤 플레인을 제공합니다.

시작하기

가능성은 크게.
시작은 작은 파일럿부터.

데모는 노트북의 시뮬레이션 클라우드를 대상으로 사전 복사부터 컷오버, 검증, 롤백까지 모든 단계를 실행합니다. OpenStack 없이도 사용해 볼 수 있습니다.

Linux 서버에서는 Docker, Mac에서는 Colima

$ git clone https://github.com/imransetiadi/seamless-vms-migration$ cd seamless-vms-migration# macOS 전용: Linux에서는 불필요$ make seamless-colima-up$ scripts/compose-init.sh# 시뮬레이션 클라우드, 전체 단계$ make seamless-demo

로컬 데모 체험하기 (새 탭에서 열림)compose-init.sh가 출력한 관리자 토큰으로 /login에서 로그인하세요. Podman도 사용할 수 있습니다: SEAMLESS_ENGINE=podman.