在存储区之间移动数据
在某些时候,需要将数据移动或备份到不同的 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。
- 从 目录 中创建 IBM Cloud Object Storage 实例。
- 创建需要存储传输的数据的任何存储区。 请通读入门指南以熟悉关键概念,例如端点和存储类。
rclone
实用程序不会复制任何存储区配置或对象元数据。 因此,如果您正在使用任何 Object Storage 功能,例如到期,归档,密钥保护等。请确保在迁移数据之前对其进行适当配置。 要查看 COS 目标上支持的功能部件,请参阅 功能部件矩阵。
可以在以下列出的 IBM Cloud 门户网站页面上查看功能部件配置和访问策略文档:
设置计算资源以运行迁移工具
- 选择 Linux™/macOS™ /BSD™ 机器或 IBM Cloud Infrastructure 裸机或虚拟服务器,它们最接近您的数据。 在与目标存储区相同的区域中选择数据中心通常是最佳选择 (例如,如果将数据从
mel01
移动到au-syd
,请在au-syd
中使用 VM 或裸机)。 推荐的服务器配置为:32 GB 内存、2-4 核处理器和 1000 Mbps 的专用网络速度。 - 如果要在 IBM Cloud Infrastructure Bare Metal 或 Virtual Server 上运行迁移,请使用 专用 COS 端点来避免网络输出费用。
- 否则,请使用公共或直接 COS 端点。
- 通过 软件包管理器或预编译二进制文件安装
rclone
。
curl https://rclone.org/install.sh | sudo bash
为 COS 源数据配置 rclone
在 rclone
中为迁移的源和目标创建“概要文件”。
如果需要,请获取 COS 凭证
- 在 IBM Cloud 控制台中,选择 COS 实例。
- 单击导航窗格中的服务凭证。
- 单击新建凭证以生成凭证信息。
- 选择 高级 选项。
- 将 HMAC 凭证打开到 On。
- 单击添加。
- 查看已创建的凭证,然后复制 JSON 内容。
获取 COS 端点
- 单击导航窗格中的存储区。
- 单击迁移目标桶。
- 单击导航窗格中的配置。
- 向下滚动到端点部分,然后根据运行迁移工具的位置来选择端点。
- 复制以下内容并粘贴到
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
- 使用
rclone
的模拟运行(不复制数据)测试配置,以测试将源数据桶(例如source-test
)中的对象复制到目标数据桶(例如destination-test
),其中source-test
和destination-test
分别是源数据桶和目标数据桶的名称。
rclone --dry-run copy COS_SOURCE:source-test COS_DESTINATION:destination-test
- 检查要迁移的文件是否显示在命令输出中。 如果一切正常,请除去
--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)。 |
使用 rclone copy
迁移数据只会复制而不会删除源数据。
应该对需要迁移/复制/备份的所有其他源存储区重复复制过程。