你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文包含有关对虚拟机规模集的可用性区域支持的信息。
注意
虚拟机规模集只能部署到一个区域中。 如果要跨多个区域部署 VM,请参阅 虚拟机 - 多区域支持。
可用性区域支持
可用性区域 是每个 Azure 区域内物理上独立的数据中心群组。 当一个区域发生故障时,服务可以故障转移到其他区域。
使用 Azure 虚拟机规模集,可以创建并管理一组经过负载均衡的虚拟机。 可以根据需求或所定义的计划自动增减虚拟机数量。 规模集为应用程序提供高可用性,并支持你集中管理、配置和更新多台 VM。 规模集本身不产生费用。 你只需为创建的每个 VM 实例付费。
虚拟机规模集同时支持区域内的区域部署和区域冗余部署:
区域部署 在单个区域中创建规模集时,可以控制该集的所有虚拟机在哪个区域运行。 规模集是受管理的,并且仅在该区域内自动缩放。
区域冗余部署。 使用区域冗余规模集,可创建跨多个区域的单个规模集。 默认情况下,在创建虚拟机时,它们会跨区域实现均衡。
先决条件
要使用可用性区域,必须在受支持的 Azure 区域中创建规模集。
所有 VM(即使是单实例 VM)均应使用灵活编排模式部署到规模集中,以确保应用程序将来的缩放和可用性。
SLA
由于可用性区域在物理上是独立的,并且提供不同的电源、网络和冷却,因此 SLA(服务级别协议)会增加。 有关详细信息,请参阅 Microsoft 联机服务的服务级别协议。
创建启用了可用性区域的虚拟机规模集
可以使用下列方法之一创建使用可用性区域的规模集:
创建使用区域部署的规模集的过程与这篇入门文章中详述的过程相同。 选择受支持的 Azure 区域时,可在一个或多个可用性区域中创建规模集,如下面的示例所示:
将在你指定的单个区域中创建规模集和支持资源,例如 Azure 负载均衡器和公共 IP 地址。
区域故障转移支持
默认情况下,系统会在没有地区的 Azure 区域中创建具有五个容错域的虚拟机规模集。 对于支持虚拟机规模集可用性区域部署的区域,如果已选中此选项,则每个区域的容错域计数默认值为 1。 在这种情况下,FD = 1 意味着将会尽最大努力将属于规模集的虚拟机实例分布到多个机架上。 有关详细信息,请参阅为虚拟机规模集选择合适数量的容错域。
低延迟设计
建议使用区域冗余配置虚拟机规模集。 但如果应用程序具有严格的低延迟要求,则可能需要为规模集虚拟机实现区域部署。 对于区域规模集部署,建议跨多个区域创建多台规模集虚拟机。 例如,可以创建一个固定到区域 1 的规模集实例,以及一个固定到区域 2 或区域 3 的实例。 在区域中断期间,还需要使用负载均衡器或其他应用程序逻辑将流量定向到合适的规模集。
重要说明
如果选择退出区域感知部署,则表示放弃使用基础故障隔离的保护。 选择退出可用性区域配置会强制依赖于不符合区域放置和隔离的资源(包括这些资源的基础依赖项)。 这些资源无法应对区域故障场景。 利用此类资源的解决方案应定义一个灾难恢复策略,并在另一个区域中配置解决方案的恢复。
安全部署技术
要更好地控制 VM 的部署位置,应部署区域规模集 VM,而不是地区性规模集 VM。 但区域虚拟机仅提供区域隔离,而不提供区域冗余。 要使用区域虚拟机实现完全区域冗余,应在不同区域中拥有两台或更多虚拟机。
还建议对区域冗余虚拟机使用最大分布部署选项。 有关详细信息,请参阅分布选项。
分布选项
将规模集部署到一个或多个可用性区域中时,可以使用以下分布选项(自 API 版本 2017-12-01 起):
最大分布 (platformFaultDomainCount = 1)。 建议使用“最大分布”部署选项,因为它在大多数情况下提供最佳分布。 如果将副本分布在不同的硬件隔离单元中,建议先跨可用性区域分布,然后在每个区域中使用“最大分布”。
使用“最大分布”时,规模集会在每个区域中将 VM 分布到尽可能多的容错域。 这种分布可能会在每个区域中横跨五个以上或五个以下的容错域。
注意
使用“最大分布”时,无论虚拟机实际跨多少个容错域分布,在规模集虚拟机实例视图和实例元数据中都只能看到一个容错域。 每个区域中的分布是隐式的。
静态固定分布 (platformFaultDomainCount = 5)。 使用静态固定分布时,规模集会在每个区域中将 VM 分布到刚好 5 个容错域中。 如果规模集在每个区域中找不到 5 个不同的容错域来满足分配请求,则请求会失败。
与托管磁盘容错域 (platformFaultDomainCount = 2 或 3) 保持一致的分布 - 可以考虑保持规模集容错域数量与托管磁盘容错域数量一致。 如果整个托管磁盘容错域发生故障,这种对齐有助于防止仲裁丢失。 容错域计数可以设置为小于或等于每个区域中可用托管磁盘容错域的数量。 若要了解详细信息,请参阅 有关使用 Azure 虚拟机和托管磁盘实现高可用性的最佳做法。
区域均衡
对于跨多个区域部署的规模集(区域冗余),可以选择“尽量实现区域均衡”或“严格执行区域均衡”。 如果每个区域中的虚拟机数(加上或减去一台 VM)与规模集的所有其他区域相同,则可以认为该规模集“已均衡”。 例如:
| 规模集 | 区域 1 中的虚拟机 | 区域 2 中的虚拟机 | 区域 3 中的虚拟机 | 区域均衡 |
|---|---|---|---|---|
| 均衡的规模集 | 2 | 3 | 3 | 此规模集被视为均衡。 只有一个区域具有不同的虚拟机计数,它仅比其他区域少 1 台虚拟机。 |
| 不均衡的规模集 | 1 | 3 | 3 | 此规模集被视为不均衡。 区域 1 比区域 2 和区域 3 少 2 台 VM。 |
规模集中的 VM 可能已成功创建,但这些 VM 的扩展部署失败。 在确定规模集是否已实现均衡时,仍将计入扩展失败的 VM。 例如,如果某个规模集的区域 1 中有 3 台虚拟机,区域 2 中有 3 台虚拟机,区域 3 中有 3 台虚拟机,则即使区域 1 中的所有扩展均失败,而区域 2 和 3 中的所有扩展都成功,也可以认为该规模集已实现均衡。
使用“尽量实现区域均衡”时,规模集会在维持均衡时尝试进行横向缩减和扩展。 但如果由于某种原因无法实现均衡(例如,如果一个区域出现故障,规模集无法在该区域中创建新的虚拟机),则规模集会允许临时的不均衡,以成功进行横向缩减或扩展。在后续横向扩展尝试中,规模集会将虚拟机添加到需要更多虚拟机的区域中,以便规模集实现均衡。 同样,在后续横向缩减尝试中,规模集会在需要减少 VM 才能实现规模集均衡的区域中移除 VM。 使用“严格执行区域均衡”时,如果尝试横向缩减或扩展会导致不均衡,则规模集将放弃此类尝试。
要使用“尽量实现区域均衡”,请将 zoneBalance 设置为 false。 此 zoneBalance 设置是 API 版本 2017-12-01 中的默认设置。 要使用“严格执行区域均衡”,请将 zoneBalance 设置为 true。
迁移到可用性区域支持
要了解如何将区域规模集重新部署到可用性区域支持,请参阅将虚拟机和虚拟机规模集迁移到可用性区域支持。
其他指导
放置组
重要说明
放置组仅适用于在统一编排模式下运行的虚拟机规模集。
部署虚拟机规模集时,可以选择为每个可用性区域部署单个或多个放置组。 对于区域规模集,可选择在区域中包含单个放置组或多个放置组。 如果将规模集属性“singlePlacementGroup”设置为 false,则该规模集可以由多个放置组组成,其范围为 0-1000 台虚拟机。
设置为默认值 true 时,规模集由单个放置组组成,其范围为 0-100 台 VM。 对于大多数工作负载,建议使用多个放置组,以实现更大的规模。 在 API 版本 2017-12-01 中,单区域和跨区域规模集默认为多个放置组,但区域规模集则默认为单个放置组。