SeamlessMigrate

GUIDE · VMWARE VSPHERE TO RHOSO 18.0 OR COMMUNITY OPENSTACK

VMware to OpenStack migration with minutes of downtime

Seamless Migrate moves VMs from vCenter-managed vSphere 7.0U3 and 8.x into Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 or a community OpenStack cloud. With Changed Block Tracking, disks copy while each VM keeps running; at cutover only the final delta moves, then virt-v2v converts the guest in place.

Source
VMware vSphere 7.0U3 and 8.x, managed by vCenter
Destination
RHOSO 18.0, or community OpenStack 2023.1 Antelope to 2026.2 Hibiscus
Strategies
VMware warm (CBT) and VMware cold
200 GiB VM
6m down warm, 25m 23s cold
Data mover
os-migrate vmware-migration-kit and virt-v2v
License
Open source, Apache 2.0

Why teams move from VMware to OpenStack

Broadcom completed its acquisition of VMware in November 2023 and moved vSphere to subscription bundles. Since then many teams have planned an exit to open infrastructure. OpenStack gives VMs the standard APIs: Nova for compute, Cinder for volumes, Neutron for networks and Glance for images, whether the cloud is RHOSO 18.0, with the control plane on OpenShift and Red Hat's life cycle, or a community release deployed with Kolla-Ansible or another tool.

The hard part of the exit is the move itself: hundreds of VMs, each with an owner who wants to know when it will be down and for how long. Seamless Migrate turns that into a plan: waves with a pilot first, a downtime estimate for every VM before anything moves, an approval and a change window for every cutover, and a rollback until you finalize. Weighing it against MigrateKit, vJailbreak or Red Hat's toolkit? See the migration tools compared.

Two strategies for VMware VMs

  • vmware_warm

    VMware warm

    The vmware-migration-kit copies the disks in Changed Block Tracking passes while the VM runs. At cutover the VM stops, the final CBT delta moves and virt-v2v converts the guest in place.

    Downtime:
    the final CBT delta and the in-place conversion
    Needs:
    CBT enabled on the VM, no independent disks
  • vmware_cold

    VMware cold

    The VM stops, its disks are copied in full and virt-v2v converts the guest before it boots on the destination.

    Downtime:
    the full copy and the conversion
    Needs:
    a conversion host with VDDK in the destination cloud

Both run through a RHEL 9 conversion host in the destination cloud. Seamless estimates both strategies for every VM and picks the one with the least downtime, the simpler one on a tie; you can override the choice. A VM without CBT gets the VMW_CBT_DISABLED warning with its fix: enable CBT, or accept a cold copy.

How long each VM is down

Warm downtime follows the last CBT delta and the in-place conversion, so it barely grows with the disk. A cold copy keeps the VM stopped for the whole transfer.

VM (one volume, 60 % used)VMware warmVMware cold
50 GiB6m13m 6s
200 GiB6m25m 23s
500 GiB6m49m 58s
1 TiB6m1h 33m

VMware sources. Estimated downtime from the stop to the verified boot, with the planning model's defaults: 125 MiB/s link, 2 MiB/s of guest writes. The control plane recalibrates both after the first delta pass.

Try your own VM, with its disks, used space, link speed and write rate, in the downtime calculator.

Before you start

  • vCenter for vSphere 7.0U3 or 8.x, with credentials for the migration.
  • The destination cloud, RHOSO 18.0 or community OpenStack, with an admin account and a RHEL 9 conversion host with VDDK in it.
  • Changed Block Tracking enabled on each VM you want to move warm, and no independent disks on it.
  • A destination network for every port group the VMs use: each NIC is mapped by its port group.
  • VMware Tools running in the guests, so every guest OS is identified.

How a VMware migration runs

  1. 01

    Connect vCenter and the destination

    Add both providers with their presets: vCenter as the source, RHOSO 18.0 or a community OpenStack cloud as the destination. Credentials are write-only and go to the platform's secret store. The connection check reports what each side can do, CBT support included.

  2. 02

    Discover and plan

    The inventory lists every VM with its disks, NICs, guest OS and its CBT, snapshot and independent-disk state. Map networks, flavors and volume types, then let the planner order waves by risk with a pilot first.

  3. 03

    Validate

    Pre-flight checks flag what would fail, each with its fix: CBT disabled, independent disks, a guest virt-v2v can't convert. Every VM gets an estimate for both strategies and an automatic choice.

  4. 04

    Pre-copy while the VM runs

    Warm VMs copy in CBT passes while they keep serving traffic, until their change window opens.

  5. 05

    Cut over with an approval

    Inside the change window, with a second approver's approval and a free cutover slot, the VM stops, the final delta moves, virt-v2v converts the guest in place and the VM boots on the destination.

  6. 06

    Verify, roll back or finalize

    Seamless checks that the server is ACTIVE, its ports and its TCP probes. A failed check deletes the destination server and powers the VMware VM on again. Finalize, with an approver and the VM's name typed in full, closes the migration.

Guest operating systems from VMware

