恢复计划与自动故障转移
创建 ASR 恢复计划,按应用层级安排 VM 故障转移,添加手动审批关卡,并包含故障转移前后的脚本。
恢复计划与自动故障转移 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
什么是 ASR 恢复计划
Azure Site Recovery 中的Recovery Plan是一组结构化且有顺序的步骤,用于协调多个 VM 一起执行故障转移。恢复计划不会让每个 VM 单独进行故障转移,而是将它们分成多个组,按顺序执行故障转移,确保基础设施(数据库、中间件、Web)按照正确顺序启动,就像初次部署时一样。
创建恢复计划
要创建恢复计划,请选择源站点(主要区域)和目标站点(辅助区域),然后添加要包含的 VM。计划向导会自动创建一个默认组,但您可以添加更多组来控制故障转移顺序。同一组中的 VM 会同时进行故障转移;各组按照编号顺序执行。
# Create an ASR Recovery Plan via CLI:
az site-recovery recovery-plan create \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--primary-fabric-id '/subscriptions/.../replicationFabrics/eastus' \
--recovery-fabric-id '/subscriptions/.../replicationFabrics/westus' \
--groups '[{"groupType":"Boot","replicationProtectedItems":[...]}]'为多层应用程序安排组的顺序
对于典型的三层应用程序,恢复计划应包含三个组:
- 组 1——数据库层 VM(必须首先启动)
- 组 2——应用程序/中间件层 VM
- 组 3——Web 前端 VM(最后启动)
每个组都会等待前一个组成功完成故障转移后再启动。这与正确的启动顺序一致,可以防止 Web 层 VM 在数据库准备好接受连接之前启动。
添加手动操作和脚本
恢复计划支持在每个组边界处配置前置操作和后置操作。这些操作可以是:
- 手动操作——暂停故障转移,等待人员确认(例如“验证数据库已准备就绪”)
- Azure Automation 运行手册——自动执行脚本(例如更新 DNS 记录、禁用维护模式)
使用 Automation 运行手册可以为第 1 层工作负载实现无需人工干预的全自动故障转移。
# Example Automation runbook action in a recovery plan:
# Pre-group-2 action: Run runbook 'UpdateConnectionStrings'
# This runbook updates app config to point to secondary DB endpoint
# before the application tier VMs start计划内与非计划内故障转移
Azure Site Recovery 支持两种故障转移类型:
- 计划内故障转移——在已知事件发生前启动(例如数据中心维护)。主要 VM 会正常关闭,数据完成同步后,辅助 VM 启动。不会丢失数据。
- 非计划内故障转移——在实际灾难期间触发。主要 VM 可能不可用,因此 ASR 会使用最新的复制检查点。根据 RPO 的不同,可能会丢失部分数据。
# Trigger an unplanned failover via CLI:
az site-recovery recovery-plan failover-unplanned \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--failover-direction PrimaryToRecoveryCommit 与故障恢复切回
故障转移后,辅助区域中恢复的 VM 会处于等待提交状态。您必须Commit故障转移,以确认辅助站点现在是活动站点,并且不再需要回滚。提交后,您可以设置反向复制来保护辅助站点,待主要区域恢复后,最终再切回主要区域。
# Commit the failover:
az site-recovery recovery-plan commit \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan
# Then configure reverse replication to enable failback later故障转移后重新保护
提交故障转移后,原主要区域中的复制项将不再处于活动复制状态。要恢复保护,您必须对这些项执行重新保护——这会反转复制方向,使新的主要区域(原辅助区域)向原主要区域进行复制。重新保护需要一定时间,应在原主要区域再次可用后尽快启动。
恢复计划中的 RTO 测量
恢复计划中的每个步骤都会增加总 RTO。常见的耗时环节包括:
- VM 启动时间(每个 VM 需要 2–5 分钟)
- 应用预热时间(数据库连接池初始化、缓存预热)
- IP 更改后的 DNS 传播时间
- 手动审批关卡的等待时间
请在测试故障转移期间测量每个步骤的耗时,并将它们相加,以计算您的实际 RTO,然后与目标值进行比较。
自动执行 DNS 更新
发生故障转移后,次要区域中的 VM 会拥有不同的 IP 地址。对于公开 DNS 名称的应用,您必须更新 DNS,使其指向新的 IP。请使用 Azure 自动化运行手册作为故障转移后的操作,以更新 Azure DNS 或 Traffic Manager 终结点的运行状况,从而自动重定向流量,避免因手动操作延迟 RTO。
# Example: Update Azure DNS record in a runbook after failover:
# az network dns record-set a update \
# --resource-group dnsRG \
# --zone-name myapp.com \
# --record-set-name '@' \
# --set 'ARecords[0].ipv4Address=<new-secondary-ip>'监视恢复计划执行情况
在故障转移期间,Recovery 服务保管库中的 Azure 门户作业视图会显示恢复计划中每个步骤的实时进度。您可以查看正在执行的组、已成功启动的 VM,以及是否有脚本或手动操作处于等待状态。监视此视图可以帮助恢复团队在某个步骤失败时迅速介入。
恢复计划最佳实践
恢复计划的关键最佳实践包括:
- 保持组规模较小(5–10 个 VM),以便在组失败时限制影响范围
- 尽可能使用自动化运行手册代替手动操作,以降低 RTO
- 记录每个组的预期启动时间,以便计算 RTO
- 至少每季度运行一次测试故障转移,验证计划是否有效
- 每当添加新的 VM 或应用架构发生变化时,都要检查并更新计划
快速检查
请测试您对本课 Microsoft Azure Fundamentals (AZ-900) 概念的理解。
课程回顾
本课介绍了:恢复计划会协调多个 VM 按顺序进行故障转移,并在每个组执行预操作和后操作;计划外故障转移使用最后一个复制检查点,而计划内故障转移不会造成数据丢失;故障转移后,您必须提交并重新保护,才能恢复 DR 保护。接下来,我们将探讨如何在不影响生产环境的情况下测试 DR 计划。
常见问题解答
「恢复计划与自动故障转移」课时是免费的吗?
是的 — 「恢复计划与自动故障转移」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「恢复计划与自动故障转移」这节课中我会学到什么?
创建 ASR 恢复计划,按应用层级安排 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 反馈 — 无需本地设置。
此课程中的所有课时
- 定义 RTO、RPO 和恢复层级
- 恢复计划与自动故障转移
- 无影响的 DR 测试
- PaaS 服务的 DR