Welcome again in this third post of my blog series The way to migrate to Hyper-V / Azure. We have seen in the previous posts the first common way to migrate and convert Virtual Machines from VMware to Hyper-V using SCVMM (You can check it HERE). We also seen that this option is not convenient for every scenario, and we saw the mandatory dependency on VMM and other requirements.
Fortunately, Microsoft provides another tool permitting not only converting VMware virtual machines but also physical machines. The tool is Microsoft Virtual Machine Converter (MVMC), and today we are at the 3.0 version. The tool can be downloaded right here
- MVMC 1.0 was released in 2013 to provide a way to convert VMware virtual machines and virtual hard disks to a Hyper-V 2012 platform. It provided a CLI interface for scripting conversion.
- MVMC 2.0 was released in April 2014 and brought new features like the support for vCenter and ESX(i) 5.5, the support of more VMware virtual hardware versions (4 to 10) , the support of converting Linux based virtual machines and the possibility of converting/migrating the VMware VMs to Azure. MVMC 2.0 also added native powershell support for more efficient automation and scripting experience.
We all know that with the release of System Center 2012 R2, the P2V feature in VMM was removed. This was a real mess for the community, unable to find a Microsoft clean way to convert physical machines to Hyper-V.
Microsoft reacts to that and includes the P2V feature with the third release of MVMC, MVMC 3.0. But to be honest, Hyper-V 2012 R2 and VMM 2012 R2 were GA on October 2013, and MVMC 3.0 a year beyond that, so what Microsoft thought customers will do during this year (Converting the dirty way!!)
Is MVMC free ?
MVMC is a Microsoft tool provided at free of charge
MVMC in action
MVMC have to be installed on an machine that meets the following requirements: Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows 8, Windows 8.1. Before that, you must install the following requirements:
- Microsoft .NET Framework 3.5 and .NET Framework 4 if you install MVMC on Windows Server 2008 R2 SP1
- Microsoft .NET Framework 4.5 if you install MVMC on Windows Server 2012/2012 R2 or Windows 8/8.1
- Install Feature Bits Compact server
- Visual C++ Redistributable for Visual Studio 2012 Update 1
NB : Powershell commands are only supported with Windows Server 2012/2012 R2, Windows 8/8.1 because they do use Powershell 3.0
Then you can remotely convert your VMWare VMs or physical hosts. This assumes that you have network connectivity to both source and target platforms.
What can we convert and what are the conversion paths ?
MVMC can convert physical machines running : Windows Server 2008 / 2008 R2/ 2012 / 2012 R2, Windows Vista /7 /8 /8.1 , Linux operating systems are not supported on P2V
MVMC can convert physical machines to : Hyper-V : 2008 R2 SP1, 2012, 2012 R2
- Only online P2V is supported, offline P2V is not possible using MVMC
- As you can see, we can’t convert physical machines to Azure. As an alternative, you will need to convert them to Hyper-V then use another tool or solution to send them to Azure (This will be the topic of the next post in this series)
- The only target disk format is VHD, MVMC will not let you choose VHDx as a target disk format even when the target hosts are running Windows Server 2012 or 2012 R2. As a (heavy) alternative, you can convert VHD to VHDx after the VM conversion, using Hyper-V (This remember me the P2V feature in VMM 2012 SP1 🙂 where only VHD format was supported too)
The following picture shows how the P2V process is triggered:
- MVMC connect to the source machine (The source OS), install the MVMC conversion agent and run a system scan to gather information about the OS (Operating system version, volumes, configuration)
- You select the volumes to convert, the target VM settings an the target Hyper-V host
- MVMC starts the conversion, triggers VSS for the volumes to be converted
- The data starts being copied to the target storage
- VMware to Hyper-V or Azure (V2V)
Update : Microsoft published KB 2977338 to state that converting VMs running under VMware ESXi 5.5 is not possible because of an ESXi design. VCenter is needed. https://support.microsoft.com/en-us/kb/2977338
MVMC can convert VMware based virtual machines running on: ESX/ESXi 4.1, ESX 5.1,
ESX 5.5 ; VCenter 4.1, 5.1, 5.5 ; Vsphere 4.1, 5.1, 5,5
MVMC will let you convert VMware VMs running on version 5, but this case in just unsupported by Microsoft.
N Note that unlike SCVMM, MVMC can communicate with ESX/ESXi without the need of VCenter (Except for ESXi 5.5)
MVMC can V2V virtual machines to Hyper-V 2008 R2 SP1/2012/2012 R2 but also to Microsoft Azure
Unlike P2V, you can use VHD or VHDx as a virtual hard disk format for the 2012 and 2012 R2 target. For Azure, only VHD is supported.
NB Till this moment, Azure maximum supported OS VHD size is 127 GB, so if your OS disk size is greater, you have to manage to free it under the 127 GB limit
MVMC can convert Windows and Linux based virtual machines. For Windows, Server and client are both supported. MVMC can convert server OS from Windows Server 2008 to Windows Server 2012 R2, and client OS from Windows Vista to Windows 8.1
For Linux guest OS, MVMC can convert RHEL 5/6, Ubuntu 10.04/12.04, SLES 11, Centos 5/6, Debian GNU/Linux 7 and Oracle Linux 5/6. X64 and x86 are both supported.
- Additional steps may be required for Linux conversion, visit this TechNet link for detailed information
- Not all this versions are supported when converting to Azure, only guest OSs that are supported on Azure can be converted (Look here in the “Supported configurations for converting virtual machines” section)
- MVMC will uninstall VMware additions before converting windows based virtual machines, you will need to manually uninstall them for the Linux virtual machines
The following picture shows the steps when converting a VMware virtual machine using MVMC
- MVMC connects to VCenter or ESX/ESXi and selects the target VM
- MVMC creates a VM snapshot, uninstalls the VMware tools, then stops the virtual machine.
- MVMC starts the copy of the data and create the VHD/VHDx in the target storage. In the Azure case, the VHD is stored on a temporary location
- After the conversion, MVMC restores the VMWare virtual machine (Apply the snapshot). In addition, if the target platform is Azure, the VHD is uploaded to the Azure storage (BLOB)
- Microsoft Automation Toolkit
MVMC is a nice tool for converting VMware virtual machines. MVMC offers a UI wizard that let you convert only one virtual machine at a time, so what if we have hundreds or thousands of VMware virtual machines that to convert ?
Fortunately, MVMC comes with native powershell support. In this case, we can script and automate virtual machines conversion, and trigger multiple and simultaneous conversions at at the same time. The good news is that Microsoft did the job for us, and provided a set of powershel scripts that wrapper MVMC with automation to permit parallel and batch conversion operations. You can download MAT here
So how MAT works ?
- You need to run MAT in a machine, normally where MVMC is installed. This machine is called the Control Machine. MAT needs a SQL server. You can use SQL server Express or an existent SQL installation. MAT will use a small database to record virtual machine conversion states.
- MAT will query a Vsphere server to collect the managed ESX/VCenter/VCenters managed virtual machines
- MAT will record this information in its database then generate a text file which contains all the VMs names. You have to open this file with a text editor and delete the VM names you do not want to convert
- Then MAT will start the conversion using MVMC based on the list you provided.
- Because a single MVMC server can only convert 3 virtual machines at a time (It’s by design for performances reasons), you can bring to your configuration other MVMC servers, and tell MAT to use them and spread the conversion tasks between them. These nodes are called helper nodes. Using helper nodes can accelerate the simultaneous conversion operations.
In this post, we seen how we can make P2V and V2V to a Hyper-V or Azure platform. The Microsoft Virtual Machine Converter offers both physical and virtual conversion capabilities, with a great powershell support. For batch conversions, we can use MAT to convert several virtual machines at a time.
- Only V2V operations are possible with MAT, physical conversion is not supported with MAT
- MVMC just copy the VHD to the Azure storage, it is for you to create and configure the virtual machine in Azure
- MVMC will cause down time during V2V (The VMs are stopped). You have to schedule wide maintenance window for conversion. If you cannot allow downtime, you can use MVMC to P2V your VMware virtual machine. MVMC talks just with the OS during a P2V process, it will not look if this OS is really virtualized or not. But in this case you will not be able to use MAT
- You cannot convert physical machines to Azure. If you use MVMC, you have to make a P2V, then use another tool to migrate to Azure.
- During conversion to Azure, the VHD will be stored in a local path, then uploaded to Azure after the V2V. So you will have to provide enough local storage for the V2V. And the total V2V duration will be equal to : Conversion time + Upload time
This was the third post in this blog series, in the next coming post, I will present the MA (Migration Accelerator) solution that unable customers to migrate and convert everything to Azure.