存储分区重定位

本页面简要介绍了存储分区重新定位、其优势、用例、工作原理和限制。

概览

Cloud Storage 存储分区重新定位功能支持在不同地理位置之间无服务器地迁移存储分区。使用存储分区重新定位,您可以执行以下操作:

  • 将现有存储分区从一个位置移至另一个位置,而无需更改其名称或手动转移存储分区中的数据。

  • 通过使工作负载的 Cloud Storage 配置与 Compute Engine 保持一致,提高性能和成本效益。

优势

令牌桶重新分配的优势如下:

  • 简化迁移:您可以将存储分区重新定位,而运营开销极低。无需复杂的脚本或多步流程。

  • 持续运行:在整个迁移过程中,您的应用始终可供访问,读取操作不会出现任何停机时间,写入操作的停机时间也非常短。

  • 提升性能:将 Compute Engine 和 Cloud Storage 资源部署在同一区域内可以缩短延迟时间并提升性能。

  • 元数据保留:存储分区重定位过程会保留对象元数据。保留对象元数据可确保在移动存储分区后与现有应用和工作流程兼容。

  • 存储类别配置:您可以维护现有的 Cloud Storage 存储类别设置,包括 Autoclass。保留存储类别可确保您的费用结构在迁移后保持一致。

为什么应使用存储分区重新定位?

以下是重新部署存储分区的一些用例:

  • 降低数据传输费用:如果数据经常从距离存储位置较远的位置访问,您可以将存储分区迁移到靠近访问位置的位置,从而降低数据传输费用。例如,如果您的数据主要从欧洲访问,但存储在美国,您可以将存储分区移至欧洲位置,以降低费用。

  • 提升性能:您可以将数据移得更近 Compute Engine,从而提升应用的速度和响应能力。例如,如果您的应用在 us-central1 中运行,但数据位于 asia-east1 中,您可以将存储分区重新定位到 us-central1 以缩短延迟时间。

  • 增强弹性:您可以保护关键数据免受区域性服务中断的影响。例如,如果您的数据存储在单个区域中,您可以将其重新定位到双区域或多区域位置,以提高可用性并实现灾难恢复。

重新定位类型

存储分区迁移是否会涉及写入停机时间取决于存储分区的来源和目标位置。如需了解位置对重新定位类型的影响,请参阅确定存储分区的重新定位类型。这两种存储分区重新定位类型如下所示:

  • 会导致写入中断的存储分区重定位:在会导致写入中断的存储分区重定位中,您在存储分区重定位过程中会无法执行对象写入操作。

  • 无写入停机的存储分区重新定位:在无写入停机的存储分区重新定位中,您可以在后台进行存储分区重新定位,同时继续不间断地执行对象写入操作。

下表介绍了有写入停机时间和无写入停机时间的重新定位类型之间的重要区别:

规范 存储分区重定位,会导致写入停机 无需写入停机即可重定位存储分区
写入可用性 无法在最终同步步骤期间执行写入操作。 写入操作不会中断。
用户参与度 需要用户发起写入停机时间最终确定步骤。 无需执行显式最终处理步骤。
性能影响 在最终同步步骤期间,无法写入或更新存储分区中的任何对象。 重定位期间对象读写延迟时间可能会增加。
取消存储分区重定位 比无写入停机时间的迁移更快。 取消操作不会立即生效。由于需要回填对象,因此可能需要更长时间。
功能支持 与无写入停机时间的迁移相比,支持的功能较少。 分块上传保留政策Firebaseappspot 等功能的限制。如需详细了解这些限制,请参阅限制

确定存储分区重新定位类型

来源和目标存储分区位置决定了迁移类型。

在区域、双区域或多区域之间迁移存储分区时,您会遇到无法写入存储分区的服务中断时间。不过,在以下情况下,您可以在不停机的情况下重新部署存储分区:

  • 如果这两个位置共用相同的多区域代码,则从多区域位置迁移到可配置的双区域位置。

  • 如果两个位置共用相同的多区域代码,则在可配置的双区域之间重新定位。

  • 如果这两个位置共用相同的多区域代码,则从可配置的双区域位置迁移到多区域位置。

了解存储分区重定位流程

存储分区重新定位可帮助您将数据从源存储分区移至目标存储分区。来源存储分区存储您要移动的数据,目标存储分区是您要将数据移到的存储分区。

下图显示了存储分区重新定位流程。

存储分区重定位流程。
图 1. 存储分区重新定位流程(点击可放大)。

