Hyper-V虚拟机负载平衡

虚拟化环境的主要好处之一是合理利用资源。当特定的虚拟机不需要时,它们可以被关闭;这样可以将释放出的计算资源分配给需要的虚拟机。Hyper-V故障转移集群允许您减少虚拟机的停机时间;从Windows Server 2016版本开始,Hyper-V可以在Hyper-V主机(在这种情况下称为群集节点)之间提供VM负载平衡。

本博客文章介绍了Hyper-V故障转移集群的VM负载平衡功能,并探讨了工作原理、配置参数以及在Hyper-V虚拟环境中使用负载平衡的优势。

Hyper-V VM负载平衡是什么,以及如何使用这个功能?

负载平衡是一种功能,确保在群集中充分利用Hyper-V主机的资源。随着时间的推移,VM的负载可能变得不均匀;结果,Hyper-V主机可能变得更加或更少加载。这反过来可能导致一些节点在打补丁或其他维护过程中暂时不可用。Hyper-V群集可以通过负载平衡功能为VM提供足够的计算资源,其中当一个节点过载时,VM会从一个节点迁移到另一个节点,而另一个节点有空闲的计算资源。该功能用于为Hyper-V群集内的VM提供足够的性能,从而有助于保持运行在VM上的提供服务的高质量。

负载平衡如何工作?

自动负载平衡会检查 Hyper-V 群集的状态,然后根据发现的结果和设置,从负载过重的节点迁移虚拟机到负载较轻的节点,以实现在 Hyper-V 主机之间重新分配负载。

有两种方法可以用来检查主机负载:

  • 检查 RAM(随机存取内存)利用率。在 Hyper-V 主机上内存不足是最常见的问题之一,可能会导致延迟。
  • 检查 CPU(中央处理器单元)利用率。处理器容量不足也可能导致延迟。

主机消耗的 CPU 和 RAM 资源越多,就越被 Hyper-V 认为是负载较重的主机。如果为一个群集配置了周期性负载平衡,则每 30 分钟评估一次主机的负载。也可以按需评估主机的负载。系统会识别负载超过定义阈值的主机,以及负载低于阈值的主机。如果群集节点的当前负载不均匀且符合上述条件,Hyper-V 将在节点之间启动 VM 实时迁移。Hyper-V 实时迁移允许您在不引起显著停机的情况下执行 VM 迁移。

已提供负载平衡与 Hyper-V 故障转移群集的集成。以下群集规则适用于负载平衡:可能的所有者、反亲和力(这两个规则在 Windows Server 2016 之前已存在)和故障域(新规则)。

可能的所有者规则定义了可以执行迁移的 Hyper-V 主机。该规则仅定义了可能的虚拟机所有者,并且可以阻止虚拟机迁移到不需要的主机。

反亲和性规则允许您防止在同一主机上运行两个定义的虚拟机。例如,如果您有两个具有主域控制器和辅助域控制器的虚拟机,它们不能在同一主机上运行。这种方法可以增加在某个具有一个域控制器的主机失败的情况下的可靠性。

故障域是一种定义了一组可以受到某些物理故障影响的 Hyper-V 主机的功能,例如网络故障、电源故障等。具有相同故障域的 Hyper-V 主机通常连接到同一电源和网络交换机,因此它们可以安装到同一个机架上。如果发生任何故障,则相同故障域的所有虚拟机都将受到影响。集群可以逻辑上分为多个故障域,一个域的故障不应影响其他域。

配置参数

负载平衡在 Hyper-V 2016 中的故障转移集群中默认启用。有两种行为类型:仅在集群添加新节点时使用”和“按时间间隔检查”。

仅在向集群添加新节点时使用。在这种情况下,集群获得了更多的CPU和RAM资源,并扩展了整体计算能力。系统评估每个节点的负载。如果任何节点过载(超过配置中设置的阈值),则适当的虚拟机将从过载节点迁移到最近添加的具有空闲资源的节点上。如果您定期向您的Hyper-V故障转移集群添加容量,此选项将非常有用,并且对基于存储空间技术的集群也可能有用。如果之前从集群中断开连接的节点(例如用于维护)重新连接到集群,此选项不会对集群产生影响。

