Sign Up for the Quarterly Newsletter

Cross vCenter Workload Migration Utility

Products:

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.0.jar - SHA256: a33ce87e848bc2cc51bd63ac316a35615d46eb14872984d7e66d779c92c6e586
  • xvm-2.6.jar - SHA256: b6020bbcd046b5fcc2b7d9c3e62beafb4d9f906658b710630687b7b06d575474

  • 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
  1. 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
  2. Access the UI of the utility
    1. To use the plugin go to https://VCENTER-IP-OR-FQDN/ui in the browser and login.
    2. 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'
      http://<host>:<port>
  3. Register vCenter servers for migration operations
    1. from 'vCenter Servers List' view of the plugin
    2. 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.

  4. Initiate VM migration operations
    1. 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.
    2. 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
      

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 http://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 http://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

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