测试和执行故障转移
执行不会造成中断的测试故障转移,以验证灾难恢复计划,记录 RTO 和 RPO 的达成情况,并在演练后清理测试资源。
测试和执行故障转移 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。
测试故障转移的重要性
从未经过测试的灾难恢复计划只是一种假设。测试故障转移可以验证虚拟机是否能正确启动、应用程序是否能启动,以及目标区域中的网络连接是否正常,同时不会中断源环境或破坏正在进行的复制。许多组织只有在真正发生灾难时才发现其灾难恢复计划存在漏洞,而此时计划失效会造成最大的损失。对于大多数监管框架而言,定期进行测试故障转移都是合规要求。
测试故障转移与实际故障转移
ASR 支持三种故障转移操作类型。测试故障转移会在隔离网络中创建发生故障转移的虚拟机副本(由您指定目标 VNet),不会影响复制或源环境。计划内故障转移用于计划迁移或维护:它会先同步剩余更改,然后关闭源环境,再执行故障转移。计划外故障转移(在实际灾难期间使用)会从最新恢复点立即执行故障转移,而不会等待最终同步。
运行测试故障转移
要在门户中运行测试故障转移,请选择受保护项,点击 Test Failover,选择一个恢复点(最新的崩溃一致恢复点、最新的应用程序一致恢复点或某个特定时间点),然后选择目标虚拟网络(通常是专用的隔离测试 VNet)。ASR 会使用副本磁盘在目标区域启动虚拟机。测试虚拟机会与副本同时显示,但完全独立,生产环境不会受到影响。测试完成后,点击 Cleanup test failover 删除测试虚拟机。
# Initiate a test failover for a protected VM
az asr replication-protected-items failover-commit \
--fabric-name myFabric \
--protection-container myContainer \
--name myProtectedVM \
--resource-group myRG \
--vault-name myVault选择恢复点
在故障转移期间,您可以从 ASR 的保留窗口中选择恢复点。选项包括:Latest (lowest RPO) — 最新的崩溃一致恢复点,可最大限度地减少数据丢失。Latest processed — 最近处理的恢复点(可能落后几分钟)。Latest app-consistent — 最近的应用程序一致恢复点,虽然可能较早,但可以确保应用程序干净地恢复。Custom — 某个较早的特定恢复点,用于恢复到事件发生前的已知良好状态。
恢复计划
恢复计划将多个受保护的虚拟机组合在一起,并定义其故障转移的顺序和时间。您可以指定哪些虚拟机先启动(例如先启动数据库服务器,再启动应用程序服务器),添加人工审批关卡以暂停故障转移并进行人工验证,还可以插入 Azure Automation runbooks 来运行故障转移前后的脚本(例如更新 DNS 记录、配置负载均衡器或发送通知)。恢复计划可以通过测试故障转移独立进行测试。
在测试期间测量 RTO
测试故障转移提供了测量实际RTO(恢复时间目标)的机会。开始故障转移时启动秒表,应用程序完全可用且用户可以访问时停止秒表。对于单个虚拟机,典型的 Azure 到 Azure 故障转移会在 15–30 分钟内完成,但包含依赖项的多层应用程序可能需要更长时间。记录所有意外增加耗时的步骤(例如 DNS 传播和应用程序预热),并在下一次测试前解决这些问题。
提交计划内故障转移
完成计划内故障转移(例如迁移到新区域)后,您需要运行 Commit 来完成故障转移。提交操作会停止从源环境进行反向复制,并将目标虚拟机标记为新的主虚拟机。提交后,您可以启用重新保护来反转复制方向,使原源区域成为新的灾难恢复目标。这样,在事件解决后,您就可以故障回复到原始区域。
故障回复到原始区域
故障回复是指在灾难或计划内迁移后将工作负载返回原始区域的过程。步骤如下:重新保护发生故障转移的虚拟机(反转复制方向,将数据从新的主区域复制回原始区域),等待初始同步完成,然后执行计划内故障转移以返回原始区域。故障回复要求原始源基础结构仍然完好;如果基础结构已被摧毁,您可能需要先重建着陆区域,然后才能执行故障回复。
清理测试资源
测试故障转移后,您必须在门户中执行 Cleanup test failover,以删除测试虚拟机及其关联磁盘。如果不执行清理,测试虚拟机会继续运行并产生计算费用。清理步骤还会重置受保护项的测试故障转移状态,使您以后可以再次运行测试。自动执行清理(例如通过 Automation runbook 安排在测试开始一小时后执行)可以防止遗忘的测试虚拟机运行数天。
# Script to list VMs in the test-failover resource group for cleanup audit
az vm list \
--resource-group myDRTestRG \
--query '[].{Name:name, Status:powerState}' \
--show-details \
--output table灾难恢复演练文档
每次灾难恢复测试都应生成一份灾难恢复演练报告,记录测试日期和场景、使用的恢复点、达到的 RTO 和 RPO、发现的问题以及采取的修复措施。对于 ISO 27001 和 SOC 2 等要求定期进行灾难恢复测试的框架,此类文档可以满足审计人员的要求。请将演练报告存储在安全的位置,并确保 IT 团队和业务连续性团队都能访问。
ASR 定价和许可
Azure 站点恢复按每个受保护实例每月计费,费用涵盖复制服务和编排。您还需要为目标区域中副本托管磁盘所消耗的存储空间以及复制期间的缓存存储帐户支付费用。Azure 区域之间用于复制流量的出站数据传输按正常出口费率收费(不同于 Azure Backup,配对区域之间的出口传输免费)。对于从本地环境复制到 Azure 的场景,Azure 虚拟机所使用的 Windows Server 许可证可以采用 Azure Hybrid Benefit 来降低成本。
快速检查
请测试您对本课中 Microsoft Azure Fundamentals (AZ-900) 概念的理解。
课程回顾
在本课中,您学习了以下内容:测试故障转移可以在隔离网络中验证灾难恢复计划,而不会影响生产环境;恢复计划通过人工审批关卡和自动化运行手册步骤安排多虚拟机故障转移的顺序;故障回复通过在灾难后反转复制方向,将工作负载返回原始区域。接下来,我们将学习 Azure CDN 如何加速全球内容交付。
常见问题解答
「测试和执行故障转移」课时是免费的吗?
是的 — 「测试和执行故障转移」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。
「测试和执行故障转移」这节课中我会学到什么?
执行不会造成中断的测试故障转移,以验证灾难恢复计划,记录 RTO 和 RPO 的达成情况,并在演练后清理测试资源。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Azure Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「测试和执行故障转移」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Azure Fundamentals 课中编写并运行代码吗?
能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。