Migrating Virtual Machines from a free version of ESX to Hyper-V

By | June 5, 2014

Microsoft provide a few different options for V2V migration from Vmware to Hyper-V.  The main tool for this is SCVMM (Virtual Machine Manager). Unfortunately if you have a standalone Hyper-V host and a standalone (free version) ESX host you want to move non prod workloads between, like I did, VMM is quite a bit of work to deploy and configure.

Enter the Microsoft Virtual Machine Converter (MVMC). This tool has been around since Hyper-V 2008 R2 – and is a standalone tool that can be used to migrate VMware VM’s from ESX hosts to Hyper-V or Azure.

I installed the tool on my Hyper-V box, ran through the wizard, entered my to and from host details, selected my VM from the ESX host..got all the way through the wizard..and then…ba bow..

mvmc_error

Checking the log I found…

So, the MVMC tool doesn’t support free versions of ESX, because it doesn’t have the management API’s required. Boo.

I then had a look at the SysInternals tool Disk2VHD (http://technet.microsoft.com/en-us/sysinternals/ee656415)  – which is a great tool, but converts disks to VHD’s, as opposed to VHDX files to VHD files. It treats VM disks like physical disks, and runs inside the guest. Too slow for what I wanted.

Then I had another look at what I had actually downloaded with the  MVMC tool, and noticed the Powershell cmdlet reference. Too easy.

First things first – delete all the snapshots on the ESX host for any VM/VMDK you want to convert. The snapshots will all get merged into the one VMDK, you only want to convert the “proper” vmdk, not all the differencing disks created by snapshots.

Open the datastore, select all the VMDK’s you want to convert, and download them to the Hyper-V box (or anywhere else for that matter..but wherever you installed the MVMC tool). This is the unfortunate part, without the API’s in the licensed version of ESX, we have to download the VMDK’s locally (otherwise the tool would have worked in the first place)

On the MVMC box, this code will batch the conversion..

There is probably a way to mount the ESX datastore and powershell the download of the VMDK’s as well..but seems limited in the free ESX.

5 thoughts on “Migrating Virtual Machines from a free version of ESX to Hyper-V

  1. RD

    Thanks for posting this. I am running into the exact same problem- I have an ESXi server at home that I want to convert to Hyper-V 2012. I am in the process of downloading the vmdk files to convert using the cmdlet per your directions (and script!). I was hoping I could ask you a few questions.

    1) After converting, did you create a new Hyper-V virtual machine to match the ESX virtual machine’s configuration and attach the converted disk or did you perform some other migration process to create the Hyper-V virtual machine configuration?
    2) Most of the documentation covering migration mentions removing the VMWare tools prior to converting. Did you also do this?

    Thanks again!

    Reply
  2. Matt

    Hey,

    Thanks for your comment. Yes, I do remove the VMware tools prior to the copy.

    I have scripts that create my Hyper-V VM’s to a standard configuration, so I just add the disks to the VM. In my case the VM’s being migrated were all fairly standard. You should take note of IP addressing though, as you will need to reconfigure any static IP’s.

    Also, since writing this post I’ve found the OVF Export option in ESX to be the best way of getting the VMDK’s out of the ESX server, as it compresses the files before copying (and is much more user friendly than browsing the datastore)

    I’ll update this post to add some of the extra steps.

    Thanks,

    Matt

    Reply
  3. james

    just use the physical to virtual, even though its not a physical, as long as the VSS writer and the WMI are there then it will work.

    Reply
  4. MV

    Hi,
    can You please explain where to put this script. Do I have ti modify some file with these?
    Regards

    Reply
  5. Scooter133

    This looks pretty straight forward, though I’m trying to convert a ESXi VM that is running a Linux variant. I was hoping to be sure that the NIC Card Mapping would be intact after the conversion. If I setup the Hyper-V VM with the same number of NICs, I’m not sure how to be sure they are associated with the same NICs within the Linux OS.

    Thanks!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *