虚拟机负载均衡
适用于:Azure 本地版本 23H2 和 22H2;Windows Server 2022、Windows Server 2019、Windows Server 2016
注意
在 Azure 本地版本 23H2 上创建和管理 VM 的建议方法是使用 Azure Arc 控制平面。 仅当需要 Azure Arc VM 中不可用的功能时,才使用下面所述的机制来管理 VM。
Azure 本地部署的一个关键考虑因素是投入生产所需的资本支出(CapEx)。 添加冗余以避免在生产环境中的高峰流量期间容量不足,这很常见,但会增加 CapEx。 通常需要这种冗余,因为系统中的某些计算机托管更多的虚拟机(VM),而其他计算机则未充分利用。
VM 负载均衡是一项功能,可用于优化 Azure 本地系统中的计算机利用率。 它标识过度提交的计算机,并将 VM 从这些计算机实时迁移到未提交的计算机。 遵循故障策略(如反相关性、容错域(站点)和可能的所有者)。
VM 负载均衡根据以下启发法评估计算机的负载:
- 当前内存压力:内存是 Hyper-V 主机上最常见的资源约束。
- CPU 使用率平均超过 5 分钟窗口: 缓解系统中的任何计算机变得过度提交。
VM 负载均衡的工作原理
将新计算机添加到 Azure 本地时,VM 负载均衡会自动发生,也可以配置为执行定期定期负载均衡。
添加新计算机时
将新计算机加入系统时,VM 负载均衡功能按以下顺序自动将现有计算机中的容量均衡到新添加的计算机:
- 内存压力和 CPU 利用率在系统中的现有计算机上进行评估。
- 将识别超出阈值的所有计算机。
- 确定具有最高内存压力和 CPU 使用率的计算机以确定均衡的优先级。
- VM 实时迁移(不会停机)从超过阈值的计算机迁移到系统中新添加的计算机。
定期负载均衡
默认情况下,VM 负载均衡配置为定期均衡:系统会评估系统中每台计算机上的内存压力和 CPU 利用率,以每隔 30 分钟均衡一次。 下面是这些步骤的流:
- 系统中的所有计算机都会评估内存压力和 CPU 利用率。
- 将识别超出阈值的所有计算机和低于阈值的计算机。
- 确定具有最高内存压力和 CPU 使用率的计算机以确定均衡的优先级。
- VM 实时迁移(无需停机)从超出阈值的计算机迁移到低于最低阈值的另一台计算机。
使用 Windows Admin Center 配置 VM 负载均衡
配置 VM 负载均衡最简单的方法是使用 Windows Admin Center。
连接到系统并转到“工具>设置”。
在“设置”下,选择“虚拟机负载均衡”。
在“平衡虚拟机”下,选择“始终”以在计算机加入时进行负载均衡,每 30 分钟一次,服务器联接仅在计算机加入时进行负载均衡,或者从不禁用 VM 负载均衡功能。 默认设置为“始终”。
在“攻击性”下,选择“低”实时迁移 VM(如果计算机加载了 80%以上)、“中等”迁移(如果计算机加载了 70%以上)或“高”到系统中的计算机平均,并在计算机高于平均水平时迁移 VM。 默认设置为“低”。
使用 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% 时移动 |
若要检查 AutoBalancerLevel
和 AutoBalancerMode
属性的设置方式,请在 PowerShell 中运行以下内容:
Get-Cluster | fl AutoBalancer*
后续步骤
如需相关信息,另请参阅: