With all the uncertainty across the industry with the tectonic shakeup with VMware by Broadcom, many organizations may be looking at alternative solutions. Vates XCP-ng (free and open source Xenserver for virtualization) is certainly on the list of solutions that businesses can consider as a hypervisor moving forward if they want to migrate from VMware. Let’s take a look at what the process looks like with test virtual machines running inside of VMware vSphere and how you can migrate these over to XCP-ng in your on-premises data center, including virtual disk files, configuration file, and getting the VM up and running in XCP-ng as your destination.
Table of contents
- You Need an XCP-ng subscription (or trial) for the migration process
- Inventory and assessment of your VMware vSphere infrastructure
- Using the Xen Orchestra “From VMware” import tool
- Powering up and configuring the migrated VMs in XCP-ng
- Investigating problems with networking
- Cold Migration using OVA
- Live Migration with Xen Orchestra
- Steps with XCP-ng and Xen Orchestra after migration
- Migrate from other hypervisors
- Thoughts on the steps to migrate VMware to XCP-ng
- Is XCP-ng as good as VMware
- Wrapping up migrate VMware to XCP-ng
You Need an XCP-ng subscription (or trial) for the migration process
XCP-ng has a built-in migration tool as a feature in the Xen Orchestra (XOA appliance once provisioned) interface that can convert VMware VMs to XCP-ng VMs. However, you won’t see this until you sign up for a free trial of the subscription service (someone correct me on this if I am missing something here). Before signing up, you will only see the following options below. Not the banner for Free Trial for Premium Edition.
After signing up, you will need to go through a couple of rounds of upgrades, both for your XCP-ng host and Xen Orchestra:
After signing up for the Trial subscription for Premium edition, we now see the option under Import in Xen Orchestra for From VMware.
Inventory and assessment of your VMware vSphere infrastructure
For many, they may not be looking to migrate literally every VM. For others, they may want to migrate everything. The first step is understanding your requirements for migrating and what you hope to accomplish.
For migration purposes to XCP-ng, you will need to have your vCenter server or ESXi host details, VM configurations, and a look at your datastore usage in your data center.
Using the Xen Orchestra “From VMware” import tool
Let’s look at using this “From VMware” tool to import a VMware virtual machine into XCP-ng. This is the native V2V tool that allows migrating your VMs from VMware to XCP-ng. You can migrate the VMs, either powered on or powered off. When you launch the From VMware tool, you will first see the expected. You will need to fill in the following, including the host and credentials:
- Host IP
- Skip SSL check toggle (if you are running self-signed certificates)
You can see these in the following screenshot:
To level set, I have a home lab VMware ESXi server running a ton of Ubuntu VMs. In case you want to know, I am using the recent Minisforum MS-01 review unit running 40 Ubuntu Server 22.04 LTS VMs as the source.
After connecting your XCP-ng wizard to your source ESXi or vCenter Server, the wizard allows you to configure settings, including the number of VMs to import in parallel, and you can also select which VM object you want to migrate in the batch with the simple drop down menu. You can select multiple VMs as well.
After selecting the VMs, note the other options:
- To pool (which XCP-ng pool you want to target)
- To SR (target storage repository volume)
- Network (which network you want to connect to)
- Thin mode (less space is used. However, note that Data is read twice, no visible task or progress at first if you choose this option.
- Stop the source VM (you can choose to stop the source VM before the last delta transfer (after final snapshot). This is needed to fully transfer a running VM.
- Stop on error (Stop on the first error when importing VMs
Click the Import button to begin the import process.
One thing about the import process. It would be nice if Vates added a graphical indicator of the progress, which I never saw. Instead, if you click the code icon below pointed to by the second arrow, you will see the JSON view of the task which includes the progress at the bottom.
Below is the JSON view of the migration progress.
After the process completes, you will see a green indicator for the Status, instead of the amber indicator. Also, as a note, I ran this across two different segments of my LAN which was scrutinized by my firewall. So, I think it would have gone quicker than the 28 minutes listed below. Still not too bad in the home lab for around 120 gig of data. Vates has also made a lot of changes in the latest version release on the VMware migration side of things to improve the performance of the migration. Make sure you have the latest updates installed.
Powering up and configuring the migrated VMs in XCP-ng
The guest virtual machine powers on without issue in XCP-ng after the migration completes in my testing. I didn’t have to do anything in general with drivers for the system or run into any issues with the power on or boot.
One cool thing you will notice is that it kept the VMware MAC address on the machine after the migration. However, as soon as I booted, there is no IP address. So let’s investigate that in the example below.
Investigating problems with networking
You will likely run into issues with Linux-based VMs that have a specific network adapter referenced in the networking configuration. The netplan configuration in my Ubuntu Server VM was referencing the old adapter name when it was running in VMware vSphere.
I changed this to the new network adapter name:
Then I ran the following command from the CLI:
sudo netplan apply
After that, I was able to grab an IP address from the DHCP server:
I haven’t tested this as of yet, but I am thinking a Windows VM may have less quirkiness on the network side of things, since the network adapter name shouldn’t matter as much.
Cold Migration using OVA
Cold migration is the process where VMs are powered down before the migration begins. This method ensures data integrity but requires a planned downtime. You can also use another means besides the From VMware wizard in XO. You can export your virtual machine out of VMware to an OVA format and then import the OVA into XCP-ng. However, this is definitely going to be a cold migration process compared to the more real-time and seamless process to migrate using the Import from VMware wizard.
Live Migration with Xen Orchestra
For environments where downtime is not an option, live migration with Xen Orchestra (XO) is the way to go using the XO Import VM From VMware process as we have seen. Using Xen Orchestra (XO), you can migrate VMs they are still running while XCP creates a snapshot of the disk and starts moving the disks data over to the XCP-ng storage repo. You can then choose to stop the VM as part of the process and then have it boot up on the XCP-ng side. This will be the least amount of disruption for end users, since they won’t have to be disrupted the entire time, only when it cuts over.
Steps with XCP-ng and Xen Orchestra after migration
Xen Orchestra is the critical component for effectively managing your XCP-ng environment after the migration. Using XO, you will want to configure backups to start protecting your VMs now running on the XCP-ng platform. Using a backup of your VM, you can restore data in the event of a disaster when needed. You can also use XO to monitor performance and ensure your virtual machines are running well in their new environment.
Migrate from other hypervisors
XCP-ng provides the tools, features, and compatibility to migrate from other hypervisors, including Hyper-V (copy over VHD), Citrix Xenserver, Virtualbox, and KVM. You can check out the official migration documentation from Vates for more information: Migrate to XCP-ng | XCP-ng Documentation.
Thoughts on the steps to migrate VMware to XCP-ng
The From VMware wizard under the Import VM menu actually worked pretty well. The thing about these tools you will have to remember is they are a bit more crude that what you are used to with a solution like VMware HCX for migration that is quite a bit more seamless.
The other downside in my opinion is the requirement to have this functionality with XCP-ng under the paywall of subscription. It would be nice to see the wizard to import the VM from VMware to be available without the subscription needed. It is good that you can experiment with this however, under the trial subscription to begin with and for support.
Keep in mind this doesn’t use your vMotion network on your VMware hosts as this is will use the management network configured on your VMware hosts to move the data from your VMware environment over to your XCP-ng environment.
Is XCP-ng as good as VMware
I am a long time VMware user and VMware vExpert. I love the VMware community. However, the fear and uncertainty is real for many organizations running VMware solutions. Is XCP-ng as good as VMware? I think most will agree, VMware is the best in the business. It is an unbeatable hypervisor in its features and capabilities.
However, if you are looking for pure virtualization features and a very VMware-like management workflow with new features added regularly, XCP-ng is a great solution. There is an interesting Reddit thread here where the Vates CEO chimed in and had a few interesting and honest things to say:
There’s so many features in VMware, it’s hard to answer. Do you have a specific list of, let’s say “critical features” for you and then “nice to have” again for your use case? Nobody got 100% coverage, and our solution can fit in many cases but not all. Sometimes it won’t be the right solution for your requirements and it’s fine by me: I will never oversell it.
Also, XCP-ng/XO is far from being static, every months we make a pretty big release (mostly XO) and as a example, here is the last monthly blog post about what’s new in the last 30 days: https://xen-orchestra.com/blog/xen-orchestra-5-91/
So it’s moving fast, and we re-invest all our revenue growth to develop the team to bring even more. So you will probably find lacking some neat features you have in VMware, but the way we grow is encouraging for the future.
Wrapping up migrate VMware to XCP-ng
The process to migrate from VMware to XCP-ng is quite simple using the built-in Import VM From VMware functionality in Xen Orchestrator. This is functionality that you will have to sign up for the trial subscription to enable, which is a bit of a bummer. However, considering there isn’t as slick of a tool to migrate from VMware to Proxmox, the XCP-ng process is very easy in comparison. Let me know in the comments if you plan on using the XCP-ng XO Import VM from VMware wizard to move workloads to XCP-ng if you are going that route instead of renewing your VMware licensing.