定期检查。此选项每30分钟启动一次检查集群节点的负载。如果任何节点过载(超过配置中设置的阈值),则适当的虚拟机将从过载节点迁移到具有空闲资源的节点上。

侵略性阈值是一个参数,用于定义基于节点的RAM和CPU利用率的平衡的侵略性。侵略性阈值可以是三个值之一:低(1)、中(2)和高(3)。您可以在下面的部分中查看有关配置的更多详细信息。

配置

可以通过使用GUI(图形用户界面)或PowerShell来配置Hyper-V负载平衡。要配置Hyper-V负载平衡,请打开故障转移集群管理器,右键单击您的集群名称,然后在上下文菜单中选择“属性”。

在属性窗口中,选择负载均衡器选项卡。如果要启用/禁用负载平衡,请勾选/取消复选框。您可以选择平衡模式和侵略性。

您还可以在 PowerShell 中设置负载均衡模式或禁用自动负载均衡:

(Get-Cluster).AutoBalancerMode = <value>

其中 <value> 可以是 0、1 或 2(请参阅下表)。

AutoBalancerMode 描述
0 禁用
1 加入节点时进行负载平衡
2(默认使用) 始终进行负载平衡

要设置侵略性阈值,请在 PowerShell 中键入以下命令:

(Get-Cluster).AutoBalancerLevel = <value>

其中 <value> 可以是 1、2 或 3(请参阅下表)。

AutoBalancerLevel 侵略性 描述
1(默认使用) 当主机负载超过 80% 时移动 VM
2 中等 当主机负载超过 70% 时移动 VM
3 当主机负载超过 60% 时移动 VM

System Center Virtual Machine Manager(SCVMM)也可以用作群集管理,作为使用故障转移群集管理器的替代方案。SCVMM包括动态优化功能(自Windows Server 2012起可用),也会在群集节点之间重新分配VM。如果启用了Hyper-V负载平衡并使用SCVMM动态优化,则一旦在SCVMM中启用动态优化,负载平衡将自动禁用。在这种情况下,负载平衡管理由SCVMM执行,以防止可能由两个功能的同时工作和相关问题引起的冲突。微软建议您使用带有动态优化的SCVMM。

Hyper-V负载平衡的优势

负载平衡是一个有用的功能。使用负载平衡的Hyper-V故障转移群集的优势包括:

  • 物理服务器不会过载
  • VM不会过载
  • 提高应用程序响应能力
  • 提高提供服务的质量
  • 提高您的服务和应用程序的可扩展性
  • 减轻故障

NAKIVO备份与复制和备份集群VM

Hyper-V故障转移集群是一种有效的解决方案,可以提高正在运行的虚拟机的可用性,同时保护它们免受节点可能的硬件故障的影响。为了保护您的数据免受其他类型的灾难,应使用虚拟机备份与复制。托管在集群Hyper-V主机上的虚拟机可以在故障转移或负载平衡等事件期间在主机之间迁移。因此,备份所需的虚拟机可能会变得困难,因为您需要检测虚拟机所在的主机(视为主机级别虚拟机备份)。

NAKIVO备份与复制是一种快速、可靠且价格合理的虚拟机数据保护解决方案,支持Hyper-V集群。一旦将整个集群添加到清单中,NAKIVO备份与复制可以自动跟踪虚拟机所在的主机,因此,从Hyper-V集群进行虚拟机备份或复制的过程变得与从独立的Hyper-V主机备份虚拟机一样简单。

结论

Hyper-V负载平衡是Windows Server 2016中包含的一个有用的集群功能。该功能帮助您更合理地使用硬件资源,从而提高所提供服务的质量。在做出重新分配负载决策时,使用CPU和RAM指标。当超过配置中设置的阈值值时,负载平衡会自动启动从负载过重的节点到具有空闲资源的节点的虚拟机迁移。由于使用了实时迁移,因此没有显着的停机时间。具有负载平衡的Hyper-V故障转移集群不仅可以保护您的虚拟机免受节点故障的影响,还可以提供足够的计算资源来确保虚拟机的高可用性。

Source:
https://www.nakivo.com/blog/hyper-v-virtual-machine-load-balancing/