Summary
This utility allows users to easily migrate virtual machines in bulk from a graphical user interface between vCenter servers using the Cross-vCenter vMotion feature.
Key Features
- Completely UI-driven workflow for VM migration through a vSphere Client plugin and a standalone UI
- Provides REST API for automating migration tasks
- Works with vCenter Servers in the same or in different SSO domains
- Supports migration to/from VMware Cloud on AWS
- Enables batch migration of multiple VMs in parallel
- Integrates with the host/cluster/resource pool menu of the vSphere Client inventory tree
- Auto-populates inventory for ease of management
- Monitor workload migration progress through vCenter Server tasks
- Register sites to store vCenter Server information
Supported Operations
- Perform live/cold migration as well as relocate/clone operations
- Works for migration tasks within and across vCenter servers
- Select host/cluster/folder/resource pool as placement target
- Supports both storage vMotion and shared datastore migration
- Flexible configuration for VMs with multiple network interfaces
Download Hash
- xvm-3.1.jar - SHA256: 3a490880f10c62bd3a6d0a82e3ed9ade5c55df802e2b4cb301aa52157038abde
- xvm-3.0.jar - SHA256: a33ce87e848bc2cc51bd63ac316a35615d46eb14872984d7e66d779c92c6e586
- xvm-2.6.jar - SHA256: b6020bbcd046b5fcc2b7d9c3e62beafb4d9f906658b710630687b7b06d575474

