Blog

Converting Virtual Machine File Formats

November 07, 2018 | Susan Bilder

One step in migrating between VMware and Hyper-V is to reproduce management features, as we discussed in our post on converting from VMware High Availability to Hyper-V's Failover Clustering.  In this post we'll focus on another important step: migrating VMs from one platform to another.

Virtual machines (VM) are made up of a set of files in a format specific to the hypervisor on which they are running.  Some of the files hold an image of the VM, while other files provide details about how the VM should be implemented. Moving a VM to a different host using the same hypervisor is accomplished by pointing the new host to the VM’s files.  However, moving to a different hypervisor is a more complex proposition.


Concept of important choices of a businessmanTo move to a new hypervisor platform the VM’s files need to be converted from their existing format to a format usable by the new hypervisor - a "virtual to virtual" or V2V conversion.  Additionally, VM image files can be very large, and take a significant amount of time to convert. 


If you are "hot" converting a live VM, then additional time will be needed to synchronize any changes that have occurred during the time the conversion was being done.  And, of course, you will need to maintain both the original VM and the migrated VM until you’ve verified that the migrated VM is completely functional.


In this post we’ll take a look at the VM file formats used by both VMware and Hyper-V and the methods provided by VMware and Hyper-V that can be used to convert between them.



VMware Virtualization Files

VM images are stored in files with .vmdk extensions, but VMware uses additional files to store configuration data, backups and swap space.  The files used in VMware 6.7 have names that correspond to the VM name followed by the following prefixes:


File Name Used For Required
{VM}.vmx VM configuration Before powering on
{VM}.vmxf Additional VM configuration, backwards compatible with VMware Workstation Before powering on
{VM}.vmdk VM image Before powering on
{VM}-flat.vmdk VM data Before powering on
{VM}.nvram BIOS settings Generated by hypervisor
{VM}.log, -#.log Log files Generated by hypervisor
{VM}.vswp Swap file Generated at power on
{VM}.vmss Suspend files Generated by hypervisor if system is suspended
{VM}.vmd, .vmsn Snapshot files Generated when snapshots are created

VMware released VMDK as an open format, and other hypervisors such as Oracle’s VirtualBox and KVM on Linux provide varying levels of support for VM images in VMDK format.  VMDK is currently at version 3, with enhancements that allow for VMDK files up to 62 TB, although some management features are limited to smaller files.


Hyper-V Virtualization Files


Rather than using the VM names for files, Hyper-V uses a GUID (globally unique identifier) for VM files.  To find the GUID that corresponds to a VM, run the powershell command:


get-vm | ft vmname, vmid


Hyper-V files include:

File Name Used For Required
{GUID}.xml Configuration files Before powering on
{GUID}.vhd, .vhdx VM image Before powering on
{GUID}.bin Memory for powered on VM Generated at power on
{GUID}.VSV State of devices on the VM Generated at power on
{GUID}.avhd Snapshot storage Generated when snapshots are created


The original VHD format was limited to 2 TB (as were VMware’s VMDK 1 and 2), however VHDX  (introduced with Windows 2012) boosts the upper size limit to 64 TB in addition to providing other performance improvements.  


Converting Files to a Different Platform


Converting a VM to a new platform means generating a new set of files that are required before the VM is powered on.  Sometimes you can use conversion utilities, however there may be times when you will need to convert the VM image file (VMDK or VHD/VHDX) and then generate the configuration files by creating the server on the new hypervisor.  The tools listed below can also be used to create virtual machines based on physical servers (P2V conversion). Keep in mind that V2V and P2V conversions can take a significant amount of time, especially for larger VM image files, and that the conversion will incur downtime even if you do a “hot” conversion of a live server.

VMware to Hyper-V Conversion Utilities


VMware to Hyper-V Conversion UtilitiesIf your VMs reside in VMware, vSphere has the option of exporting or importing VMs using an Open Virtualization Format (OVF).  OVF is a file format that allows for the creation of a virtualization package that includes VM image and configuration data, and allows these packages to be exchanged across supported platforms.  

While VMware supports OVF, Hyper-V does not and it needs to convert OVF files before they can be imported.  Microsoft provides an OVF Import/Export tool as part of System Center 2012’s Virtual Machine Manager add-on. Files can also be converted from VMware to Hyper-V using the Microsoft Virtual Machine Converter (MVMC), and although MVMC is no longer officially supported it is still available.  Microsoft provides MS Word documents containing the MVMC Administration guide (download here) and MVMC PowerShell conversion cmdlets (download here).  MVMC includes options to convert Hyper-V VM’s from either OVF packages or VMDK files and also to convert and upload VM’s to Azure.


If you leverage Azure as part of your environment, Azure Migrate can migrate not only VMware VMs, but also Hyper-V VMs, physical servers, and AWS Windows instances.  Keep in mind, Azure Migrate is part of Azure Site Recovery which is a subscription service after the free trial period.  



Hyper-V to VMware Conversion Utility

VMware provides a stand-alone vCenter Converter which can convert both non-VMware VM’s and physical servers to VMware’s format.  The vCenter Converter User’s Guide provides procedures for cloning machines, including “hot” cloning live machines, and lists of limitations.


If you do try to convert a powered on VM, make sure that you follow the hot cloning requirements for access on Windows or Linux remote cloning, and keep in mind that hot cloning will minimize but not entirely eliminate downtime for the VM.



Conclusion


Microsoft and VMware both provide tools that allow for V2V conversion of different VM image formats to their respective formats, as well as the creation of P2V files from physical servers.  Microsoft also provides utilities that allow for upload of files to Azure while VMware provides a broader array of V2V source formats.

 

Want to learn more?

Download our vSphere vs Hyper-V comparison matrix - both technologies can provide redundancies that will maximize your uptime and that will allow you to squeeze out the most performance. Which is better and how do you decide.

 

Download the comparison:   vSphere vs Hyper-V

 

We value your privacy and will not display or share your email address

Sign Up for the Blog

Heroix will never sell or redistribute your email address.