以下带编号的步骤对应于该图中的标号。该图显示了以下步骤:

  1. 增量数据复制:增量数据复制步骤会将数据从源存储分区复制到目标存储分区。存储分区元数据处于写入锁定状态,以防止对存储分区进行任何更改,因为这可能会影响重新定位过程。不过,您可以写入、修改和删除存储分区中的对象。影响时长的因素如下:

    • 存储分区中对象更新、删除或添加的频率会直接影响复制时长。变化率越高,所需时间就越长。对象移动速率上限为 Rm, objects/second。如果总对象数为 N,更新速率为 R objects/second,则复制步骤时长可估算为 N / (Rm - R) 秒。
    • 由于带宽有限,大型存储分区需要更长的时间进行重新定位。

    • 单个对象的大小会影响复制时间。由于带宽限制,大于 10 GB 的对象的传输时间比小于 10 GB 的对象要长。例如,1 TB 的对象需要 1 天才能复制完毕。我们建议您将大型对象拆分为大小介于 0.1 到 1 GB 之间的较小对象。

    如需详细了解如何启动增量数据复制,请参阅启动增量数据复制步骤

  2. 监控增量数据复制:如需查看增量数据复制步骤的状态,您可以定期查看长时间运行的操作列表。如需了解如何检查增量数据复制步骤的状态,请参阅监控增量数据复制步骤

  3. 最终同步:对于存在写入停机时间的重定位,增量数据复制完成后,您需要触发最终同步步骤。在最终同步步骤中,您无法向存储分区写入数据,以确保数据一致性。最终同步步骤包括以下操作:

    1. 该存储分区已被暂时写入锁定。因此,在此期间,您无法写入或更新存储分区中的任何对象,以防止数据不一致。

    2. 自增量复制步骤以来对存储分区中对象数据所做的任何更改都会复制到目标存储分区,从而确保重新定位的存储分区包含最新的数据。对象复制完成后,系统会执行比较,以确保源存储分区和目标存储分区中的数据一致。数据比较完成后,存储分区的位置会更新,并且所有请求都会重定向到新位置。

    3. 当所有数据都已转移、验证完毕,并且存储分区在新位置正常运行后,系统会移除写入锁定。然后,您可以继续写入和更新存储分区中的对象。

    如需了解如何启动最终同步步骤,请参阅启动最终同步步骤

限制

存储分区重新定位服务最多支持从项目中同一位置同时进行 5 次重新定位。

以下部分介绍了适用于有写入停机时间和无写入停机时间的重新部署的限制。

存在写入停机时间限制的重新部署

带有写入停机时间的重定位存在以下限制。

数据处理限制

在重新定位期间处理数据时,存在以下限制:

  • 表损坏:使用 Apache Iceberg 的 BigLake 外部表和 BigQuery 表将损坏,需要手动重新创建。无法自动检测受影响的表。
  • Autoclass 对象处理:Autoclass 会根据访问模式确定何时将对象转换到更冷的存储类别。在存储分区重新定位流程的最终同步期间,Autoclass 会暂停,并且对象不会转换到更冷的存储类别。最终同步完成后,Autoclass 会恢复。

    • Standard Storage 类中的对象会按如下方式处理:

      • Standard Storage 类对象需要经过 30 天的无访问期,才能转换到 Nearline Storage 等较冷的类别。当 Standard Storage 类别中的对象在重新定位期间被移动时,系统会将其视为已被访问。因此,重新定位过程会重置无访问权限期,即使对象在迁移前即将转换为 Nearline Storage,也必须在重新定位完成后再等待 30 天。
    • 系统会按如下方式处理非标准存储类别中的对象:

      • 在 Nearline Storage、Coldline Storage 或 Archive Storage 存储类别中重新分配对象不计为访问这些对象。因此,这些对象的无访问权限期不会受到影响。

      • 如果您在迁移期间读取或写入非标准存储类别存储分区中的对象,该对象不会自动升级到 Standard Storage 等温度较高的类别,这有助于防止在迁移过程中发生不必要的存储类别转换。

      • 如果对象已安排降级到较冷的存储类别(例如从 Nearline Storage 降级到 Coldline Storage),则迁移过程不会干扰该安排。迁移完成后,系统会按计划继续降级。

  • 对象大小限制:重定位对象的大小不得超过 2 TB。

不受支持的功能

使用以下功能的存储分区无法迁移:

  • 客户管理的加密密钥 (CMEK)客户提供的加密密钥 (CSEK)
  • 已锁定的保留政策
  • 具有临时保全的对象。
  • 分段上传。您必须先完成或中止所有未完成的多部分上传,然后才能开始存储分区迁移流程。
  • 代码。不建议在重新定位期间添加代码,因为这会导致重新定位流程失败。
  • Appspot 存储分区。考虑将 Container Registry 迁移到 Artifact Registry,以解决由 App Engine 创建的默认存储分区的问题。
  • Firebase 存储分区。您无法重新定位与 Firebase 关联的存储分区。

操作限制

存储分区重定位(写入停机)具有以下操作限制:

  • 项目限制:您无法在项目之间迁移存储分区。
  • 可续传上传:必须在最终同步步骤之前完成正在进行的可续传上传,以免数据丢失。
  • 元数据更新:您无法在迁移期间更新存储分区的元数据。
  • 请求速率递增:重新分配的分桶须遵循与新创建的分桶相同的请求速率递增准则。

无需停机即可进行写入

在不停用写入的情况下重新定位存储分区存在以下限制:

  • 分块上传:不支持未完成的分块上传,必须先完成或中止分块上传,然后才能进行重新定位。迁移期间,系统会阻止新的分块上传。
  • 保留政策:所有保留政策都必须先解锁,然后才能迁移。
  • Firebase 和 Appspot 存储分区:与 Firebase 或 Appspot 关联的存储分区不支持重新定位。
  • 进度更新:重新定位进度更新可能并不线性。

不受支持的区域

me-central1 区域不支持对源存储分区或目标存储分区进行存储分区迁移。

后续步骤