虚拟机负载均衡

适用于:Azure Stack HCI 版本 23H2 和 22H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

注意

在 Azure Stack HCI 23H2 上创建和管理 VM 的建议方法是使用 Azure Arc 控制平面。 仅当需要 Azure Arc VM 中不可用的功能时,才使用下述机制来管理 VM。

HCI 部署的一个重要考虑因素是投入生产所需的资本支出 (CapEx)。 通常添加冗余以避免在生产中的高峰流量期间容量不足,但这会增加 CapEx。 通常需要此冗余,因为群集中的某些服务器托管更多虚拟机 (VM),而其他服务器出现利用不足的情况。

在 Azure Stack HCI、Windows Server 2022、Windows Server 2019 和 Windows Server 2016 中,VM 负载均衡默认启用,它是一项功能,可用于优化群集中的服务器利用率。 它标识过度提交的服务器,并将 VM 从这些服务器实时迁移到提交不足的服务器。 遵循故障策略(如反相关性、容错域(站点)和可能的所有者)。

VM 负载均衡基于以下启发评估服务器的负载:

  • 当前内存压力:内存是 Hyper-V 主机上最常见的资源约束。
  • 五分钟时段内的平均 CPU 使用率:缓解群集中的任何服务器以避免过度提交。

VM 负载均衡的工作原理

将新服务器添加到群集时,会自动进行 VM 负载均衡,还可以将其配置为执行定期负载均衡。

将新服务器添加到群集时

将新服务器加入群集时,VM 负载均衡功能会按以下顺序自动将现有服务器中的容量均衡到新添加的服务器:

  1. 在群集中的现有服务器上评估内存压力和 CPU 使用率。
  2. 已标识超过阈值的所有服务器。
  3. 已标识具有最高内存压力和 CPU 使用率的服务器以确定均衡的优先级。
  4. VM 从超过阈值的服务器实时迁移(无停机)到群集中新添加的服务器。

显示要添加到群集的新服务器的图像

定期负载均衡

默认情况下,VM 负载均衡配置为定期均衡:群集中每个服务器上的内存压力和 CPU 使用率每 30 分钟评估一次均衡。 下面是这些步骤的流程:

  1. 在群集中的所有服务器上评估内存压力和 CPU 使用率。
  2. 已标识超过阈值的所有服务器以及低于阈值的服务器。
  3. 已标识具有最高内存压力和 CPU 使用率的服务器以确定均衡的优先级。
  4. VM 从超过阈值的服务器实时迁移(无停机)到低于最小阈值的其他服务器。

显示自动重新均衡的实时群集的图像

使用 Windows Admin Center 配置 VM 负载均衡

配置 VM 负载均衡最简单的方法是使用 Windows Admin Center。

使用 Windows Admin Center 配置 VM 负载均衡

  1. 连接到群集并转到“工具”>“设置”。

  2. 在“设置”下,选择“虚拟机负载均衡”。

  3. 在“均衡虚拟机”下,选择“始终”以在服务器加入时每隔 30 分钟进行一次负载均衡,选择“服务器加入”以仅在服务器加入时进行负载均衡,或选择“从不”以禁用 VM 负载均衡功能。 默认设置为“始终”。

  4. 在“入侵”下,选择“低”以在服务器已加载 80% 以上时实时迁移 VM,选择“中”以在服务器已加载 70% 以上时迁移,或选择“高”以在服务器高于平均值 5% 以上时均分群集中的服务器并迁移。 默认设置为“低”。

使用 Windows PowerShell 配置 VM 负载均衡

可以使用群集公用属性 AutoBalancerMode 配置负载均衡是否发生以及何时发生。 若要控制何时均衡群集,请在 PowerShell 中运行以下内容,并替换下表中的值:

(Get-Cluster).AutoBalancerMode = <value>
AutoBalancerMode 行为
0 已禁用
1 服务器加入时进行负载均衡
2(默认值) 服务器加入时每隔 30 分钟进行一次负载均衡

还可以使用群集公用属性 AutoBalancerLevel 配置均衡的入侵。 若要控制入侵阈值,请在 PowerShell 中运行以下内容,并替换下表中的值:

(Get-Cluster).AutoBalancerLevel = <value>
AutoBalancerLevel 入侵 行为
1(默认值) 当主机已加载 80% 以上时移动
2 中型 当主机已加载 70% 以上时移动
3 当主机高于平均值 5% 以上时均分群集中的服务器并移动

若要检查 AutoBalancerLevelAutoBalancerMode 属性的设置方式,请在 PowerShell 中运行以下内容:

Get-Cluster | fl AutoBalancer*

后续步骤

如需相关信息,另请参阅: