随着Windows Server 2016以及Hyper-V Server 2016Technical Preview的发布,微软对Hyper-V虚拟机配置版本、配置文件也做了相应的修改,Hyper-V虚拟机现在有新的配置版本,配置文件格式,旨在提高读和写的虚拟机配置数据的效率,同时也是为了减少在存储出现故障时的数据损坏的可能性以更好的服务服务器虚拟化。新的配置文件使用.VMCX格式。
我们先看一下Hyper-V2012R2中的虚拟机配置文件格式。使用CMD查看虚拟机配置文件信息
通过CMD输出的信息了解到Hyper-V vNext以前所使用的虚拟机配置文件都以.xml为主
进入虚拟机所存储的位置查看虚拟机配置文件信息
.xml文件是一个可读文件,双击打开查看具体信息,会显示虚拟机信息
由于.xml文件是一个可读可编辑的文件,一旦此配置文件被修改,将直接导致虚拟机无法正常运行,因此在企业中通常将虚拟机配置文件存放在只有管理员、高级IT主管可访问的位置以防范错误修改文件,导致虚拟化的服务器无法运行。正是考虑到该风险性,在Hyper-V vNext中将虚拟机配置文件修改为二进制文件,不可直接读、编辑。
在Windows Server 2016 Technical Preview4中,使用CMD查看虚拟机配置文件信息
其中,.vmcx文件为虚拟机配置文件,.vmrs文件用于存储虚拟机运行时状态数据(runtime state data)。这两种文件都为二进制文件,都不可以直接对其进行编辑。
下面看一下Hyper-V虚拟机的配置版本信息
在Hyper-V管理控制台中,点击并查看虚拟机信息。从这里我们能看见在Hyper-V2012R2中虚拟机版本信息为5.0
在Windows Server 2016 Technical Preview中,当打开Hyper-V管理器时,能够看见微软在原来的基础上新增了配置版本到Hyper-V管理器中,如下图
Windows Server 2012 R2 Hyper-V
Windows Server 2016 TP4
创建完虚拟机后能够发现Hyper-V vNext的虚拟机配置版本为7.0
可以使用如下命令查看Hyper-V虚拟机的配置版本信息
Get-VM * | Format-Table Name, Version
将Hyper-V2012R2中的虚拟机"Server01"移动到服务器"SH-VMHost-03"中
虚拟机"Server01"移动到服务器"SH-VMHost-03"之后看一下虚拟机配置版本信息
这里,当将虚拟机从Hyper-V2012R2迁移到Hyper-V vNext中时,其虚拟机配置版本并不会发生变化,不会转变成新的虚拟机配置文件和配置版本,您在使用过程中和Hyepr-V2012R2没有任何区别,但是不会享受到Hyper-V vNext中的新特性。
升级虚拟机配置版本以及配置文件很简单,右键虚拟机选择"升级配置版本"
也可以使用PowerShell升级虚拟机配置版本
Update-VMVersion
使用PowerShell操作时将会提醒您:如果将迁移过来的虚拟机升级到最新虚拟机配置版本,那么这个虚拟机将无法降级到原有的配置版本,并且将阻止迁移到或导入到早期Hyper-V版本,
同时其对应的虚拟机配置文件也会随之更新
在服务器"SH-VMHost-03"上右键虚拟机"Server01"选择移动到服务器"SH-VMHost-01"
此时将会直接报错,提示无法执行移动操作
总结如下:
当将Hyper-V2012R2中的虚拟机迁移或者导入到Hyper-V vNext中将保持原有配置文件、配置版本,是否选择升级取决于您是否有此需求;
一旦升级虚拟机配置版本、配置文件之后将无法迁移到Hyper-V2012R2环境中;
虚拟机必须处于"关闭"状态才能升级配置版本;
当Hyepr-V群集级别为Windows Serer 2012 R2时,"Update-VMVersion"命令无法使用;
升级到最细的配置版本之后,虚拟机配置文件也将一同被升级。