在存储区之间移动数据

在某些时候,需要将数据移动或备份到不同的 IBM Cloud® Object Storage 区域。 在对象存储区域之间移动或复制数据的一种方法是使用“同步”或“克隆”工具,例如 开放式源代码 rclone 命令行实用程序。 该工具可在两个位置之间同步文件树,包括云对象存储。 当 rclone 将数据写入COS时,它会使用 COS/S3 API将大型对象分割成多个部分,并根据配置参数中设定的大小和阈值,以并行方式上传这些部分。

本指南提供了有关将数据从一个 IBM Cloud Object Storage 存储区复制到同一区域中的另一个 Object Storage 存储区或复制到另一个 Object Storage 区域中的第二个 Object Storage 存储区的指示信息。 需要对要从每个存储区复制的所有数据重复这些步骤。 迁移数据后,您可以使用 rclone check 来验证传输的完整性,这将生成与文件大小或校验和不匹配的任何对象的列表。 此外,通过定期从可用源到所选目标运行 rclone sync,可以使存储区保持同步。

创建目标 IBM Cloud Object Storage 存储区

您可以选择使用 IBM Cloud Object Storage 的现有实例或创建新实例。 如果要复用现有实例,请跳至步骤 #2。

  1. 目录 中创建一个 IBM Cloud Object Storage 实例。
  2. 创建需要存储传输的数据的任何存储区。 请通读入门指南以熟悉关键概念,例如端点存储类
  3. rclone 实用程序不会复制任何存储区配置或对象元数据。 因此,如果您正在使用任何 Object Storage 功能,例如到期,归档,密钥保护等。请确保在迁移数据之前对其进行适当配置。 要查看 COS 目标上支持的功能部件,请参阅 功能部件矩阵

可以在以下列出的 IBM Cloud 门户网站页面上查看功能部件配置和访问策略文档:

设置计算资源以运行迁移工具

  1. 选择一台 Linux™/macOS™ /BSD™服务器,或选择一台 IBM Cloud 基础设施的裸机服务器或虚拟服务器,确保其位置最接近您的数据。 选择与目标数据桶位于同一区域的数据中心通常是最佳选择(例如,如果将数据从 mel01 移至 au-syd,请使用 VM 或 au-syd 中的裸机)。 推荐的服务器配置为:32 GB 内存、2-4 核处理器,以及 1000 Mbps 的专用网络带宽。
  2. 如果要在 IBM Cloud Infrastructure Bare Metal 或 Virtual Server 上运行迁移,请使用 专用 COS 端点来避免网络输出费用。
  3. 否则,请使用公共直接的 COS 端点。
  4. 通过 包管理器或预编译二进制文件安装 rclone
curl https://rclone.org/install.sh | sudo bash

为 COS 源数据配置 rclone

rclone 中为迁移的源和目标创建“概要文件”。

如果需要,请获取 COS 凭证

  1. 在 IBM Cloud 控制台中,选择 COS 实例。
  2. 单击导航窗格中的服务凭证
  3. 单击新建凭证以生成凭证信息。
  4. 选择 高级 选项。
  5. 将 HMAC 凭证打开到 On
  6. 单击添加
  7. 查看已创建的凭证,然后复制 JSON 内容。

获取 COS 端点

  1. 单击导航窗格中的存储区
  2. 单击迁移目标存储桶。
  3. 单击导航窗格中的配置
  4. 向下滚动到端点部分,然后根据运行迁移工具的位置来选择端点。
  5. 通过复制以下内容并粘贴到 rclone.conf 中,创建 COS 目标。
[COS_SOURCE]
type = s3
provider = IBMCOS
env_auth = false
access_key_id =
secret_access_key =
endpoint =

使用 [COS_DESTINATION] 作为您需要创建的概要文件的名称来配置目标。 重复以上步骤,

使用凭证和期望的端点,填写以下字段:

access_key_id = <access_key_id>
secret_access_key = <secret_access_key>
endpoint = <bucket endpoint>

为 COS 目标数据配置 rclone

对目标存储区重复上述步骤。

请确认源和目标已正确配置

  • 列出与源关联的存储区,以验证是否正确配置了 rclone
rclone lsd COS_SOURCE:
  • 列出与目标关联的存储区,以验证是否正确配置了 rclone
rclone lsd COS_DESTINATION:

如果对源和目标使用相同的 COS 实例,那么存储区列表将匹配。

run rclone

  1. 使用 rclone 的模拟运行(不复制数据)测试配置,以测试将源数据桶(例如 source-test )中的对象复制到目标数据桶(例如 destination-test ),其中 source-testdestination-test 分别是源数据桶和目标数据桶的名称。
   rclone --dry-run copy COS_SOURCE:source-test COS_DESTINATION:destination-test

  1. 检查要迁移的文件是否显示在命令输出中。 如果一切正常,请除去 --dry-run 标志,并 (可选) 添加 -v 和/或 -P 标志以复制数据和跟踪进度。 使用可选的 --checksum 标志可避免更新在两个位置中具有相同 MD5 散列和对象大小的任何文件。
   rclone -v -P copy --checksum COS_SOURCE:source-test COS_DESTINATION:destination-test

尝试在运行 rclone 的机器上最大限度地利用 CPU、内存和网络,以实现最快的传输时间。

调整 rclone 时需要考虑其他参数。 这些值的不同组合将影响存储区中对象的 CPU,内存和传输时间。

标志 类型 描述
--checkers int 要并行运行的校验器数量(缺省值为 8)。 这是运行的校验和比较线程数量。 我们建议将此值增大到 64 或更多。
--transfers int 这是要并行传输的对象数量(默认值为 4)。 在传输许多小文件时,建议将此值增加到 64 或 128 或更高。
--multi-thread-streams int 以多个部分并行下载大型文件 (> 250M)。 这将缩短大型文件的下载时间 (缺省值为 4)。
--s3-upload-concurrency int 要并行上载的大型文件 (> 200M) 的部件数。 这将缩短大型文件的上载时间 (缺省值为 4)。
{: caption="rclone 选项" caption-side="top"}

使用 rclone copy 迁移数据时,只会复制源数据,而不会删除源数据。

应该对需要迁移/复制/备份的所有其他源存储区重复复制过程。