PowerCLI (E)xVC-vMotion Helper

I've written a small PowerCLI commandline helper giving you a wizard driven workflow to quickly do Cross vCenter Migrations a.k.a. (E)xVC-vMotions. It's based on virtuallyGhetto's xMove-VM.ps1 [1] powershell script. [2][3]

There is also a cool VMware Fling, this cross-vcenter-workload-migration-utility [4] gives you an actually web gui for (E)xVC workload migration, very cool, but needs a machine to run on. Also a nice PowerShell module [5] for automating the fling on the commandline from virtuallyGhetto.

I wanted a simple script, easy to use for everybody and immediately ready to go after download (only needs a recent PowerCLI), that's why i created this helper. All have there use-cases imho.

How does it work?

The script shows a 7-step wizard asking you for a set of parameters needed to succesfully start the cross-vcenter-vmotion. Parameters like source and destination vCenter, destination Host, destination Datastore, destination Networks, etc.

It's very easy to use and was built to work on most environments, with a few checks here and there eliminating most frequent errors. You only need a recent PowerCLI, but the script tells you to if it cannot find the needed PowerCLI modules and directs you to the download website.

At the end of the wizard it shows a complete set of the selected workload to migrate, asks for confirmation and will start the vMotions in parallel showing a handy multi-progressbar.

Wishlist

Maybe i'll update the code later on giving the script Per-VM multi datastore support (it now only does single datastore for the entire workload selected). I have written this feature for the VM-Networks though.

I would also like to upgrade it with some intelligence regarding cross version migration; but in general it doesn't support migrating to a lower version. And also cross standard/distributed vSwitch support; it doesn't support vds to vss. Check this link [6] for more info on the matter.

And it lacks destination VM Folder support...

Code

Github - ExVC-vMotion-Helper.ps1 [7]

notes & links
  1. Blog on xMove-VM.ps1: https://www.virtuallyghetto.com/2016/05/automating-cross-vcenter-vmotion-xvc-vmotion-between-the-same-different-sso-domain.html ↩︎

  2. Blog on affinity rules during xVC-vMotion: https://www.virtuallyghetto.com/2015/04/are-affinityanti-affinity-rules-preserved-during-cross-vcenter-vmotion-xvc-vmotion.html ↩︎

  3. xVC-vMotion requirements: https://kb.vmware.com/s/article/2106952 ↩︎

  4. The Fling itself: https://labs.vmware.com/flings/cross-vcenter-workload-migration-utility ↩︎

  5. Blog on Fling cross-vcenter-workload-migration-utility: https://www.virtuallyghetto.com/2017/12/bulk-vm-migration-using-new-cross-vcenter-vmotion-utility-fling.html ↩︎

  6. xVC-vMotion cross-version support: https://www.virtuallyghetto.com/2017/02/cross-vcenter-server-operations-clone-migrate-between-versions-of-vsphere-6-x.html ↩︎

  7. The bits: https://github.com/janjaaps/powershell/blob/master/VMWare/ExVC-vMotion-Helper.ps1 ↩︎