Requirements
- vCenter Server 6.0 Update 3 or above (ESXi hosts must also be 6.0u3+
- Java Runtime Environment 1.8-10
- Web Browser
- Please review https://kb.vmware.com/kb/2106952 for Cross vCenter vMotion requirements
Instructions
- Run the utility jar file from a shell window. To use the plugin UI add the details of the vCenter Server 6.7U1+ which will be used to access the vSphere Client.
Java 8:$ java -jar xvm-3.0.jar --vcenter.fqdn=VCENTER-IP-OR-FQDN --vcenter.user=ADMIN-USER --vcenter.pass=ADMIN-PASSWORD
Java 9/10:java --add-modules java.se.ee -jar xvm-3.0.jar
Default app port is 8443 which can be changed (e.g., 31000) by providing an additional flag:$ java -jar -Dserver.port=31000 xvm-3.0.jar
Note: If you wish to just use the standalone client, you can simply omit the vCenter Server registration and then access the standalone UI using http://localhost:(default port 8443) $ java -jar xvm-3.0.jar
- Access the UI of the utility
- To use the plugin go to https://VCENTER-IP-OR-FQDN/ui in the browser and login.
- To use the standalone UI (deprecated) connect to the app from the browser by using IP address/hostname of the machine (127.0.0.1 for localhost) where the utility is running as 'host'
https://<host>:<port>
- Register vCenter servers for migration operations
- from 'vCenter Servers List' view of the plugin
- from 'Register' tab of the standalone UI.
Provide required parameters:
Sitename: a name to identify the vCenter server vCenter Hostname/IP address, username, password Trust server: select to skip SSL certificate verification during VC connection
After a restart of the utility, enter password and re-establish connection for previously registered sites.
- Initiate VM migration operations
- from the vSphere Client plugin For experience integrated with the inventory tree use the 'Import VMs' action on a selected target Host or Cluster. For the general source-to-target scenario use the 'Migrate VMs' wizard from 'vCenter Servers List' view.
- from the 'Migrate' tab of the standalone UI. Progress of migration tasks can be monitored on the home page.
Provide required parameters (select values from menu):
Operation type: supported operations are relocate/clone Source and target sites: select sites from already registered sites Source VMs: select datacenter and VMs from the source site for migration Placement target: select target compute resource (host or cluster) Target datastore: select target datastore for placement Network mappings: select networks to map from source to target sites (Optional) Target pool and folder: select target VM folder/resource pool
- Access the UI of the utility
APIs
REST APIs for automating migration tasks can be accessed/executed from the API reference link under the help menu which links to the Swagger UI. Here are examples of site registration and performing migration task through the API:Site registration curl -X POST https://127.0.0.1:8080/api/sites -H "Content-type: application/json" -d '{"sitename":"my-vc", "hostname":"vcenter.server.com","username":"administrator@vsphere.local","password":"mysecret","insecure":false}' Migration task curl -X POST https://127.0.0.1:8080/api/tasks -H "Content-type: application/json" -d '{"operationType":"relocate","sourceSite":"site1","targetSite":"site2","sourceDatacenter":"Datacenter","vmList":["vm1", "vm2", "vm3"],"targetDatacenter":"Datacenter","targetCluster":"Cluster","targetHost":null,"targetDatastore":"Datastore","networkMap":{"Private Network":"Internal Network", "VM Network":"VM Network"}}'
Notes
- Application logs are stored in xvm.log file.
- Site connection details (excluding password) are stored in xvm.dat file on disk.
- SSL keys for vCenter servers are stored in xvm.ks keystore file.
- The app stores migration task state in memory, implying a restart of the app loses information about migration tasks.
- Please refer to this KB article for supported configurations for Cross vCenter vMotion https://kb.vmware.com/kb/2106952
- A detailed blog by William Lam on the utility https://www.virtuallyghetto.com/2017/12/bulk-vm-migration-using-new-cross-vcenter-vmotion-utility-fling.html
- A demo of an earlier version of the utility can be found at https://www.youtube.com/watch?v=r_kG8ny-qss
Changelog
Version 3.1, January 22, 2020
- Support for disk format conversion between Thick (Lazy Zeroed), Thick (Eager Zeroed) and Thin provisioning
- Support for VM rename pattern for Clone operation
- Fixed duplicated network selection when performing bulk migration
- Fixed startup failure when a new home vCenter is specified as a command line argument
Version 3.0, Novemember 5, 2019
- New plugin UI integrated with the vSphere HTML5 Client and supported with both vSphere and VMware Cloud environments
- Full feature parity with the standalone XVM UI
- Supports migrations triggered by the host, cluster and resource pool actions from the vSphere Client inventory tree
- Standalone UI is now deprecated but is still supported
- Ability to migrate networks with the same name
- Sorting and filtering of the list of VMs to migrate (plugin only)
- Error reporting improvements
Version 2.6, April 15, 2019
- Added support for NSX-T Opaque Network (enables migration to/from VMC and on-premises vSphere with NSX-T)
Version 2.5, November 5, 2018
- Remember registered site information (without password)
- Easily retry a previously attempted task in case of failures
- Search box for keyword filtering of migration task history
- Option to clear task history by removing completed tasks
- Added documentation and other links under the help menu
- Partial fix for an issue related to duplicate network names
Version 2.3, October 18, 2018
- Added support for migration within a single vCenter server
Version 2.2, July 16, 2018
- Support for vSphere Resource Pool and VM folder for placement under advanced options
- Support for VMware Cloud on AWS (VMC) by specifying resource pool and folder options
Version 2.1, June 21, 2018
- Increased simultaneous migration limit to 100 from 10
- Added check to ignore unknown fields for inventory info
- Fixed source/target site names in task status view
- Updated status API to include version number
Version 2.0, May 4, 2018
- Added support to select individual host as the placement target
- Added support for migrating VMs with shared datastore
- Added clone functionality in addition to relocate
- Added resource summary details for placement targets
- Added a prompt to verify site thumbprint during SSL verification
- Added a link to refresh vm list in the inventory view
- Updated REST APIs to add operation type parameter
Version 1.1.0, March 30, 2018
- Added a detailed task info view for migration tasks
- Fixed an issue with site name containing “DOT” characters
- Display VM resource (CPU, Mem, Disk) info
- Add a button to clear selected inventory data
Contributors
Similar Flings

VMware Event Broker Appliance
The VMware Event Broker Appliance (VEBA) Fling enables customers to unlock the hidden potential of events in their SDDC to easily event-driven automation based on vCenter Server Events

VM News Collector
VM News Collector is a real-time news aggregator dedicated to the collection of all kinds of real-time news updates and applicable information & resolutions on all technology products belonging to the VMWARE Group, a technology giant, leading the technology revolution in cloud computing & virtualization fields.
No need to scroll through hundreds of documents looking for informations. VM News Collector App has it all for you.

SDDC Import/Export for VMware Cloud on AWS
The SDDC Import/Export for VMware Cloud on AWS tool enables you to save and restore their VMware Cloud on AWS (VMC) Software-Defined Data Center (SDDC) configuration.