你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
什么是可用性区域?
许多 Azure 区域都提供可用性区域,这些区域是区域中的独立数据中心组。 每个可用性区域都有独立的电力、冷却和网络基础设施,因此,如果一个区域停电,其余区域可支持区域性服务、容量和高可用性。
可用性区域通常相隔几公里,且通常在 100 公里以内。 此距离意味着它们足够近,可以通过高性能网络与其他可用性区域建立低延迟连接。 但是,它们之间的距离不能过近,以减少多个可用性区域受当地停电或天气影响的可能性。
数据中心的位置是使用严格的漏洞风险评估条件选择的。 此过程可识别所有特定于数据中心的重要风险,并考虑可用性区域之间共同承担的风险。
下图显示了几个 Azure 区域示例。 区域 1 和 2 支持可用性区域,区域 3 和 4 没有可用性区域。
若要查看哪些地区支持可用性区域,请参阅支持可用性区域的 Azure 区域。
可用性区域支持的类型
Azure 服务可以提供两种类型的可用性区域支持:“区域冗余”和“区域”。 每个服务都可能支持一种或两种类型。 设计可靠性策略时,请确保了解工作负载的每个服务支持哪些可用性区域。
区域冗余部署:区域冗余资源自动在多个可用性区域间复制或分布。 例如,区域冗余数据服务可以跨多个区域复制数据,因此一个区域中发生故障不会影响数据的可用性。 某些服务可以由用户选择资源使用的区域集,而另外一些服务则由 Microsoft 选择这些区域。
借助区域冗余部署,Microsoft 可管理跨区域的分发请求以及跨区域的数据复制。 如果一个可用性区域停电,Microsoft 会自动故障转移到另一个区域。
区域部署:区域资源部署到单个自选可用性区域。 此方法不提供复原优势,但有助于实现更严格的延迟或性能要求。 例如,可以按区域将虚拟机、托管磁盘和标准 IP 地址部署到同一个区域。
为了改善区域资源的复原能力,你需要设计一个在区域内的多个可用性区域中具有独立资源的体系结构,但 Microsoft 不负责处理此过程。 如果一个可用性区域停电,你需要负责故障转移到另一个区域。
使用将资源配置为区域冗余时,或者在不同可用性区域中使用区域资源的多个实例时,资源被视为区域可复原:也就是说,它可以复原单个可用性区域的中断。
有些服务不使用可用性区域,直到你将它们配置为执行此操作。 如果没有为可用性区域支持显式配置服务,这称为“非可用性区域”部署或“非区域”部署。 以这种方式配置的资源可能放置在该区域的任何可用性区域中,并且可能被移动。 如果区域中的任何可用性区域遇到服务中断,则非区域资源可能位于受影响的区域中,并且可能会遇到停机时间。
重要
某些服务可能需要满足可用性区域支持的额外要求。 例如,某些服务可能仅支持某些层或 SKU 的可用性区域,或仅支持部分 Azure 区域。
为可用性区域支持配置资源
每个服务都有自己配置可用性区域支持的方法。 要了解每个服务如何支持可用性区域以及如何配置该支持,请参阅 Azure 可靠性指南(按服务)。
物理和逻辑可用性区域
每个数据中心都被分配到一个物理区域。 物理区域映射到 Azure 订阅中的逻辑区域,不同的订阅可能有不同的映射顺序。 Azure 订阅在创建订阅时自动分配其映射。 因此,一个订阅的区域映射可能与其他订阅的不同。
例如,订阅 A 的物理区域 1 可能映射到逻辑区域 2,而订阅 B 的物理区域 1 可能映射到逻辑区域 3:
若要了解订阅的逻辑区域和物理区域之间的映射,请使用列出位置 Azure 资源管理器 API。 可以使用 Azure CLI 或 Azure PowerShell 从 API 检索信息。
若要比较跨多个订阅的弹性解决方案的区域映射,请使用专用 ARM API checkZonePeers。 若要使用 checkZonePeers
API,需要启用功能“Microsoft.Resources/AvailabilityZonePeering”。 有关如何启用功能的详细信息,请参阅 azure 订阅中的注册功能。
az rest --method get \
--uri '/subscriptions/{subscriptionId}/locations?api-version=2022-12-01' \
--query 'value[?availabilityZoneMappings != `null`].{displayName: displayName, name: name, availabilityZoneMappings: availabilityZoneMappings}'
可用性区域和 Azure 更新
对于每个区域,Microsoft 致力于一次将 Azure 服务更新部署到单个可用性区域内。 此方法减少了更新对活动工作负载可能造成的影响,允许该工作负载在更新进行过程中继续在其他区域中运行。 要利用已排序的区域更新,必须将工作负载配置为跨多个区域运行。 有关 Azure 如何部署更新的详细信息,请参阅推进安全部署做法。
注意
如 Azure 更新博客中所述,无论在 Azure 资源上使用专用或公共 IP,Azure 将不收取跨可用性区域的数据传输费用,。 通过此更改,Azure 将进一步鼓励和支持客户在 Azure 上构建更具可复原性、更高效的应用程序和解决方案的努力
区域间延迟
在每个区域中,可用性区域通过高性能网络进行连接。 Microsoft 努力实现区域间通信,往返延迟不到 2 毫秒。 低延迟允许区域中的高性能通信,以及跨多个可用性区域同步复制数据。
注意
目标延迟是指网络链接的延迟。 根据你使用的通信协议以及任何特定网络流所需的网络跃点,观察到的延迟可能有所不同。
在大多数工作负荷中,可以在可用性区域中分发解决方案的组件,而不会对性能产生明显影响。 如果工作负荷对区域间延迟具有高度敏感度,则必须使用实际协议和配置测试所选可用性区域之间的延迟。 若要减少区域间流量,可以使用 区域部署,但最好是在可靠性策略计划中使用多个可用性区域。
可用性区域体系结构指南
要实现可靠的工作负载,你需要执行以下操作:
- 如果生产工作负荷所在的区域支持可用性区域,则应将生产工作负荷配置为使用多个可用性区域。
- 对于任务关键型工作负载,应考虑兼具多地区和多区域特点的解决方案。
有关如何在解决方案体系结构中使用区域和可用性区域的更多详细信息,请参阅有关使用可用性区域和地区的建议。