虚拟机配置版本号决定了虚拟机能够运行在哪些类型的主机上,以及特性集合。下面的步骤可以帮助管理员升级版本号或者创建向后兼容的虚拟机。
几乎对于任何类型的应用程序来说,都有一个和Hyper-V虚拟机相关联的版本号。过去,这个版本号并没有太大实际意义。但是现在,Hyper-V管理员会发现这个虚拟机配置版本号正在变得越来越重要。
微软开始逐渐重视虚拟机配置版本号,这一点在最近发布的Windows 10 Anniversary Update当中得到印证。可能很多虚拟化管理员都已经知道,某些版本的Windows10已经能够在桌面操作系统当中运行Hyper-V。如果用户在微软发布Windows 10 Anniversary Update之前创建Hyper-V虚拟机,那么只需要右键单击某台虚拟机,就会发现一个全新的快捷方式菜单选项,允许对配置版本号进行更新。
与此同时这种“全新”概念也引发了管理员的诸多问题。首先,配置版本号究竟是如何升级的?其次,更改配置版本号将会带来哪些影响?
在升级虚拟机的配置版本号之前,可以使用下面的PowerShell命令查询虚拟机的现有配置版本号信息:
Get-VM * | Select-Object Name, Version
这条命令会显示所有虚拟机的主机名和配置版本号信息,如图A所示,
图A.这台虚拟机的配置版本号为7.0
回到Hyper-V Manager,右键单击虚拟机,在弹出的快捷菜单中选择“Upgrade Configuration Version”,Windows将会显示一个对话框,允许管理员终止当前操作。根据虚拟机当前状态的不同,对话框中可能包含一些警告信息。比如,Windows会警告继续操作可能会造成虚拟机保存的状态数据和检查点丢失。
而真正的升级过程实际上非常简单。完成之后系统并不会显示任何提示信息。管理员可以通过PowerShell检查版本信息,确认虚拟机是否已经获得全新配置版本号。
而整个版本升级过程究竟完成了哪些事情,为什么必须要进行升级?配置版本号非常重要的主要原因之一在于其直接影响虚拟机能够运行在哪些目标主机上。
桌面Hyper-V的潜在用途之一就是其允许在工作站上创建和测试虚拟机,当虚拟机被证明能够应用在生产环境当中之后,再将其迁移到服务器环境。而这种方式的问题在于Windows Server 2012 R2 Hyper-V所支持的最高虚拟机配置版本号为5.0。具有更高版本号的虚拟机不能运行在Windows Server 2012 R2 Hyper-V当中。其所支持的配置版本号信息如下:
Windows 8.1/Windows Server 2012 R2 5.0
Windows 10 (pre-10565) 5.0, 6.2
Windows 10 (10565 and later) 5.0, 6.2, 7.0
Windows Server 2016 Technical Preview 5.0, 6.2, 7.0, 7.1
Windows 10 Anniversary Update 5.0, 6.2, 7.0, 7.1, 8.0
如果管理员需要在Windows 10上创建一台虚拟机,之后迁移到Windows Server上,应该怎样做呢?这种情况下,管理员首先需要做的就是查询服务器能够支持哪些虚拟机配置版本号。尽管管理员也可以使用上面的列表,但是有时候微软会进行更改,因此最好使用PowerShell检查当前系统支持哪些配置版本号。下面这条命令可以帮助实现这项任务:
Get-VMHostSupportedVersion
不幸的是,并非所有版本的Windows都支持这条命令。如果执行这条命令之后收到错误提示信息,那么最好检查现有虚拟机的配置版本号。图B显示Windows Server 2012 R2并不支持这条命令,但是我们可以看到现有虚拟机的配置版本号为5.0。
图B. Windows Server 2012 R2虚拟机使用的配置版本号为5.0
而在Windows 10上运行这条命令会显示其支持的所有版本号。如果后面加上”-Default”这个参数,那么会显示虚拟机默认使用8.0的配置版本号,如图C所示,
图C.Windows 10所支持的配置版本号
如果管理员希望使用Windows 10创建虚拟机,并且向后兼容Windows Server 2012 R2,那么必须使用PowerShell的全新虚拟机cmdlet指定希望使用的版本号,如图D所示,
图D.管理员可以使用PowerShell来创建过时虚拟机
本文转自d1net(转载)