选择最优的Hyper-V虚拟硬盘格式

日期: 2015-02-09 作者:Nirmal Sharma翻译:张冀川 来源:TechTarget中国 英文

有很多文件与运行在Hyper-V之上的虚拟机相关,包括XML文件、虚拟硬盘文件以及快照文件。XML文件包括虚拟机配置信息,虚拟硬盘文件包括客户操作系统及应用数据。微软Hyper-V支持两种类型的虚拟硬盘文件:VHD和VHDX。VHD文件格式自Hyper-V第一版就推出了,在Windows Server 2012的Hyper-V中增加了对VHDX的支持。

当你在Windows Server 2012和R2 Hyper-V主机上创建虚拟机时,可以在两类虚拟硬盘种进行选择:固定和动态。 固定的VHD/VHDX:选择固定的VHD或VHDX,Hyper-V预先分配请求的磁盘空间。例如,如果创建一个大小为1……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

有很多文件与运行在Hyper-V之上的虚拟机相关,包括XML文件、虚拟硬盘文件以及快照文件。XML文件包括虚拟机配置信息,虚拟硬盘文件包括客户操作系统及应用数据。微软Hyper-V支持两种类型的虚拟硬盘文件:VHD和VHDX。VHD文件格式自Hyper-V第一版就推出了,在Windows Server 2012的Hyper-V中增加了对VHDX的支持。当你在Windows Server 2012和R2 Hyper-V主机上创建虚拟机时,可以在两类虚拟硬盘种进行选择:固定和动态。

固定的VHD/VHDX:选择固定的VHD或VHDX,Hyper-V预先分配请求的磁盘空间。例如,如果创建一个大小为127GB的VHD/VHDX文件,在创建虚拟磁盘文件时Hyper-V会在指定的路径下创建指定大小的文件。这称之为厚置备,虚拟硬盘文件所需要的空间在Hyper-V存储上被预留了出来。

动态VHD或者VHDX:提到动态VHD/VHDX文件,Hyper-V仅会分配虚拟硬盘文件的元数据所需要的空间。例如,如果你想创建一个大小为127GB的VHD/VHDX文件,Hyper-V最初只会创建一个4KB的文件,但允许该文件大小增大到127GB,有时我们将这种配置方式称之为精简配置。

到目前为止,你对Hyper-V所支持的虚拟硬盘类型有了初步的了解,但问题依旧:哪种虚拟硬盘适合生产负载?正如下表1所示,固定大小的VHD/VHDX的性能往往很好,因为针对运行在Hyper-V主机上的每个虚拟机都会有一个单独的VMWP.exe进程,不必担心在需要时确保能够增加VHD/VHDX文件。换句话说,虚拟硬盘文件不会产生太多的I/O操作。
表1

在生产环境中使用动态VHDX文件时就完全不同了。在Hyper-V的早期版本中微软总是建议使用固定VHD文件而非动态VHD文件。尽管从Windows Server 2012 Hyper-V主机起,微软通常建议在生产虚拟机中使用动态VHDX文件,但有一些注意事项。对动态VHDX文件常见的误解是扩展速度更快。在增加数据时动态VHDX格式的确使用了“更大的数据块”,但同时会产生大量的IO。当VMWP.exe进程意识到没有更多的存储空间时会动态扩展VHDX文件。该进程首先检查是否需要增加(会占用I/O和CPU时钟周期),然后检查文件上是否有可用空间(这将导致更多的I/O及CPU时钟周期)。整个过程给VMWP.exe进程增加了负担,给动态VHDX文件带来了更多的IOPS,占用了Hyper-V主机更多的CPU处理时间。动态VHDX文件使用元数据更新/记录数据同样是导致产生更多I/O及CPU周期的一个常见原因。

是否要在生产环境中使用动态VHDX文件取决于运行在虚拟机内部的应用。例如,如果在虚拟机内运行资源密集型应用—比如SQL和Exchange,你必须额外关注应用的资源需求。

第一个问题是为什么人们想使用动态VHDX?对用户来说最直接的原因是节省磁盘空间。因此讨论实际上是倾向于节省磁盘空间还是为运行在虚拟机内的应用提供足够好的性能。谈到是否要在生产负载中选择动态VHDX时,了解虚拟机中将要运行的应用是很重要的,可能有两种不同的应用类型在虚拟机内运行。

情况1:运行在虚拟机内的应用执行大量I/O操作

如果运行在虚拟机内的应用要对动态VHDX文件进行持续的读写操作,那么建议选择固定的VHDX,但并非强烈建议你这么做。如果是在SSD存储上运行动态VHDX文件,你可以在生产负载中使用动态VHDX文件。然而,有时有必要关注应用需求。例如,如果SQL应用执行了大量的磁盘读写操作,我看到用户通过在固定的VHDX磁盘上部署SQL虚拟机解决了虚拟机性能问题。

情况2:运行在虚拟机内的应用没有执行大量I/O操作

如果运行在虚拟机内的应用没有在动态VHDX文件上执行大量的读写操作,那么建议使用动态VHDX。如果你认为性能可以忽略,那么可以考虑使用动态VHDX。使用动态VHDX有助于节省磁盘空间,但如果没有做好规划,磁盘空间可能会用光。同样有必要使用磁盘监控软件监控快要用光的磁盘空间。

到目前为止,虚拟机磁盘文件存储格式有两种包括VHD、VHDX。Hyper-V还支持将物理磁盘直接分配给虚拟机,这称之为直通磁盘。直通磁盘没有使用虚拟硬盘文件,而是将本地磁盘或者SAN存储上的LUN直接映射给Hyper-V主机供虚拟机使用。尽管直通磁盘的性能仍旧被认为是最好的,但仍旧存在一些限制。首先无法执行快照,第二个限制是使用直通磁盘的虚拟机不能使用“无共享在线迁移”功能。尽管使用直通磁盘的虚拟机仍旧支持在线迁移,但必须在Hyper-V集群中被配置为存储磁盘资源。

作者

Nirmal Sharma
Nirmal Sharma

TechTarget投稿作者

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐

  • 回顾年度9大虚拟化技术

    虚拟化管理员从未放弃追寻更好虚拟化技术,以使他们的工作更快、更易于管理以及更好地优化。 我们看到,虚拟化工具在 […]

  • 从Azure VM到Hyper-V:想想这些技巧

    多年来,IT行业已经推动IT人员把工作负载转到云中。虽然在公有云中有一些好处,但有些工作负载更适合运行云本地数据中心中。

  • 功能多样的Get-VM PowerShell cmdlet,你知道多少?

    Hyper-V管理员能够使用Get-VM PowerShell cmdlet查看并调整一系列虚拟机配置信息。微软花费大量精力对PowerShell进行优化,以提升其对本地或者远程服务器的管理功能。

  • 支持Linux虚拟机:新版Hyper-V来帮忙

    大家都知道,Linux虚拟机无法利用Hyper-V针对Windows虚拟机提供的众多特性。幸运的是,情况已经发生变化,Hyper-V现在能够为Linux提供更多的支持。