你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 存储移动程序中的可靠性

本文介绍 Azure 存储移动程序的可靠性支持,并介绍了可用性区域的区域内部复原能力以及跨区域灾难恢复和业务连续性。 有关 Azure 中可靠性原则的更详细概述,请参阅 Azure 可靠性

可用性区域支持

Azure 可用性区域是每个 Azure 地区内的至少三个在物理上独立的数据中心组。 每个区域中的数据中心都配备了独立的电源、冷却系统和网络基础结构。 在本地区域发生故障的情况下,设计可用性区域,以便一个区域受到影响时,其余两个区域支持区域服务、容量和高可用性。

故障范围包括软件和硬件故障,以及地震、洪水和火灾等事件。 容错是通过 Azure 服务的冗余和逻辑隔离来实现的。 有关 Azure 中可用性区域的详细信息,请参阅地区和可用性区域

已启用 Azure 可用性区域的服务旨在提供适当级别的可靠性和灵活性。 可以通过两种方式进行相关配置。 可以采用区域冗余配置,实现跨区域自动复制,也可以采用区域性配置,将实例固定到特定区域。 还可以将这些方法结合。 有关区域与区域冗余体系结构的详细信息,请参阅有关使用可用性区域和地区的建议

Azure 存储移动程序支持区域冗余部署模型。

部署 Azure 存储移动程序资源时,必须选择存储资源实例元数据的特定 Azure 区域

如果 Azure 区域支持可用性区域,则实例元数据会自动复制到该区域内的多个可用性区域。

重要

Azure 存储移动程序实例元数据包含项目、终结点、代理、作业定义和作业运行历史记录,但不包含要迁移的实际数据。 用作迁移目标的 Azure 存储帐户具有自己的可靠性支持。

先决条件

区域故障体验

在区域范围的服务中断期间,无需在区域恢复过程中执行任何操作。 Azure 存储移动程序用于自我修复和重新平衡自身,以自动利用运行正常的区域。

任何迁移目标存储帐户都可能要求完成其特定的恢复步骤。 该要求取决于为每个存储帐户选择的冗余选项。 请参阅存储帐户灾难恢复指南,确定是否需要执行更多步骤。

如果选择了本地存储而不是冗余选项,则可能需要创建一个新的存储帐户,以便在中断期间在迁移中使用。

跨区域灾难恢复和业务连续性

灾难恢复 (DR) 是指从会导致故障时间和数据丢失的高影响事件(例如自然灾害或部署失败)中恢复。 不管灾难的原因是什么,最好的补救措施就是一个定义全面且经过测试的 DR 计划,以及一个主动支持 DR 的应用程序设计。 在开始考虑创建灾难恢复计划之前,请参阅设计灾难恢复策略的建议

在 DR 方面,Microsoft 使用责任共担模型。 在共担责任模型中,Microsoft 会确保基线基础结构和平台服务可用。 同时,许多 Azure 服务不会自动复制数据,也不会从失败区域回退以交叉复制到另一个启用的区域。 对于这些服务,你负责设置适用于工作负载的灾难恢复计划。 大多数在 Azure 平台即服务 (PaaS) 产品/服务上运行的服务都提供支持 DR 的功能和指导,你可以使用特定于服务的功能来支持快速恢复,从而帮助制定 DR 计划。

注册了存储移动程序代理后,它会连接到注册了存储移动程序资源的 Azure 区域。 如果代理的 Azure 区域遇到中断,代理本身不会受到影响,但依赖于 Azure 的管理操作可能无法完成。 此外,任何以受影响区域中的存储帐户为目标的活动的数据迁移都可能会失败。

存储移动程序支持两种形式的灾难恢复:

重要

本地数据源的灾难恢复由客户负责。

Azure 发起的灾难恢复

Azure 发起的灾难恢复仅适用于具有区域对的区域。 使用跨区域复制时,实例元数据会复制到每个区域,但它绝不被允许离开地理位置。

