How to Automate The Upgrade Of Virtual Machine Configuration Version In Hyper-V 2016? #HyperV #WS2016

Hello folks,

What is Virtual Machine Configuration Version?

In the previous versions of Hyper-V, whenever you upgraded your host to a new release, the moment Hyper-V sees your virtual machines, it will be upgraded automatically behind the scenes.

However this has been changed in Windows Server 2016, Hyper-V will not automatically upgrade your virtual machines. The upgrade of a virtual machine is a manual operation now that is separate from upgrading the host. This gives you the flexibility to move individual virtual machines back to earlier Hyper-V versions, until they have been manually upgraded. This what we call it the Point of no Return.

Version 5.0 is the configuration version of Windows Server 2012 R2. Version 2.1a was for Windows Server 2008 R2 SP1 Winking smile. The configuration version was always there for internal usage based on the functionality and not based on the release, and it was not displayed to the users. In Windows Server 2016 Technical Preview 2 the version is 6.2.

The process to upgrade a virtual machine version requires to shutdown the VM, and do a manual upgrade. This is a one-way process so you can either do this through PowerShell or through the Hyper-V Manager console, and in the UI you can see we have got this Upgrade Configuration Version.

What'sNewInHyperV-TPv2-03

 

To upgrade the VM Configuration File through PowerShell, you need to run the following cmdlet from an elevated Windows PowerShell:

Update-VMVersion “VMName”

As a side note, the PowerShell cmdlet to upgrade the VM configuration version was updated in Windows Server 2016 Technical Preview 2 to Update-VMVersion, however in Technical Preview 1, the cmdlet name was Update-VMConfigurationVersion.

Update-VMVersion-01

Update-VMVersion-02

The latter is shorter Smile

Microsoft in Windows Server 2016 they have introduced a new configuration file format for Virtual Machines which is designed to increase the efficiency of reading and writing virtual machine configuration data. It is also designed to reduce the potential for data corruption in the event of a storage failure.

So after you update the VM Version, the new configuration files use the .VMCX extension (Replaced the old .XML files) for virtual machine configuration data, and the .VMRS extension (Replaced the old .VSV/.BIN files) for VM runtime state data.

What'sNewInHyperV-TPv2-10

You can keep running the imported Virtual Machines on Hyper-V 2016 as much as you want, but you don’t get the benefit of the new features unless you upgrade the configuration version.

As we need to start preparing the migration from earlier versions to Hyper-V 2016, this become an iterate process.

I know it’s still early for Windows Server 2016 to be released, but nevertheless prepare your migration plan ahead of time will save you time and make sure your migration is successful.

Consider you have 50 or 100 VMs that you want to upgrade their configuration version Sad smile.

PowerShell to the rescue Winking smile

So I created the following tool that will help you to automate the migration and the upgrade process.

I want to mention that this tool was created using SAPIEN PowerShell Studio 2015 which is a great support when you are creating advanced scripts or GUI Tool.

This tool will help you to live migrate Virtual Machines including their Storage from Windows Server 2012 Hyper-V to Windows Server 2016 Hyper-V (TP2).

When the Shared Nothing Live Migration is completed, you have the option to upgrade the VM Configuration Version of all Virtual Machines with earlier versions and get all the benefit and features of Windows Server 2016 Hyper-V!

If the Virtual Machine is in running state, the VM will be turned off and upgraded to the current VM Version 6.2, and then it will be turned on.

How to use:

Run Update-VMConfigVersion1.0.exe on Windows Server 2016 TP2 Hyper-V Host.

Prerequisites:

Requires   : PowerShell Version 5.0.
OS           : Windows Server 2016 Technical Preview 2 Hyper-V and Windows Server 2012 R2 Hyper-V.
Module     : Hyper-V-PowerShell Version 2.0 and Version 1.1.
Domain    : Member of the same domain with Admin privilege.

Update-VMVersion-Tool01

Update-VMVersion-Tool02

Update-VMVersion-Tool04

Update-VMVersion-Tool05

Update-VMVersion-Tool06

You can download a copy of this tool from TechNet Gallery here.

This is version 1.0, do you have any other scenario? Please leave your feedback below.

Hope that helps to make your upgrade easier Smile

Until then… enjoy your day!

Cheers,
/Charbel

 

Be social and share!

About Charbel Nemnom 271 Articles
Charbel Nemnom is a Microsoft Cloud Consultant and Technical Evangelist, totally fan of the latest's IT platform solutions, accomplished hands-on technical professional with over 15 years of broad IT Infrastructure experience serving on and guiding technical teams to optimize performance of mission-critical enterprise systems. Excellent communicator adept at identifying business needs and bridging the gap between functional groups and technology to foster targeted and innovative IT project development. Well respected by peers through demonstrating passion for technology and performance improvement. Extensive practical knowledge of complex systems builds, network design and virtualization.

Be the first to comment

Leave a Reply