可用性集概述

适用于:✔️ Linux VM ✔️ Windows VM

注意

我们建议客户选择灵活业务流程模式下的虚拟机规模集,以获得具有最广泛功能的高可用性。 虚拟机规模集允许集中管理、配置和更新 VM 实例,并将根据需求或定义的计划自动增加或减少 VM 实例的数量。 可用性集仅提供高可用性。

本文概述了 Azure 虚拟机 (VM) 的可用性功能。

什么是可用性集?

可用性集是 VM 的逻辑分组,可降低相关故障同时导致相关 VM 关闭的可能性。 可用性集会将 VM 放置在不同的容错域中以提高可靠性,此操作在区域不支持可用性区域时尤其有用。 在使用可用性集时,请在一个可用性集中创建两个或更多 VM。 在可用性集中使用两个或更多 VM 有助于高度可用的应用程序,并满足 99.95% 的 Azure SLA。 使用可用性集不会产生额外费用,你只需为所创建的每个 VM 实例付费。

与可用性区域相比,可用性集提供的 VM 到 VM 延迟有所改善,因为可用性集中的 VM 分配距离更近。 可用性集针对许多可能的故障提供故障隔离,从而最大程度地减少单一故障点并提供高可用性。 可用性集仍然容易受到某些共享基础结构故障的影响(例如数据中心网络故障),这可能会影响多个容错域。

为了实现比可用性集更高的可靠性,请使用可用性区域。 可用性区域提供了最高的可靠性,因为每个 VM 部署在多个数据中心,从而可以免受单个数据中心电源、网络或冷却中断的影响。 如果最高优先级实现工作负载的最佳可靠性,请跨多个可用性区域复制 VM。

可用性集如何工作?

基础 Azure 平台为可用性集中的每个虚拟机分配一个更新域和一个容错域 。 每个可用性集最多可以配置 3 个容错域和 20 个更新域。 创建可用性集后,便无法更改这些配置。 更新域表示虚拟机组以及可同时重新启动的基础物理硬件。 在含五个更新域的单个可用性集中配置了 5 个以上的虚拟机时,第 6 个虚拟机将放置在第 1 个虚拟机所在的更新域中,第 7 个虚拟机将放置在第 2 个虚拟机所在的更新域中,依此类推。 在计划内维护期间,更新域的重启顺序可能不会按序进行,但一次只重启一个更新域。 重启的更新域有 30 分钟的时间进行恢复,此时间过后,就会在另一更新域上启动维护操作。

容错域定义一组共用一个通用电源和网络交换机的虚拟机。 默认情况下,可用性集中配置的虚拟机隔离在最多三个容错域中。 虽然将虚拟机置于可用性集中并不能让应用程序免受特定于操作系统或应用程序的故障的影响,但可以限制潜在物理硬件故障、网络中断或电源中断的影响。

Diagram showing various compute clusters split into fault domains and within those fault domains, we have multiple update domains

VM 也与磁盘容错域保持一致。 这种一致性可确保附加到 VM 的所有托管磁盘都在同一容错域内。

在托管可用性集中,只能创建带托管磁盘的 VM。 托管磁盘容错域的数目因区域而异 - 每个区域两个或三个托管磁盘容错域。 以下命令将按区域检索容错域列表:

az vm list-skus --resource-type availabilitySets --query '[?name==`Aligned`].{Location:locationInfo[0].location, MaximumFaultDomainCount:capabilities[0].value}' -o Table

在某些情况下,同一可用性集中的两个 VM 可能会共享一个容错域。 可以通过转到可用性集并查看“容错域”列来确认某个共享容错域。 在部署 VM 时,完成以下操作序列可能导致共享容错域:

  1. 部署第一个 VM。
  2. 停止/解除分配第一个 VM。
  3. 部署第二个 VM。

在这些情况下,第二个 VM 的 OS 磁盘可能会在第一个 VM 所在的容错域上创建,从而导致两个 VM 位于同一个容错域中。 为避免此问题,建议不要在部署之间停止/解除分配 VM。

Diagram showing how the fault domains for disks and VMs are aligned.