Cloud & IT Cert Prep · 课时

可用性集与可用性区域

将 VM 部署到可用性集或跨可用性区域部署,并了解能够避免同时发生故障的故障域和更新域模型。

第 2 / 4 课13 个步骤

可用性集与可用性区域 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

冗余为何对 VM 很重要

单个 Azure Virtual Machine 容易受到硬件故障、OS 更新和计划内维护事件的影响。Azure 提供两种机制来保护 VM 工作负载免受这些中断影响:Availability Sets和Availability Zones。了解两者之间的区别以及各自的适用时机,对于设计可靠的 Azure VM 架构至关重要。

什么是可用性集

Availability Set 是单个 Azure 数据中心内 VM 的逻辑分组。将 VM 放入可用性集后,Azure 会将它们分布到多个故障域(不同的电源和网络机架)以及多个更新域(维护期间一次重启一组 VM)。这可以同时防范硬件故障和计划内重启。

# Create an availability set:
az vm availability-set create \
  --resource-group myRG \
  --name myAvailabilitySet \
  --platform-fault-domain-count 2 \
  --platform-update-domain-count 5

故障域和更新域

故障域表示共享相同物理硬件(电源和网络交换机)的 VM 组。Azure 会将 VM 分布到最多 3 个故障域中,以确保电源或机架故障不会同时导致所有 VM 停机。更新域表示在 Azure 平台维护期间一起重启的 VM 组。Azure 最多支持 20 个更新域,并且一次只会重启一个域。

# Example: 4 VMs in an availability set with 2 fault domains and 5 update domains:
# VM1: Fault Domain 0, Update Domain 0
# VM2: Fault Domain 1, Update Domain 1
# VM3: Fault Domain 0, Update Domain 2
# VM4: Fault Domain 1, Update Domain 3
# At most 2 VMs can be affected by a single fault or update event

可用性集 SLA

在可用性集中放置两个或更多 VM,即可获得 Microsoft 提供的99.95% SLA。这比单个 VM 的 99.9% SLA 有显著提升。可用性集免费,您只需为 VM 本身付费。它适用于能够容忍 VM 位于同一数据中心的工作负载,因为可用性集无法防范整个数据中心中断。

什么是可用性区域

Availability Zones 是同一 Azure 区域内彼此物理隔离的数据中心。每个区域都有独立的电力、冷却和网络系统。支持可用性区域的 Azure 区域至少包含三个区域。将 VM 分布到多个可用性区域,可以防范整个数据中心发生故障,其保证能力远强于可用性集。

# Deploy a VM to availability zone 1:
az vm create \
  --resource-group myRG \
  --name webVM1 \
  --image Ubuntu2204LTS \
  --zone 1

# Deploy a second VM to availability zone 2:
az vm create \
  --resource-group myRG \
  --name webVM2 \
  --image Ubuntu2204LTS \
  --zone 2

可用性区域 SLA

跨不同可用性区域部署两个或更多 VM,即可获得 99.99% SLA,这是 Azure VM 可提供的最高级别。原因在于,即使整个区域发生故障(数据中心中断、电网故障等),其他区域中的 VM 仍可继续运行。需要权衡的是,区域之间的数据传输会产生少量费用,并且这些区域仍位于同一个区域内。

可用性集与可用性区域

请根据您的需求在以下两个选项中进行选择:

  • 可用性集 — 位于同一个数据中心,可防范硬件故障和计划内维护,提供 99.95% SLA。当您所在的区域不支持可用性区域,或进行旧系统直接迁移时使用。
  • 可用性区域 — 位于同一区域内的不同数据中心,可防范数据中心故障,提供 99.99% SLA。对于支持可用性区域的所有新生产工作负载,建议使用此选项。

区域冗余服务

许多 Azure PaaS 服务支持区域冗余部署,无需您手动将资源分散到不同区域。例如:Azure SQL Database Business Critical 层、Azure Cache for Redis Premium、Azure Kubernetes Service 和 Azure Load Balancer Standard。启用区域冗余后,服务会自动将副本分布到不同区域。

# Create a zone-redundant Azure SQL Database:
az sql db create \
  --resource-group myRG \
  --server mySqlServer \
  --name myDatabase \
  --service-objective 'BusinessCritical' \
  --zone-redundant true

跨区域负载均衡

当 VM 分布在不同可用性区域时,您需要使用能够将流量发送到任意区域中 VM 的负载均衡器。请使用 Azure Load Balancer Standard(默认具有区域冗余)或 Azure Application Gateway v2,在不同区域的 VM 之间分配流量。这些服务支持运行状况探测,会自动停止向无响应的 VM 发送流量。

# Create a Standard Load Balancer (zone-redundant):
az network lb create \
  --resource-group myRG \
  --name myLoadBalancer \
  --sku Standard \
  --public-ip-address myPublicIP

检查区域对可用性区域的支持

并非所有 Azure 区域都支持可用性区域,只有被指定为推荐区域的区域才能保证至少拥有三个可用性区域。在设计依赖可用性区域的架构之前,请使用 Azure CLI 或门户检查目标区域是否支持可用性区域。如果不支持,可用性集就是备用选项。

# Check which zones are available in a region:
az vm list-skus \
  --location eastus \
  --size Standard_D2s_v3 \
  --output table

# The output shows which availability zones support the chosen VM size

可用性区域的成本影响

可用性区域本身可免费使用,您只需为其中部署的资源付费。但是,同一区域内区域之间的数据传输会按每 GB 收费。对于大多数应用程序,这项费用很低;但对于高带宽工作负载(例如视频处理),在架构设计中应考虑区域间传输成本。

快速检查

请测试您对本课程中 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

在本课程中,您学习了:可用性集通过容错域和更新域保护单个数据中心内的 VM(99.95% SLA);可用性区域将 VM 分散到一个区域内相互独立的数据中心(99.99% SLA);区域冗余 PaaS 服务会自动处理这种分布。接下来,我们将学习多区域主动-主动架构,以实现更高的可用性。

免费开始

用 AI 导师学习 Cloud & IT Cert Prep — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
150
课程
600

常见问题解答

「可用性集与可用性区域」课时是免费的吗?

是的 — 「可用性集与可用性区域」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「可用性集与可用性区域」这节课中我会学到什么?

将 VM 部署到可用性集或跨可用性区域部署,并了解能够避免同时发生故障的故障域和更新域模型。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「可用性集与可用性区域」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Azure SLA 与复合 SLA
  2. 可用性集与可用性区域
  3. 多区域主主架构
  4. 运行状况探测与优雅降级
← 返回 Cloud & IT Cert Prep