array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Hyper-V vNext新的虚拟机配置文件、配置版本 - 爱码网

随着Windows Server 2016以及Hyper-V Server 2016Technical Preview的发布,微软对Hyper-V虚拟机配置版本、配置文件也做了相应的修改,Hyper-V虚拟机现在有新的配置版本,配置文件格式,旨在提高读和写的虚拟机配置数据的效率,同时也是为了减少在存储出现故障时的数据损坏的可能性以更好的服务服务器虚拟化。新的配置文件使用.VMCX格式。

我们先看一下Hyper-V2012R2中的虚拟机配置文件格式。使用CMD查看虚拟机配置文件信息

Hyper-V vNext新的虚拟机配置文件、配置版本

通过CMD输出的信息了解到Hyper-V vNext以前所使用的虚拟机配置文件都以.xml为主

进入虚拟机所存储的位置查看虚拟机配置文件信息

Hyper-V vNext新的虚拟机配置文件、配置版本


.xml文件是一个可读文件,双击打开查看具体信息,会显示虚拟机信息

Hyper-V vNext新的虚拟机配置文件、配置版本

由于.xml文件是一个可读可编辑的文件,一旦此配置文件被修改,将直接导致虚拟机无法正常运行,因此在企业中通常将虚拟机配置文件存放在只有管理员、高级IT主管可访问的位置以防范错误修改文件,导致虚拟化的服务器无法运行。正是考虑到该风险性,在Hyper-V vNext中将虚拟机配置文件修改为二进制文件,不可直接读、编辑。

在Windows Server 2016 Technical Preview4中,使用CMD查看虚拟机配置文件信息

Hyper-V vNext新的虚拟机配置文件、配置版本

其中,.vmcx文件为虚拟机配置文件,.vmrs文件用于存储虚拟机运行时状态数据(runtime state data)。这两种文件都为二进制文件,都不可以直接对其进行编辑。

Hyper-V vNext新的虚拟机配置文件、配置版本



下面看一下Hyper-V虚拟机的配置版本信息

在Hyper-V管理控制台中,点击并查看虚拟机信息。从这里我们能看见在Hyper-V2012R2中虚拟机版本信息为5.0

Hyper-V vNext新的虚拟机配置文件、配置版本


在Windows Server 2016 Technical Preview中,当打开Hyper-V管理器时,能够看见微软在原来的基础上新增了配置版本到Hyper-V管理器中,如下图

Hyper-V vNext新的虚拟机配置文件、配置版本

Windows Server 2012 R2 Hyper-V

Hyper-V vNext新的虚拟机配置文件、配置版本

Windows Server 2016 TP4

创建完虚拟机后能够发现Hyper-V vNext的虚拟机配置版本为7.0

Hyper-V vNext新的虚拟机配置文件、配置版本

可以使用如下命令查看Hyper-V虚拟机的配置版本信息

Get-VM * | Format-Table Name, Version

Hyper-V vNext新的虚拟机配置文件、配置版本

将Hyper-V2012R2中的虚拟机"Server01"移动到服务器"SH-VMHost-03"中

Hyper-V vNext新的虚拟机配置文件、配置版本

Hyper-V vNext新的虚拟机配置文件、配置版本

虚拟机"Server01"移动到服务器"SH-VMHost-03"之后看一下虚拟机配置版本信息

Hyper-V vNext新的虚拟机配置文件、配置版本

Hyper-V vNext新的虚拟机配置文件、配置版本

这里,当将虚拟机从Hyper-V2012R2迁移到Hyper-V vNext中时,其虚拟机配置版本并不会发生变化,不会转变成新的虚拟机配置文件和配置版本,您在使用过程中和Hyepr-V2012R2没有任何区别,但是不会享受到Hyper-V vNext中的新特性。

升级虚拟机配置版本以及配置文件很简单,右键虚拟机选择"升级配置版本"

Hyper-V vNext新的虚拟机配置文件、配置版本

也可以使用PowerShell升级虚拟机配置版本

Update-VMVersion

Hyper-V vNext新的虚拟机配置文件、配置版本

使用PowerShell操作时将会提醒您:如果将迁移过来的虚拟机升级到最新虚拟机配置版本,那么这个虚拟机将无法降级到原有的配置版本,并且将阻止迁移到或导入到早期Hyper-V版本,

同时其对应的虚拟机配置文件也会随之更新

Hyper-V vNext新的虚拟机配置文件、配置版本

在服务器"SH-VMHost-03"上右键虚拟机"Server01"选择移动到服务器"SH-VMHost-01"

Hyper-V vNext新的虚拟机配置文件、配置版本

Hyper-V vNext新的虚拟机配置文件、配置版本

此时将会直接报错,提示无法执行移动操作

Hyper-V vNext新的虚拟机配置文件、配置版本



总结如下:

  1. 当将Hyper-V2012R2中的虚拟机迁移或者导入到Hyper-V vNext中将保持原有配置文件、配置版本,是否选择升级取决于您是否有此需求;

  2. 一旦升级虚拟机配置版本、配置文件之后将无法迁移到Hyper-V2012R2环境中;

  3. 虚拟机必须处于"关闭"状态才能升级配置版本;

  4. 当Hyepr-V群集级别为Windows Serer 2012 R2时,"Update-VMVersion"命令无法使用;

  5. 升级到最细的配置版本之后,虚拟机配置文件也将一同被升级。





     本文转自 徐庭 51CTO博客,原文链接:http://blog.51cto.com/ericxuting/1728139,如需转载请自行联系原作者


相关文章: