arrow-left

All pages
gitbookPowered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Software Driven Migration: VMware to OpenStack

Many organizations are looking to modernize their data centers and migrate from technologies like VMware to OpenStack. Although historically, VMware has been a dominant virtualization platform, trusted by many organizations for running mission-critical applications, the rapidly evolving technology landscape has already delivered the next generation of virtualization technologies. OpenStack and Kubernetes are setting the stage for edge computing and Hybrid & Multi-Cloud to emerge as industry standards.

Migrating from VMware to OpenStack offers compelling benefits:

  1. Cost Savings: OpenStack significantly reduces licensing fees.

  2. Vendor Independence: Avoid vendor lock-in and make choices based on how they favor your business.

  3. Innovation and Collaboration: Open-source fosters rapid advancements.

  4. Scalability and Elasticity: Automatically scale resources on demand

  5. Multi-Cloud Support: Manage multiple clouds and data centers from one interface.

  6. Integration with Open Source: Seamlessly integrate with Kubernetes and other open-source tools.

  7. Community Support: Active community provides resources and expertise

By embracing OpenStack, you gain cost savings, flexibility, scalability, and a vibrant community, empowering your cloud infrastructure.

Migrating VMs from VMware to OpenStack has traditionally been a people-intensive and complex process requiring an "expert-intensive" investment.

