Migration Automation Toolkit for MVMC 2.0

Migration Automation Toolkit for MVMC 2.0

  • Comments 18
  • Likes

Migrators, assemble!  The MVMC team has published version 2.0, packed with new features, and in tandem the BCB team is releasing a new version of MAT!

MVMC 2.0


MAT for MVMC 2.0


MVMC is a tool for converting VMware virtual machines to Hyper-V virtual machines.  Version 2.0 offers many new features that helped make this version of MAT a lean, mean, migrating machine.

  • PowerCLI is no longer a requirement
  • MVMC removes VMware tools
  • MVMC handles disk assignments
  • MVMC is able to convert both Windows and Linux

The scope for MAT4MVMC2 is on premise migrations.  MVMC 2.0 does include the ability to migrate directly to Azure but this has not yet been implemented for MAT.

As a result of MVMC offering these new features, MAT is now 100% aligned with MVMC on-premise capabilities.  This was a minor regression from the MAT 1.5.2007 “network map” solution.

The remainder of changes are script maintenance:

The build is based on the latest MAT update which includes all known bug fixes.

This release also includes another round of script refactoring, so the functions are now part of a PowerShell Module and they each have a “MAT” prefix.  The purpose of this work is to take MAT in the direction of being a common set of cmdlets where anyone could build a custom “front end” experience.

The Variable.XML file has a minor change so that each top level child node is now “varType” with the title set as an “Id” attribute.  This makes enumerating the file a more simple operation so it is easier to add and remove sections as needed.

Finally, even the local machine is treated as a “Conversion Server” and managed using Task Scheduler just like remote nodes, completely managed by the Variable.XML file.  This makes it easy to run MAT from a “command and control” position and onlyperform actual conversions on remote nodes, if desired.

The release includes an example script to demonstrate how the entire migration can be moved to a governing PowerShell script.  This can be extended for any number of scenarios but the example given is a “no questions asked” approach to moving all running VM’s from a VMware host to a Hyper-V host.  This is ideal for test automation and for planned migrations during change windows when maximum efficiency is a must.

Your feedback is welcome as always.  For more information on MAT, follow the Migration Track on the Building Clouds Blog.  Thanks, and stay tuned to Building Clouds!

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Found the first issue with the MAT4MVMC. The database uses an int for GuestVMID in the VMQueue and VMConversionData_PS tables in the MAT database. VMware reports the GuestVMID with the value vm-xx where xx is a number. Since vm isn't an int it throws an error. It was a simple enough change to change it to varchar in the database.

  • Correct link for MVMC 2.0: http://www.microsoft.com/en-us/download/details.aspx?id=42497

  • Michael - thanks, fixed.
    Tim - ah that is a good catch. I will update the .sql file later today and make it .002. Thanks!

  • about to take the stage at World Hosting Days. this is the first keynote i've even done at an amusement park! #WHD

  • about to take the stage at World Hosting Days. this is the first keynote i've even done at an amusement park! #WHD

  • does the tools support migrate vm to manage.windowsazure.cn?

  • Hi There. Receiving this error in PowerShell when trying running the .\ConvertVM.ps1 - Collect command:

    Database Error: Exception calling "Fill" with "1" argument(s): "Conversion failed when converting the varchar value 'vm7117' to data type int.".exception.message - Is this related to Tim's post by any chance?

  • I uploaded .0002 with the ONLY change being the switch to varChar for that column. Should resolve the issue. Just let me know (via comments) if it doesn't or if you run in to other issues. Thanks for the heads up.

  • Hello,

    I am getting the error:

    "The certificate with thumbprint XXX was not found in the personal certificate store."

    ... when I try to specify my Azure connection details. I went into certmgr.msc, verified the cert is there, and verified every character of the thumbprint itself. It's there, it has the golden key on the icon, etc. I rebooted, re-imported the certificate, downloaded and imported a new Publish Settings File, etc - same error, every time. I have tried now on two different systems with the same results. Any ideas? I have not found anyone else having this error so far.

  • Getting an error during disk conversion process.

    'A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).'

    The same thing shows up in the logs. Any guidance would be helpful.

  • No generation 2 VM support in MVMC 2.0 correct? In the works?

  • I've fought with this tool for literally HOURS, hopefully I can save somebody else the same pain.

    1) The tool logs into %TEMP%. The logs are quite verbose.

    2) The tool will run on Windows 7, though you will need to have SP1 installed, and install the Windows Management Framework 3.0 (search for PowerShell 3). If you don't then you'll get an error dialog appearing with no content. Thanks Microsoft, that's a few hours of my life I won't get back.

    3) Getting makecert (at least on Windows 7) requires installing the Microsoft SDK 7.1. It's located in C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin

    4) The command line required isn't exactly clear. This works for me: makecert -sky exchange -r -n "CN=MyNewAzureCert" -pe -a sha1 -len 2048 -ss My "MyNewAzureCert.cer"

    5) The "certificate with thumbprint XXX was not found in the personal certificate store" bug took literally hours to work out. In the end I took Mvmc.Gui.exe apart using the excellent RedGate Reflector (without which I would still be praying) and worked out the criteria that is required. The certificate needs to be in the CurrentUser Personal store (you can access this through Internet Explorer certificate options, or by using the MMC snap-in). Importantly the certificate must be TRUSTED. The MVMC tool searches for certificates using the validOnly=true flag - meaning that untrusted certificates won't be found. In the end I added my certificate into the Trusted Root Authorities store, I'm sure this isn't the correct way to do it, though wasted too much time on this.

    I hope this helps somebody!

  • A follow up to the above...

    Having fought with MVMC I got to the point of uploading my virtual machine. It appears that it doesn't do any form of compression - so a 20GB disk image, with only 1GB of that used will take forever to upload. In the end I used the following process (and saved a lot of time).

    1) Fire up MVMC. Point it to the ESX server and to Azure.
    2) Let MVMC convert the VM from ESX into the VHD format and dump it into a temporary folder.
    3) Cancel MVMC.
    4) Go into the temporary folder, find the VHD file that MVMC created.
    5) Use 7zip to compress the disk image. I ended up with a 400MB compressed file, given a 20GB disk image.
    6) Provision a Windows 7 VM in Azure temporarily.
    7) RDP into the VM. Copy the 7z file over using RDP copy & paste. This took about 15 minutes rather than several hours.
    8) Install 7zip onto the Azure VM. Uncompress the disk image.
    9) Use Blob Transfer Utility (or similar) to upload the image into Azure storage. Doing this from an Azure VM you can get about 20MB/sec - so its super quick.

    It's a bit of a round-about way to achieve this, though it saved faffing about with PowerShell scripts, or waiting for the disk image to upload in full. Hopefully Microsoft will implement compression in the next version of MVMC!

  • MVMC 2 doesn't seem to allow you to convert a machine with a data disk attached larger than 2gb. Support confirmed its a bug. Any news on a fix?

  • Wanted to share that MVMC 2.1 has recently been released to address an issue some folks are seeing when attempting convert a virtual machine that has multiple disks.

    While the website still shows 2.0, when installing you'll see the file version is 2.1. To help verify, ensure you are pulling down the files published 6/5/2014 (or later if available).