将 Azure Data Lake Storage 迁移到另一个区域

Azure 存储 账户是区域特定的,所以你不能在 Azure 区域之间移动它。 相反,在目标区域创建一个新的存储账户,然后使用支持的 Azure 工具复制或复制你的数据到该区域。

本文介绍两种方法,可用于将数据移动到目标区域。 它聚焦于 Azure Data Lake Storage,即你存储在具有层级命名空间的存储账户中的数据。

先决条件

  • 源区域内的 Azure 存储 账户,具有层级命名空间。

  • 目标区域内的 Azure 存储 账户,具有分层命名空间。 如果没有,创建一个 带有分层命名空间的存储账户。

  • 您的用户身份在源存储账户、其父资源组或订阅的范围内被分配为存储块数据阅读器角色。

  • 你的用户标识在 源 存储帐户、其父资源组或其订阅的范围内被分配了 存储 Blob 数据所有者 角色。

  • 你用来授权访问数据的任何安全主体(用户、组、服务主体或托管身份)都存在于目标账户的 Microsoft Entra 租户中。 无论你是通过账户或容器层级的 Azure 角色分配授权访问,还是通过目录和文件上的 ACL 授权访问,这一要求都适用。

  • 目标区域的网络计划(例如,私有终端、域名系统(DNS)设置或防火墙设置)。

迁移选项

通过以下支持的方法之一,在具有层级命名空间的存储账户之间迁移数据。

AzCopy是最灵活的选择:它可覆盖任何目标区域,复制过程中保持数据在线,并保留POSIX ACL。 使用AzCopy从源账户执行服务器间复制到目标账户。 使用 azcopy sync 命令执行一次性批量复制,或使用 azcopy copy 命令以增量方式同步容器。

该选项支持:

  • 联机迁移

  • 增量同步

  • POSIX 访问控制列表(ACL)保存(带 --preserve-permissions=true 标志)

有关详细的 AzCopy 命令、认证方法及支持的同步选项,请参见“开始使用 AzCopy”。

选项 2:发起账户故障转移

当您的数据已进行异地复制,且您希望将其迁移到其他位置而无需单独执行复制步骤时,账户故障转移效果最佳。 它只会把你移动到Microsoft定义的配对区域,而不是任意的目标区域。

如果您的帐户使用 异地冗余存储(GRS) 或 异地区域冗余存储(GZRS),则可以启动帐户故障转移到次要区域。 故障切换完成后,次级区域成为主区域。

该选项主要用于灾难恢复。 然而,由于数据已经复制到次级区域的账户,这个选项不需要单独的数据迁移任务。

Important

GRS 故障切换是不可逆的,它只将数据重新定位到 Microsoft 定义的配对区域。

欲了解更多信息,请参见故障切换和故障回复。

迁移后验证清单

迁移完成后,验证以下项目:

  • 账户配置设置:确认目标账户的类型、冗余选项、访问层级和加密设置(包括任何客户管理的密钥)与你预期的配置一致。

  • 网络设置:确认目标账户已配置防火墙规则、虚拟网络规则、私有端点和DNS记录,因为这些设置未被迁移。

  • 基于角色的访问控制(RBAC):验证目标账户上重新创建 Azure 角色分配(例如,Storage Blob 数据所有者和存储 Blob 数据读取器)并授予与源账户相同的访问权限。

  • POSIX ACL:抽查目标账户中的目录和文件 ACL,确认所有者、组和权限条目已正确迁移。

  • 应用连接性:确认应用程序是否能通过新端点认证目标账户并读写数据。

  • 下游服务连接:验证依赖服务和管道(例如 Azure 数据工厂、Azure Synapse Analytics、Azure Databricks 或事件订阅)是否引用目标账户端点,并能读写数据。

  • 性能基准:将目标账户的吞吐量、延迟和交易速率与你的源区域基线进行比较,以确认它们是否满足你的工作负载需求。

  • 监控和诊断:在目标账户上重新创建诊断设置、指标提醒和日志路由(例如,迁移到Log Analytics工作区),因为这些设置不会随你的数据迁移。

局限性

  • 你不能直接在不同地区之间移动存储账户。

  • 对于这两个选项,存储帐户配置设置不会复制到目标帐户。 这些设置的例子包括冗余配置、私有端点、DNS 记录、Azure 角色分配、托管身份和网络设置。

  • 你必须手动将下游服务重新定位到目标账户端点。

  • 迁移团队必须在数据传输完成后验证ACL、权限和应用连接性。

  • AzCopy 不会同步已删除的文件。 同步仅在使用 azcopy sync命令时生效。

  • GRS故障切换是不可逆的。 不支持回到原区域的备份。

  • GRS 和 GZRS 仅支持 Microsoft 定义的配对 Azure 区域之间的复制。 你不能用这些方法复制到任意的目标区域。