Seamless migration from VMware to OpenStack using vJailbreak tool
![](https://www.socallinuxexpo.org/sites/default/files/styles/square_thumbnail/public/speakers/IMG_9818%20%281%29.jpg?itok=JBHaZM7p)
Motivation
Many organizations using VMware are considering OpenStack as a viable private cloud alternative due to its flexibility, scalability, and open-source nature. However, the migration process from VMware to OpenStack can present significant challenges, including concerns about application downtime, compatibility with existing workloads (especially Windows guests), and the complexity of managing large-scale migrations in an automated way. Some users may also be new to OpenStack and hence need an easy way to get started. On top of this, the cost of migration is non-trivial and can be a limiting factor for these organizations. In this presentation, we will discuss how you can overcome all these challenges with an easy-to-use migration tool called vJailbreak. We will also touch upon how this is not just “yet another migration tool” and how it differentiates in comparison to some existing alternatives out there.
Business-source
vJailbreak is a business-source migration toolkit that helps organizations migrate VMs from VMware to Openstack in a simple, easy to use, and efficient manner. Our vision is to enable a “rolling cluster migration” of an entire VMware cluster into an entire new OpenStack cluster; using the same servers, storage and physical network infrastructure. One of the main tenets when designing this tool has been simplicity for users coming from a VMware background. vJailbreak is packaged as an appliance that can be run in any OpenStack environment, or simply run on a single Hypervisor instance. This appliance also includes a bundled OpenStack-helm based distribution, or can be configured to work with another existing instance of OpenStack. Once deployed, with just a few clicks,, the user can start migrating VMs and experiencing the viability of KVM and OpenStack as a true alternative for their existing VMware environments. To get started, you can use the simple, user-friendly UI for indicating the source VMware environment and also the target OpenStack environment for your VM migrations. Once you have entered credentials for accessing both these environments, you can start scheduling VM migrations right away and also monitor their progress as it goes along. For advanced users, there is also a cloud native API available for managing these migrations.
Migration workflow
To expedite the migration process, we perform a discovery of your VMware environment to make the migration process point-and-click for you. The user can go in and select the VMs to migrate in bulk depending on the maintenance window for specific applications, planned schedule or perhaps dependencies between any set of VMs. When dealing with any sort of migration, you need to account for that application’s tolerance to any downtime or interoperability with other dependencies. To help with this, vJailbreak has support for migrating VMs while they are running, ensuring that your application would be live for as long as possible during the migration process. Depending on the size of the VM storage, it may take longer to migrate that VM’s data but vJailbreak optimizes that by doing an incremental copy of data based on information about which blocks have changed on disk. vJailbreak supports this type of “warm” migration where most of the data is copied while the VM is running or live, but there is a small window where the application may be unavailable as the migration is completed. To help the administrator with managing any maintenance windows for critical business applications at scale, there is an option to specify a downtime window for your application and vJailbreak will only migrate the VM within that window. For applications that can tolerate some downtime, you may just opt for the “cold” migration strategy, wherein the source VM is powered off, then the data is copied over and eventually powered on on the OpenStack hypervisor. Also to do this at scale, vJailbreak offers a migration template construct so that you can easily group batches of VMs with similar migration requirements and set up those parameters just once.
Scalable
The architecture of this tool is inherently very scalable as it is deployed on the Kubernetes platform. You can just add more workers to the Kubernetes cluster, to scale the number of parallel VM migrations based on your needs. Each VM’s migration runs as a job in Kubernetes that can be independently tracked. You can run multiple such jobs in parallel or if needed, sequentially. This design aids in easy cloud-native API access, auto-scaling, status monitoring and automation-friendly batch scheduling. Also one of the main concerns with any migration tool is the storage overhead that may come with it. To ensure the least amount of resource overhead for migrations, vJailbreak performs a zero-copy data migration. This essentially means that the migration of a large VM will consume no more resources than that of a small VM. This is one of the main highlights of the vJailbreak tool. When defining the migration template, the administrator can retain the storage and network infrastructure requirements for the application VMs by specifying a 1:1 mapping between the VMware datastores and networks on one side and the corresponding storage classes and networks created on the destination OpenStack cloud.
Monitoring
Post migration of your applications, it would be crucial to be sure that the application is still healthy and functioning as expected. Since manual validation of each application may be cumbersome at scale for an administrator, vJailbreak also performs auto-health checks to ensure the migrated VM is live and healthy. The health checks can be configured based on either a url endpoint that the application provides or using a combination of IP and TCP port, depending on the interface to the application running inside the VM. Only upon successful migration of the VM based on the health checks you may have added for your specific application, the VM would be powered on the OpenStack hypervisor. Since your source VM is untouched throughout the process of this migration, in case of any failure, vJailbreak rolls the migration back and your source VM is operational once again on VMware. Such migration status will be indicated on the web portal to make it easy for an administrator to monitor it and take a suitable action based on the error.
Application tuning
Another migration challenge is with some applications that may need strict adherence to certain VM properties. For instance, you can have some software licenses that are tied to the MAC address and once associated with your application VM, you cannot afford that to change upon migration to OpenStack. To overcome this challenge, vJailbreak recreates your VM with the same IPs, MAC addresses and flavor (compute and memory spec) as your source VM. If the application has some security constraints in terms of the traffic to be allowed to/from the VM, you can also achieve that by pre-defining the security groups in OpenStack and associating it with the VM’s ports. This takes care of any application compatibility issues on the target platform. Internally, vJailbreak implementation uses open-source tools like nbdkit and virt-v2v, to aid with the actual VM data migration. Both of these tools are widely used and are constantly being updated with new features to support advanced migration usecases. Depending on the OS of the VM being migrated, there may be a need for additional configurations to be done on the target VM post migration too. For instance, Windows VMs need some virtio drivers to be injected as part of the migration. Moreover there is typically a VMware guest agent installed on the source VMs, which needs to be replaced with the QEMU guest agent to work with the target OpenStack hypervisors. These tools allow vJailbreak to inject new drivers/tools and remove the old ones as needed, without any manual user intervention.
Roadmap
In the future scope of this project, the vision is to further enhance the migration experience by providing an out of the box way to deploy a new OpenStack control plane to be used as the migration target for someone who has not dealt with this in the past. The idea here is to have the administrator onboard the first hypervisor to this new OpenStack control plane to deploy the vJailbreak appliance VM on and then kick off the VM migrations from VMware to this new cloud platform in a seamless way. The aim is to migrate all the VMs off of VMware in a rolling fashion; basically start with evacuating one ESXi node at a time by migrating its VMs and then perform a rolling conversion of this node into a KVM hypervisor for your OpenStack environment. As the migrations complete, all your ESXi hypervisors would have been onboarded as KVM hypervisors providing your users a seamless transition to this new open-source cloud platform. This session will provide an insight into this exciting roadmap ahead.