Azure 虚拟机规模集的可用性区域选项

Azure可用性区域是Azure区域中的故障隔离位置,可提供冗余电源、冷却和网络。 借助它们,可以运行具有高可用性和容错能力的应用程序,以应对数据中心故障。 Azure支持可用性区域的区域至少有三个单独的区域。 每个可用性区域由一个或多个数据中心组成,它们配备了独立的基础设施电源、网络和冷却系统。 可用性区域采用高性能网络进行连接,往返延迟小于 2 毫秒。 有关详细信息,请参阅 可用性区域的概述

若要保护您的虚拟机规模集免受数据中心级故障的影响,您可以跨可用区创建规模集。 若要使用可用性区域,必须在 supported Azure 区域中创建规模集

若要详细了解规模集如何能够复原可用性区域故障和其他类型的故障,请参阅Azure 虚拟机规模集中的可靠性

选择可用性区域部署选项

虚拟机规模集支持三种可用性区域部署选项。 你可以自行选择区域,使用自动区域放置来让Azure选择它们,或使用没有区域固定实例的区域部署。

部署选项 Configuration 区域拓扑 谁选择区域? 何时使用
客户选择的区域 设置 zones,例如 "zones": ["1", "2", "3"] 指定一个区域时为单区域,指定多个区域时为跨区域。 选择规模集可以使用的区域。 工作负载必须使用特定的可用区。
自动区域放置(预览版) placement.zonePlacementPolicy 设置为 "auto" 默认情况下,Azure创建一个跨区域规模集,该规模集面向三个区域,并且至少需要两个区域。 若要创建单区域规模集,请设置为 maxZoneCount1 Azure 会在您配置的约束条件范围内选择可用区。 希望Azure根据容量和 SKU 可用性优化区域选择。
区域(非分区的) 请勿指定 zones 或区域放置策略。 区域实例不会固定到可用性区域。 不適用。 您的工作负载不需要区域级隔离或固定到特定区域。

重要

不能在同一个规模集上同时配置 zones 属性和自动区域放置。

客户选择的区域和自动区域放置可能会导致区域(单区域)或跨区域规模集。 以下部分更详细地介绍了这些拓扑和区域部署。

跨区域

跨区域规模集将实例分散到两个或更多可用性区域。 此方法类似于其他Azure服务中的区域冗余部署。

默认情况下,规模集会尽最大努力将实例均匀分散到所选区域。 但是,你可以通过在部署中设置 "zoneBalance": "true" 来指定严格的区域均衡。 每个 VM 及其磁盘都是区域性的,因此它们会固定到特定区域。 区域之间的实例通过低延迟高性能的网络进行连接。 发生区域中断或连接问题时,可能会破坏与受影响区域中的实例的连接,而其他可用性区域中的实例应不受影响。 在发生区域中断期间,可以将容量添加到规模集,规模集会将更多实例添加到未受影响的区域。 当中断区域恢复后,可能需要将规模集缩减到原始容量。 最佳做法是基于 CPU 或内存使用情况配置自动缩放规则。 借助自动缩放规则,规模集能够通过在其余可操作区域中横向扩展新实例,来应对该区域中的 VM 实例损失。

将实例分布到可用区可以满足跨可用区分布的实例的99.99%服务级别协议,并且在Azure中建议用于大多数工作负载。

可以通过自己选择多个区域或使用自动区域放置来配置跨区域规模集。 默认情况下,自动区域放置以三个可用区为目标,并且至少需要两个可用区。

区域或区域对齐(单区域)

区域或区域对齐规模集将实例置于单个可用性区域中。 每个 VM 及其磁盘都是区域性的,因此它们会固定到特定区域。 此配置主要用在需要降低实例之间的延迟时。

您可以通过自行选择一个可用区,或通过自动可用区放置将 1 设置为 maxZoneCount,来配置单可用区规模集。

区域(非分区的)

区域(非区域)虚拟机规模集是在未显式设置区域分配时("zones"=[]"zones"=null)。 在此配置中,规模集创建区域(非区域、非区域固定)实例并隐式放置整个区域的实例。 无法保证跨区域均衡或分布,也无法保证实例位于同一可用性区域中。 超高性能磁盘和高级 v2 磁盘可保证磁盘并置,高级 V1 磁盘尽最大努力实现磁盘并置,标准 SKU(SSD 或 HDD)磁盘不保证实现磁盘并置。

在极少数情况下,整个区域中断时,规模集中的任何或所有实例都可能会受到影响。

容错域和可用性区域

容错域是可用性区域或硬件节点的数据中心内的故障隔离组,它们共享相同电源、网络、冷却系统和平台维护计划。 位于不同容错域中的 VM 实例不太可能受到同一计划内或计划外中断的影响。 可以指定实例如何在区域或可用区中的故障域之间分布。

  • 最大分布 (platformFaultDomainCount = 1)
  • 固定分布 (platformFaultDomainCount = 5)
  • 修复了仅区域(非区域)部署时与存储磁盘容错域(platformFaultDomainCount = 2 或 3)对齐的分布问题

使用“最大分布”时,规模集会在每个区域中将 VM 分布到尽可能多的容错域。 这种分布可能在每个区域中跨越多于或少于五个的故障域。 使用静态固定分布时,规模集会将 VM 分布到指定数量的容错域中。 如果规模集无法分配给至少指定的容错域计数以满足分配请求,则请求将失败。

建议对大多数工作负荷使用“最大分布”进行部署,因为此方法可在大多数情况下提供最佳分布。 如果需要将副本分散到不同的硬件隔离单元,我们建议跨可用性区域分布,并利用每个区域中的最大分布。

注意

使用“最大分布”时,无论 VM 实际分布到多少个容错域,在规模集 VM 实例视图和实例元数据中都只能看到一个容错域。 每个区域中的分布是隐式的。

放置组

重要

放置组仅适用于在统一编排模式下运行的虚拟机规模集。

部署规模集时,可以在每个可用性区域使用单个 放置组 进行部署,或者每个区域使用多个放置组进行部署。 对于区域(非分区)规模集,可以选择在该区域内设置单个放置组或多个放置组。 如果将名为 singlePlacementGroup 的规模集属性设置为 false,则该规模集可以由多个放置组组成,其范围为 0-1,000 台 VM。 设置为默认值 true 时,规模集由单个放置组组成,其范围为 0-100 台 VM。 对于大多数工作负荷,建议使用多个放置组,这样可以增大规模。 在 API 版本 2017-12-01 中,规模集默认为单区域规模集和跨区域规模集的多个放置组,但它们默认为区域(非区域)规模集的单个放置组。

注意

如果使用“最大分布”,则必须使用多个放置组。

区域均衡

区域放置方式决定了规模集在放置新实例时可使用哪些可用性区域。 区域均衡控制在选定符合条件的区域后,实例在这些区域之间的分布均匀程度。

对于跨多个区域的规模集,请在最佳努力与严格的区域均衡之间进行选择。 无论您是自行选择区域,还是使用自动区域放置,区域均衡功能均会生效。 有关详细信息,请参阅虚拟机规模集中的区域均衡

区域均衡也不同于 自动区域均衡。 区域均衡用于控制在扩缩容操作期间的实例分布。 自动区域平衡通过创建预配不足区域中的替换 VM 并从过度预配的区域中删除 VM 来主动检测现有不平衡并更正它们。

后续步骤