Azure 存储移动程序使用 Cosmos DB 来存储实例元数据。 只有在 Azure Cosmos DB 中发生不可恢复的灾难时,才会发生数据丢失。 有关详细信息,请参阅区域中断。 Azure 发起的恢复是主动-被动的,区域的完整恢复可能长达 24 小时。

客户发起的灾难恢复

客户发起的灾难恢复不限于配对区域。

发生区域性中断之前:

  • 通过在支持可用性区域的 Azure 区域中创建存储移动程序资源来部署区域冗余存储移动程序。

  • 定期(按计划或在进行重大更改后)拍摄存储移动程序资源的快照。 使用版本控制系统存储快照是存储和跟踪快照历史记录的好方法。 如果发生灾难,且需要在新的 Azure 区域中恢复资源,你将使用最后一个良好的快照。

在区域性中断期间:

可以执行以下任一操作:

  • 选择等待 Azure 恢复区域。
  • 通过将资源重新部署到其他区域来最大程度地减少停机时间。 由于在中断期间对资源的访问可能会受到影响,因此需要使用资源的最后一个良好快照。

提示

这些策略中的每一个仍可能要求你在灾难发生之前完成进一步的步骤,因此请务必相应地检查和规划。

将资源部署到其他 Azure 区域

有关将资源导出为 Azure 资源管理器 (ARM) 模板的进一步说明,请参阅关于导出模板的文档。

如果你的存储移动程序和相关资源驻留在没有额外资源的容器中,则应执行资源组导出来捕获当前状态。 但是,如果你的资源组包含不相关的资源,则可能需要从模板中移除或排除资源。

无法将现有代理重新部署到其他 Azure 区域。 如果最初配置代理的 Azure 区域遇到中断,则可能无法完全注销并重新注册代理。 本文档假定新代理已在新的 Azure 区域中注册。

若要使用导出的模板进行灾难恢复,需要对模板进行一些更改。

  • 首先,从模板中移除任何 Microsoft.StorageMover/agentsMicrosoft.HybridCompute/machines 资源。 请务必同时移除对这些资源的任何依赖项引用。
  • 接下来,从所有作业定义中移除 agentResourceId 属性。 部署后,需要将它们分配到新的代理。
  • 移除对代理和混合计算计算机资源的所有引用后,更新顶级存储移动程序资源的位置属性。 将当前部署的区域的名称替换为新区域的名称。
  • 最后,确定是否保留现有的存储帐户资源 ID。 如有必要,将其替换为其他存储帐户。

完成前面的步骤并验证模板参数是否正确后,该模板已准备好部署到新区域。 应将模板部署到与模板中位置属性的默认区域相同的新资源组。

注册新代理

按照部署 Azure 存储移动程序代理文章中的步骤在新的存储移动程序资源中注册新代理。

将代理分配到作业定义

新代理注册并报告为联机后,使用 Azure 门户或 PowerShell 将现有作业定义关联到新代理。 为了方便起见,提供了以下 PowerShell 示例。

如需关于如何访问项目的作业定义的指南,请参阅定义新的迁移作业


## Update the agent in a job definition resource
$resourceGroupName  = "[Your resource group name]"
$storageMoverName   = "[Your storage mover name]"
$projectName        = "[Your project name]"
$jobDefName         = "[Your job definition name]"
$agentName          = "[The name of an agent previously registered to the same storage mover resource]"

Update-AzStorageMoverJobDefinition `
    -ResourceGroupName $resourceGroupName `
    -StorageMoverName $storageMoverName `
    -ProjectName $projectName `
    -Name $jobDefName `
    -AgentName $agentName

授予代理对目标存储容器的访问权限

需要向托管标识分配数据参与者角色才能成功执行迁移作业。 将混合计算资源的系统托管标识访问权限分配给目标存储帐户资源。 将托管标识访问权限分配给资源一文提供了关于如何向目标资源授予访问权限的指导。

现在,可以使用新部署的存储移动程序资源开始迁移作业。

后续步骤