Windows Server 2016 Hyper-V提升虚拟机资源管理效率

日期:2016-11-4作者:Brien Posey

【TechTarget中国原创】服务器虚拟化最棒的特性之一是降低硬件成本。并非将单台物理服务器指定给单个工作负载,而是在多个虚拟工作负载之间共享硬件资源。如果资源是被平均消耗的,那么资源共享方式非常有效。然而不成比例的资源消耗有可能会给众多工作负载带来负面影响。使用Windows Server 2016 Hyper-V提供的功能,就不会存在这个问题了。
资源控制
理论上讲,单个虚拟机应该从不会消耗过多的硬件资源,以至于虚拟机消耗过多的资源,对运行在同一主机上的其他虚拟机造成破坏。毕竟有很多独立的hypervisor功能用于避免资源消耗失控。例如,存储QoS功能可以用于监控存储I/O使用。类似地,动态内存使用可以用于限制一台虚拟机从不会消耗掉超过预先设置的内存值。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者>更多

Brien Posey
Brien Posey

微软最有价值专家(MVP),具有二十多年的IT经验,前后获得七次微软MVP,重点专注SharePoint管理,发表过上千篇文章,并出版十多本IT书籍。

微软Hyper-V>更多

相关推荐

技术手册>更多

  • 虚拟机资源配置指南

    本期《虚拟机资源配置指南》技术手册旨在帮助IT管理员找准虚拟机资源合理分配的界线,并通过正确实施、配置安全性,避免虚拟机蔓延等多方面技巧,最终在充分保证虚拟机性能优化的同时,合理控制运营成本。

  • 超融合产品EVO:RAIL使用指南

    VMware已经建立了一个合作伙伴列表,该列表中的厂商将提供EVO:RAIL的硬件部分。尽管底层的技术相同,但HP、Dell以及合作伙伴列表上的其他厂商提供的产品还是有一些差异。

  • VMware NSX部署指南

    在VMworld 2013上,VMware发布了它的下一代网络虚拟化平台NSX,两年过去了,VMware NSX有了哪些变化?您是否已经部署VMware NSX?

  • vSphere高级技巧

    虽然vSphere 6要等到2015年初才会发布,但是大家对它的热情不减。相信很多企业都已经在使用vSphere,本期技术手册分享一些关于vSphere的高级技巧,例如如何重新设计vSphere让其发挥最大潜力。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 网络
  • 服务器
  • 数据中心
【TechTarget中国原创】

服务器虚拟化最棒的特性之一是降低硬件成本。并非将单台物理服务器指定给单个工作负载,而是在多个虚拟工作负载之间共享硬件资源。如果资源是被平均消耗的,那么资源共享方式非常有效。然而不成比例的资源消耗有可能会给众多工作负载带来负面影响。使用Windows Server 2016 Hyper-V提供的功能,就不会存在这个问题了。

资源控制

理论上讲,单个虚拟机应该从不会消耗过多的硬件资源,以至于虚拟机消耗过多的资源,对运行在同一主机上的其他虚拟机造成破坏。毕竟有很多独立的hypervisor功能用于避免资源消耗失控。例如,存储QoS功能可以用于监控存储I/O使用。类似地,动态内存使用可以用于限制一台虚拟机从不会消耗掉超过预先设置的内存值。

尽管hypervisor层面的控制应该能够避免虚拟机消耗太多的资源。但在一些实际应用场景中,虚拟机消耗过多的硬件资源可能会影响到其他虚拟机。例如,管理员可能忘记了启用某些可用的资源控制功能。

类似的情况是,虚拟机级别配置不合理可能会导致不合理的资源争用。例如,假定管理员希望将虚拟机上限内存值设置为4000MB,但不小心多输入了一个零,这样就会允许虚拟机消耗将近40GB的内存。

当然,疏忽或者虚拟机层面偶尔错误的资源设置不一定意味着虚拟机将具有破坏性。然而假定这样的一台虚拟机正在运行一个糟糕的应用,将该虚拟机可用的资源完全消耗掉了。更糟的是,需要考虑这样的一台虚拟机将会引发服务拒绝攻击。

主机资源保护

在研发Windows Server 2016 Hyper-V的过程中,微软开始意识到过度的资源消耗会威胁相邻的虚拟机,这样需要采取更好的保护策略以避免这类虚拟机产生破坏性。在公有云比如Azure中,这类控制必不可找。而在私有或混合云环境中,云供应商并没有对虚拟机内部运行的程序进行控制。

微软针对该问题的答案是提供了主机资源保护功能。主机资源保护被设计为避免虚拟机影响相邻虚拟机的性能。

目前,主机资源保护仅限于vCPU。如果hypervisor检测到特定虚拟机CPU调度过于频繁,将会给虚拟机分配更少的CPU资源,这样就确保了运行在该主机上的其他虚拟机继续获得充足的CPU资源。

尽管主机资源保护仅限于CPU,但考虑到微软以前引入到Hyper-V中的新功能,似乎该功能最终将会被扩展至对其他类型的硬件资源进行保护。

PowerShell cmdlets

主机资源保护默认是禁用的,但可以通过在Windows PowerShell使用Set-VMProcessorcmdlet cmdlet启用。完整的命令如下:

Set-VMProcessor -EnableHostResourceProtection $True

如果需要禁用主机资源保护,可以使用如下命令禁用该功能:

Set-VMProcessor -EnableHostResourceProtection $False

如果感觉对Set-VMProcessor cmdlet似曾相识,可能是因为在之前版本的Hyper-V中该命令就已经存在了。尽管主机资源保护功能是在Windows Server 2016 Hyper-V中才引入的,但Set-VMProcessor cmdlet一直支持对单个虚拟机的CPU资源进行限制。Set-VMProcessor可以被用于向单个虚拟机分配特定数量的虚拟处理器,也可以设置最大的CPU使用阈值,CPU预留值以及相对权重。

例如,假定管理员希望给一台名为DemoVM的虚拟机分配两个vCPU,为使事情变得有趣,我们同样假设管理员希望限制虚拟机使用50%的CPU资源,预留10%的CPU资源并将相对权重设置为100。那么应该使用如下命令:

Set-VMProcessor DemoVM -Count 2 -Reserve 10 -Maximum 50 -RelativeWeight 100

随便说一下,通过Hyper-V Manager同样可以进行上述设置。

该技术与启用Windows Server 2016 Hyper-V主机资源保护功能最主要的差异在于主机资源保护针对的是物理主机而不是虚拟机,而且不需要对CPU进行细粒度的配置。