Organizations must engage in detailed planning, consult experts, and consider utilizing tools and technologies to facilitate smooth migrations. Because each migration scenario is unique, it has been difficult to come up with best `practices and/or automation. This page is about how Trilio’s Intelligent Recovery Platform can help simplify and automate the migration process.

https://trilio.io/arrow-up-right

Supported Environments

hashtag
VMware version

  • VMware vSphere ESXi 7.0.x

hashtag
OpenStack distributions

RHOSP version
Supported ?

hashtag
Guest VMs

Guest OS
Migration on RHEL 9 host

[1] SUSE Enterprise Linux guests are validated to run on RHEL hosts. However, SUSE Linux uses the btrfs file system by default, which is unsupported by RHEL. Therefore, converting a SUSE system that use btrfs is not possible with virt-v2v.

In addition, VMs that use X graphics and a SUSE Linux Enterprise Server 11 operating system should be re-adjusted after the conversion for the graphics to work properly. To do so, use the sax2 distribution tool in the guest OS after the migration is finished.

[2] As a Technology Preview, converting Debian and Ubuntu VMs is not supported. In addition, this conversion currently has the following known issues: * virt-v2v cannot change the default kernel in the GRUB2 configuration, and the kernel configured in the VM is not changed during the conversion, even if a more optimal version of the kernel is available on the VM. * After converting a linux virtual machine to KVM, the name of the VM's network interface may change, and thus requires manual configuration.

Note: virt-v2v conversions of any operating system not listed above may in some cases work, but are not supported by Red Hat.

  • Refer to the "Supporting Conversions" section of .

Get started with Trilio on RHOSP Deployment
OpenStack version
Supported ?

2024.1 Caracal

✖️

2023.2 Bobcat

✖️

2023.1 Antelope

✖️

OpenStack version
Supported ?

Bobcat Jammy

✖️

Antelope Jammy

✖️

Red Hat Enterprise Linux 9

Red Hat Enterprise Linux 10

Not supported

SUSE Linux Enterprise Server 11, SP4 and later

Not supported [1]

SUSE Linux Enterprise Server 12

Not supported [1]

SUSE Linux Enterprise Server 15

Not supported [1]

Windows 8

Not supported

Windows 8.1

Not supported

Windows 10

Windows 11

Windows Server 2008

Not supported

Windows Server 2008 R2

Not supported

Windows Server 2012

Not supported

Windows Server 2012 R2

Not supported

Windows Server 2016

Windows Server 2019

Windows Server 2022

Windows Server 2025

Debian [2]

Technology Preview

Ubuntu [2]

Technology Preview

17.1 (RHEL9 host)

✔️

16.1

✖️

16.2

✖️

Red Hat Enterprise Linux 5

Not supported

Red Hat Enterprise Linux 6

Not supported

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 8

this documentarrow-up-right

Zed

✖️

Trilio's Approach

hashtag
Overview

hashtag
Architecture

hashtag
Native Service to OpenStack

Trilio’s backup and recovery solution is an OpenStack native service similar to Nova, Cinder, Glance, etc. This software-only solution can be deployed using OpenStack distribution-specific DevOps scripts. For example, Trilio’s solution is native to the RHOSP platform and can be deployed and managed using Red Hat Director.

hashtag
Highly Scalable

We extended Trilio’s architecture to support migration at scale. Since Trilio migrates the VM from VMware ESXi to the OpenStack compute node, the solution scales with your VMware/OpenStack without suffering from performance bottlenecks.

hashtag
Self-Service and Inline Migration

The process of migration usually involves moving virtual machines from a source platform to a target platform, however, the strategy to achieve this should be considered carefully.

If the migration process is initiated from the target platform, it is called inline migration. Trilio advocates inline migration as it helps map organizational structures such as data centers/clusters/folders in VMware to regions/domains/projects in OpenStack.

A project owner with sufficient privileges to their VMware resources can migrate the VMs to their project. If every project owner can migrate their resources from VMware, it provides better control to cloud architects to orchestrate the migration.

If the migration process is initiated from an outside source or target platform, it is called out-of-band migration. Out-of-band demands a centralized approach and places constraints on how cloud architects can design their OpenStack clouds.

hashtag
Horizon Dashboard Plugin

A very intuitive tenant dashboard for the tenant to manage their migrations. If you want to migrate to KubeVirt, Red Hat’s solution can be helpful.

hashtag
Command Line Interface

The sub-commands for the migration feature are available as:

Migration APIs look and feel like OpenStack API. Each tenant can source their cloud rc and start using migration cli commands. CLI also helps users to extend their Ansible scripting for migration.

hashtag
Migration Types

Trilio migration functionality supports three types of migrations

hashtag
Dry-run

Dry-run lets users create the VMs on OpenStack with storage volumes, networking, and security groups attached. It does a migration of VM data from VMware to OpenStack by taking a snapshot of the VM without shutting it down and hence, does not guarantee the data/application consistency. Unlike Cold and Warm migration, there is no disruption to the VMware VMs during this migration. It is a handy feature for users to test VMs and their interconnectivity before completely migrating VMs.

hashtag
Cold Migration

Cold migration shuts down the VMware VMs and migrates the VMs to OpenStack. Depending on the size of the data to migrate, cold migration can take minutes to hours to complete, and during the entire duration, the applications are unavailable. Cold migration is more disruptive than warm migration.

hashtag
Warm Migration

Warm migration leverages VMware snapshot and Change Block Tracking functionality to migrate VMs with minimal disruption. It first takes a VM snapshot and copies the full snapshot data to OpenStack. Depending on the size of the data, this upload operation may take a few minutes to a few hours. During this period, the VM may have written additional data blocks, which are then captured by taking a second snapshot of the VM.

At this point, the cutover occurs as per the option selected by the user during invoking the migration:

  • Manual cutover (default): After the second snapshot upload, the migration process pauses. The user must manually resume the migration once they are ready for the source VM to be shut down and the final data upload to be performed.

  • Automatic cutover: After the second snapshot upload, the source VM is automatically shut down, and the final data upload is performed without user intervention.

In both cases, after the final snapshot is uploaded, the corresponding VM is started on OpenStack. Warm migration therefore provides significantly less downtime compared to cold migration.

hashtag
Conclusion

Trilio's support for migrating VMware VMs to OpenStack is recognized as an industry-leading solution. Its scalability and ability to be deployed organization-wide scale make it a valuable choice for businesses. The self-paced approach provided by Trilio allows application owners to experiment with migration options and gain confidence before performing the final migration. In the context of businesses transitioning from vendor lock-in to open-source technologies, Trilio's migration feature can be a helpful tool in accelerating the transition process.

MTVarrow-up-right
  vcenters-list                          List all the VCenters configured for migration.
  migration-plans-list                   List all the migration_plans of current project.
  migration-plan-create                  Creates a migration plan.
  migration-plan-discover-vms            discover VM's of a migration plan.
  migration-plan-get-by-vmid             List the migration_plan for given vm id
  migration-plan-get-import-list         Get list of migration_plans to be imported.
  migration-plan-import                  Import all migration plan records from backup store.
  migration-plan-modify                  Modify a migration plan.
  migration-plan-show                    Show details about a migration plan.
  migration-plan-delete                  Remove a migration plan.
  migrations-list                        List all the migrations for the migration plan.
  migration-create                       Execute a migration plan.
  migration-resume                       Resume the migration.
  migration-show                         Show details about migration of the migration plan
  migration-cancel                       Cancel the migration.
  migration-delete                       Delete the migration.
  

Deployment & Configuration

Check the supported OpenStack distributions here and follow their deployment guides to install or upgrade to the latest version of T4O.

hashtag
Enable Migration Tab on Horizon

Follow below steps to enable Migration Tab on Horizon.

  1. Login to horizon container.

  2. set DISABLED = False in following panel files.

These files can be found at <openstack_dashboard_installed_package_path>/enabled/

Example: /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/ for RHOSP17.1

  1. Restart horizon container.

_1806_migration_panel.py
_1807_migration_panel_group.py
Supported
Supported
Supported
Supported
Supported
Supported
Supported
Supported

Limitations

Trilio uses a widely used tool virt-v2v for migration which is one of the open-source tools by Red Hat. The below-mentioned limitations are from this tool and thus a limitation for Trilio as well:

  • virt-v2v cannot change the default kernel in the GRUB2 configuration, and the kernel configured in the VM is not changed during the conversion, even if a more optimal version of the kernel is available on the VM.

  • After converting a virtual machine to KVM, the name of the VM's network interface may change, and thus may require manual configuration.

  • Trilio does not support nested virtualization OpenStack deployments for VMware migration.

  • For Windows VMs, post migration, if the secondary disks are in an Offline state, you would need to log in to the guest VM and manually bring all the attached disks online by following any of the below steps:\

    1. Disk Management Console:

      • Open Disk Management. You can do this by searching for "Computer Management" in the taskbar and navigating to Storage > Disk Management.

  • Windows VMs migrated with the Dry-Run type won't be bootable on OpenStack, as complete boot information won't be available until the guest VM is shut down.

Please refer to for more information.

Other Limitations specific to VM Migration:

  • If any VM is having independent (i.e. not mounted on "/") /usr partition, then migration of such VM will fail with below error:

Locate the disk that is listed as Offline.

  • Right-click on the disk and select Online.

  • Diskpart Command-Line Utility:

    • Open Command Prompt as an administrator.

    • Type diskpart and press Enter.

    • Type list disk and press Enter to display a list of all disks.

    • Identify the offline disk and note its disk number.

    • Type select disk <disk number> and press Enter, replacing <disk number> with the actual disk number.

    • Type online disk and press Enter.

    • Type exit to close Diskpart.

  • Post-Conversion Tasksarrow-up-right
    virt-v2v: error: inspection could not detect the source guest (or physical
    machine).
    
    Assuming that you are running virt-v2v/virt-p2v on a source which is
    supported (and not, for example, a blank disk), then this should not
    happen.
    
    Inspection field 'i_arch' was 'unknown'.

    VM Migration Tool (Add-on)

    hashtag
    Introduction

    VM Migration Tool is an add-on stand alone utility provided by Trilio for effective migration of VMs from VMWare to OpenStack. This will assist users in planning the migration, creating any missing artifacts, and providing a holistic view of the migration process at an organizational level.

    Current document provides the steps to be followed for deploying respective tool.

    Supported
    hashtag
    1] Pre-requisites

    A Linux VM (CentOS OR Ubuntu will do) with docker installed on it.

    hashtag
    2] Prepare working dir and contents

    2.1] Clone public repository triliovault-cfg-scripts on the standalone VM (at any convenient location) created for deploying the VM Migration tool.

    circle-info

    For actual value {{ trilio_branch }}, please refer resources page against respective release.

    2.2] On the VM, copy nginx, env, docker-compose.yml & vmosmapping.conf from triliovault-cfg-scripts to /opt directory.

    2.3] Set values against params in /opt/env file.

    Parameter
    Description
    Sample/Default Value

    TRILIO_IMAGE_TAG

    Tag of the image as provided by Trilio. Refer resources page against respective release.

    trilio/trilio-migration-vm2os:5.2.4

    NGINX_PORT

    Port on which nginx should run. Please ensure that the port is free.

    Default : 5085

    2.4] Set values against params in /opt/vmosmapping.conf file.

    Parameter
    Description

    host

    vCenter host address from where VMs have to be migration into OpenStack.

    admin

    Admin user login name for vCenter

    password

    Admin user password for vCenter

    ssl_verify

    hashtag
    3] Deploy VM Migration Tool

    3.1] To deploy the VM Migration Tool on standalone VM, please execute below command in background mode.

    3.2] Deployment checks

    • Run docker ps -a ; 4 containers should be running, viz redis, nginx, trilio_vm2os & opt-worker-1.

    • Sample output below (Forwarded port number can be different as per the value provided in /opt/env file)

    hashtag
    4] Access Tool Dashboard

    Respective Migration tool can be accessed with URL : <VM_IP>:<NGINX_PORT> Example

    For logging into dashboard, use the credentials provided under [user] section in /opt/vmosmapping.conf file

    Preparations

    hashtag
    Preparing vCenter + OpenStack + Trilio

    You will need to be ready with the following resources before starting with the deployment:

    hashtag
    VMware Resources

    hashtag
    vCenter access information

    • vCenter access URL

    • vCenter access Username and Password

    • SSL certificate for secured connection to VCenter (if not available, the SSL verification has to be marked false during configuration)

    Privilege Level
    Required Permissions

    Network Port Requirement

    Trilio needs to have below port accesses for the VM migration feature to work:

    • On vCenter:

      • 80, 443: bi-directional access to OpenStack controller and compute nodes

    • On ESXi hosts:

    VMware vSphere Virtual Disk Development Kit 7.0

    • Trilio requires this kit for the VM migration feature to work. You can download it from the VMware Customer Connect portal by accessing the link below

    • ​​

    • Make sure you download the file

      Name

    hashtag
    OpenStack Resources

    hashtag
    Glance Images

    • For migrating UEFI booted VMware VMs, the OpenStack requires to have the instances with UEFI boot information and so as Trilio.

    • So before doing the migration, the user needs to create a Glance image (any image) with following metadata properties:

      1. set hw_firmware_type property to UEFI

    hashtag
    Instace Flavors

    • Trilio does not create any flavor for the migrating VMs instead it uses the available flavors.

    • To avoid any booting issues post-migration, the user needs to have the correct flavors created and available for selection while initiating the migration.

    hashtag
    Preparing the Guest VMs on ESXi

    hashtag
    Windows VMs Preparation

    • VMware tools need to be installed and should be running on all the Windows OS VMs that are to be migrated. Alternatively, the guest OS must be in a Shutdown state and not be in a Power-off state.

    • Secondary disks in Windows Server VMs appear offline after migration.

      To avoid the disks going into an offline state, set the SAN policy OnlineAll in the guest VM before the migration. Steps to change the SAN policy:

    hashtag
    Enable Change Block Tracking

    To leverage the Dry-run and Warm migration features, the vCenter and ESXi should support the Change Block Tracking(CBT) feature. Make sure that all the data disks attached to the VM, have the CBT enabled.

    To enable the CBT, follow the instructions at

    Also understand the limitations Trilio has described in .

    hashtag
    Free space in the guest for conversion

    Virt-v2v checks if there is sufficient free space in the guest filesystem to perform the conversion. Currently, it checks:

    • Linux root filesystem

      • Minimum free space: 100 MB

    • Linux /boot

    In addition to the actual free space, each filesystem is required to have at least 100 available inodes.

    hashtag
    Access to "/etc/resolv.conf"

    In a Linux guest, you see an error such as this:

    virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted

    This can be caused because the file /etc/resolv.conf in the guest has the set. You can use the command before converting the guest:

    and then restore it (+i) after conversion.

    In addition, please refer to for other requirements and notes.

    git clone -b {{ trilio_branch }} https://github.com/trilioData/triliovault-cfg-scripts.git
    cp -r triliovault-cfg-scripts/migration-vm2os/nginx /opt
    cp triliovault-cfg-scripts/migration-vm2os/env /opt
    cp triliovault-cfg-scripts/migration-vm2os/docker-compose.yml /opt
    cp triliovault-cfg-scripts/migration-vm2os/vmosmapping.conf /opt
    docker compose -f /opt/docker-compose.yml --env-file /opt/env up &
    CONTAINER ID   IMAGE                                              COMMAND                  CREATED         STATUS         PORTS                                               NAMES
    1ed651c084d4   nginx:latest                                       "/docker-entrypoint.…"   5 seconds ago   Up 3 seconds   80/tcp, 0.0.0.0:5085->5085/tcp, :::5085->5085/tcp   nginx
    8ff9f81b9913   trilio/trilio-migration-vm2os:5.2.3-dev-maint3-3   "gunicorn --config g…"   5 seconds ago   Up 4 seconds                                                       trilio_vm2os
    1f91f14ad011   trilio/trilio-migration-vm2os:5.2.3-dev-maint3-3   "celery -A run.celer…"   5 seconds ago   Up 4 seconds                                                       opt-worker-1
    0bb5574ad56b   redis:latest                                       "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp           redis
    http://192.168.6.25:5085/

    REDIS_PORT

    Port on which redis should run. Please ensure that the port is free.

    Default : 6379

    To be set to True or False as needed

    keystone_url

    Keystoner URL of the OpenStack where VMs from vCenter have to be migrated

    admin_user

    Admin user login name for OpenStack

    admin_password

    Admin user password for OpenStack

    admin_project

    Project/Tenant of OpenStack

    admin_domain

    Domain of OpenStack

    region_name

    Region of OpenStack

    ssl_verify

    To be set to True or False as needed

    hypervisor

    To be set as "RHEL 9"

    username

    OpenStack user which is having same role as the user (having trustee role) mentioned in wlm.conf file. This will be used to log into VM Migration Tool Dashboard.

    email

    Email of the VM Migration Tol user

    password

    password for logging into VM Migration Tool Dashboard

    The minimum set of permissions required for a vCenter user to successfully migrate VMs are as follows:

    Virtual machine / Snapshot management

    • Create snapshot

    • Remove snapshot

    80,443: bi-directional access to vCenter, OpenStack controller, and compute nodes

  • 902: outgoing access to vCenter, OpenStack compute nodes

  • Virtual Disk Development Kit (VDDK)

    Version

    7.0

    Size

    22.82 MB

    MD5

    a67ec7cc5c99fa6b0e50e9da1bc6aa25

  • set hw_machine_type property to q35

  • This is not required for BIOS booted VMware VMs

  • Open Command Prompt as an administrator: Press Windows Key + R, type cmd, and press Ctrl + Shift + Enter to open an elevated command prompt.

  • Launch Diskpart: Type diskpart and press Enter.

  • Check the current SAN policy: Type san and press Enter.

  • Change the SAN policy: If the current policy is Offline Shared or Offline All, type san policy=OnlineAll and press Enter. You should see a message indicating the policy change was successful.

  • Exit Diskpart: Type exit and press Enter.

  • This is not mandatory for migration, as the disks can be brought to the Online state manually post-migration as well.

  • Minimum free space: 50 MB This is because we need to build a new initramfs for some Enterprise Linux conversions.
  • Windows C: drive

    • Minimum free space: 100 MB We may have to copy in many virtio drivers and guest agents.

  • Any other mountable filesystem

    • Minimum free space: 10 MB

  • Datastore

    • Browse datastore

    • Low level file operations

    Sessions

    • Validate session

    Virtual machine / Interaction

    • Guest operating system management by VIX API

    • Power off

    • Power on

    Virtual machine / Provisioning

    https://developer.broadcom.com/sdks/vmware-virtual-disk-development-kit-vddk/7.0arrow-up-right
    VMware Knowledge Basearrow-up-right
    this page
    immutable bitarrow-up-right
    chattr(1)arrow-up-right
    the virt-v2v upstream documentationarrow-up-right
    • Allow disk access

    • Allow read-only disk access

    • Allow virtual machine download

    chattr -i /etc/resolv.conf