вторник, 8 ноября 2016 г.

Upgrade virtual machine version in Hyper-V on Windows 10 or Windows Server 2016

Make the latest Hyper-V features available on your virtual machines by upgrading the configuration version. Don't do this until:
  • You upgrade your Hyper-V hosts to the latest version of Windows or Windows Server.
  • You upgrade the cluster functional level.
  • You're sure that you won't need to move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server.

Step 1: Check the virtual machine configuration versions

  1. On the Windows desktop, click the Start button and type any part of the name Windows PowerShell.
  2. Right-click Windows PowerShell and select Run as Administrator.
  3. Use the Get-VM cmdlet. Run the following command to get the versions of your virtual machines.
    Get-VM * | Format-Table Name, Version
    You can also see the configuration version in Hyper-V Manager by selecting the virtual machine and looking at the Summary tab.

Step 2: Upgrade the virtual machine configuration version

  1. Shut down the virtual machine in Hyper-V Manager.
  2. Select Action > Upgrade Configuration Version. If this option isn't available for the virtual machine, then it's already at the highest configuration version supported by the Hyper-V host.
To upgrade the virtual machine configuration version by using Windows PowerShell, use the Update-VMVersion cmdlet. Run the following command where vmname is the name of the virtual machine.
Update-VMVersion <vmname>

Supported virtual machine configuration versions

The following table shows which virtual machine configuration versions are supported by Hyper-V hosts that run on specific versions of Windows operating systems.
Hyper-V host Windows versionSupported virtual machine configuration versions
Windows Server 20168.0, 7.1, 7.0, 6.2, 5.0
Windows 10 Anniversary Update8.0, 7.1, 7.0, 6.2, 5.0
Windows Server 2016 Technical Preview7.1, 7.0, 6.2, 5.0
Windows 10 build 10565 or later7.0, 6.2, 5.0
Windows 10 builds earlier than 105656.2, 5.0
Windows Server 2012 R25.0
Windows 8.15.0
Run the PowerShell cmdlet Get-VMHostSupportedVersion to see what virtual machine configuration versions your Hyper-V Host supports. When you create a virtual machine, it's created with the default configuration version. To see what the default is, run the following command.

Get-VMHostSupportedVersion -Default
If you need to create a virtual machine that you can move to a Hyper-V Host that runs an older version of Windows, use the New-VM cmdlet with the -version parameter. For example, to create a virtual machine that you can move to a Hyper-V host that runs Windows Server 2012 R2 , run the following command. This command will create a virtual machine named "WindowsCV5" with a configuration version 5.0.

New-VM -Name "WindowsCV5" -Version 5.0
new-vm -name "WindowsTransfer" -version 5.0 -path E:\Hyper-V\ -NewVHDPath "e:\Hyper-V\WindowsTransfer\Virtual Hard Disks\WindowsTransfer-os.vhdx" -NewVHDSizeBytes 1024000000

Why should I upgrade the virtual machine configuration version?

When you move or import a virtual machine to a computer that runs Hyper-V on Windows Server 2016 or Windows 10, the virtual machine"s configuration isn't automatically updated. This means that you can move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server. But, this also means that you can't use some of the new virtual machine features until you manually update the configuration version. You can't downgrade the virtual machine configuration version after you've upgraded it.
The virtual machine configuration version represents the compatibility of the virtual machine's configuration, saved state, and snapshot files with the version of Hyper-V. When you update the configuration version, you change the file structure that is used to store the virtual machines configuration and the checkpoint files. You also update the configuration version to the latest version supported by that Hyper-V host. Upgraded virtual machines use a new configuration file format, which is designed to increase the efficiency of reading and writing virtual machine configuration data. The upgrade also reduces the potential for data corruption in the event of a storage failure.
The following table lists descriptions, file name extensions, and default locations for each type of file that's used for new or upgraded virtual machines.
Virtual machine file typesDescription
ConfigurationVirtual machine configuration information that is stored in binary file format.
File name extension: .vmcx
Default location: C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
Runtime stateVirtual machine runtime state information that is stored in binary file format.
File name extension: .vmrs
Default location: C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
Virtual hard diskStores virtual hard disks for the virtual machine.
File name extension: .vhd or .vhdx
Default location: C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Hard Disks
Automatic virtual hard diskDifferencing disk files used for virtual machine checkpoints.
File name extension: .avhdx
Default location: C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Hard Disks
CheckpointCheckpoints are stored in multiple checkpoint files. Each checkpoint creates a configuration file and runtime state file.
File name extensions: .vmrs and .vmcx
Default location: C:\ProgramData\Microsoft\Windows\Snapshots

What happens if I don't upgrade the virtual machine configuration version?

If you have virtual machines that you created with an earlier version of Hyper-V, some features may not work with those virtual machines until you update the configuration version.
The following table shows the minimum virtual machine configuration version required to use new Hyper-V features.
FeatureMinimum VM configuration version
Hot Add/Remove Memory6.2
Secure Boot for Linux VMs6.2
Production Checkpoints6.2
PowerShell Direct6.2
Virtual Machine Grouping6.2
Virtual Trusted Platform Module (vTPM)7.0
Virtual machine multi queues (VMMQ)7.1
XSAVE support8.0
Key storage drive8.0
Guest Virtualization Based Security support (VBS)8.0
Nested virtualization8.0
Virtual processor count8.0
Large memory VMs8.0