virt-v2v on the RHEL 9 conversion host converts each guest, and Red Hat's virt-v2v support matrix decides what is supported:

  • Supported: RHEL 7, 8, 9 and 10; Windows Server 2016, 2019, 2022 and 2025; Windows 10 and 11.
  • Works, test a copy first: RHEL and CentOS 6, Rocky, AlmaLinux, Oracle Linux, CentOS 7 and Stream, SLES and openSUSE (btrfs roots can't be converted). Ubuntu and Debian are a Technology Preview.
  • Drivers first: RHEL and CentOS 5 and older, Windows Server 2003 to 2012 R2 and Windows 7 and 8 need virtio drivers installed in the guest before the conversion.

Legacy releases get a warning with the remediation, never a silent block. See the full compatibility table for OpenStack and VMware sources, and the vmware-migration-kit for the data path.

GPU VMs and network identity

VMs with an NVIDIA vGPU, time-sliced or MIG-backed, or with a GPU passed through with DirectPath I/O migrate as a Technology Preview, validated in simulation. Seamless reads the vGPU profile, such as grid_a100-4c, or the device's ids, such as 10de:20b5, from vCenter, and the plan maps each to a destination GPU flavor in mappings.gpus; an unmapped GPU VM stays blocked. Validation counts the GPUs against the destination's free capacity in Placement, and the cutover gate reads it again before the VM stops: with no room, the VMware VM keeps running and the migration waits.

A vGPU VM keeps both VMware strategies. A VM with a passthrough device moves only with vmware_cold, powered off, because vSphere takes no snapshot of a VM with a DirectPath I/O device. No GPU state moves: the VM boots on the destination as after a shutdown, and GUEST_GPU_DRIVER and GUEST_GPU_LICENSE name the NVIDIA driver and the license server its guest needs there.

When a VM's address changes on the destination network, a DNS swap, also a Technology Preview, moves its record in Designate or an RFC 2136 server by compare-and-swap once the server is created, and swaps it back on a rollback. Hooks an admin registers, Ansible playbooks or HTTPS webhooks, run at fixed points of each migration for the rest. Neither has run on GPU hosts or real clouds in the lab yet.

FAQ

VMware to OpenStack, answered.

What teams ask before they leave vSphere.

Do I need Changed Block Tracking to migrate from VMware to OpenStack?

Only for a warm migration. With Changed Block Tracking (CBT), the disks copy while the VM runs and only the final delta moves at cutover. Without CBT, Seamless Migrate migrates the VM cold: it stops for the full copy and the conversion, and pre-flight validation warns with VMW_CBT_DISABLED so you can enable CBT first.

Which vSphere versions are supported?

VMware vSphere 7.0U3 and 8.x, managed by vCenter. The destination is Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 or a community OpenStack cloud of any release series from 2023.1 Antelope to 2026.2 Hibiscus, Kolla-Ansible included.

How much downtime does a VMware to OpenStack migration need?

For a VM with one 200 GiB disk, 120 GiB used and 2 MiB/s of guest writes over 125 MiB/s, the planning model estimates 6m for a warm migration with CBT and 25m 23s for a cold copy. Warm downtime follows the final CBT delta and the in-place conversion, so it barely grows with the disk.

Can I go back to VMware if a migration fails?

Yes, until you finalize. A rollback deletes the destination server and its ports and powers the VMware VM on again, and a failed verification starts the rollback on its own. Nothing is deleted before finalize, and finalize deletes the source VM only when the approver asks for it.

Do Windows VMs migrate from VMware to OpenStack?

Yes. virt-v2v supports Windows Server 2016 to 2025 and Windows 10 and 11. Older Windows releases need the virtio-win drivers of an older release installed in the guest first. After the boot on the destination, Seamless Migrate verifies Windows guests on their RDP and WinRM ports instead of the serial console.

Can VMware VMs with an NVIDIA vGPU or a passthrough GPU migrate?

Yes, as a Technology Preview validated in simulation: the plan maps each vGPU profile or device id to a destination GPU flavor, and an unmapped GPU VM stays blocked. A vGPU VM can migrate warm or cold; a VM with a DirectPath I/O device moves only cold, powered off. Its cutover waits for free GPU capacity at the destination while the VM keeps running. The lab cases on GPU hosts have not run yet.

Is Seamless Migrate free?

Yes. It is open source under the Apache License 2.0. For VMware sources it drives the os-migrate vmware-migration-kit and virt-v2v, and adds the plan, the estimates, the approvals, the verification and the rollback around them.

GET STARTED

Big possibilities.
First, a small pilot.

The demo runs every phase, from pre-copy to cutover, verification and rollback, against simulated clouds on your laptop. No OpenStack needed to try it.

Docker on a Linux server, or Colima on a Mac

$ git clone https://github.com/imransetiadi/seamless-vms-migration$ cd seamless-vms-migration# macOS only: not needed on Linux$ make seamless-colima-up$ scripts/compose-init.sh# simulated clouds, every phase$ make seamless-demo

Open the local demo (opens in a new tab)Sign in at /login with the admin token compose-init.sh printed. Podman works too: SEAMLESS_ENGINE=podman.