使用迁移工具将数据迁移到 OCI 云存储服务

简介

这是四个教程系列的教程 1,其中展示了将数据迁移到 Oracle Cloud Infrastructure (OCI) 云存储服务的各种方法。该系列已设置,因此您可以查看本第一个教程,以全面了解各种工具,然后继续阅读与迁移需求相关的相关教程或文档。

OCI 为客户提供高性能计算和低成本的云存储选件。通过按需本地存储、对象存储、文件存储、块存储和归档存储,Oracle 可以满足关键存储负载要求和用例。

OCI 云存储服务提供快速、安全和持久的云存储选项,可满足企业的所有需求。从高性能选项开始,例如 OCI File Storage with Lustre 和 OCI Block Volumes 服务;从 OCI File Storage 服务到具有高性能挂载目标的完全托管 EB 级文件系统;再到具有高持久性和可扩展性的 OCI Object Storage。我们的解决方案可以满足您的需求,从性能密集型应用(例如 AI/ML 工作负载)到 EB 级数据湖。

许多客户发现需要将数据从本地、其他提供商或 OCI 云存储服务之间传输到 OCI 云存储服务。根据源、目标和数据传输方向,完成迁移的最佳方法可能会有所不同。在 OCI 中确定数据源和目标的基础知识后,您必须决定迁移路径和需要使用的工具。让我们的实践经验指导您使用合适的迁移工具以及如何使用它。本教程 1 系列中将向您介绍各种工具,以及它们最适合迁移过程的位置。

确定需要迁移的数据量以及可切换到新 OCI 存储平台的停机时间。批迁移是将迁移细分为可管理的增量的一个好选择。通过批处理迁移,您可以跨不同窗口为特定应用程序安排停机时间。某些客户可以灵活地在 2-4 天的预定维护窗口内执行一次性迁移。OCI FastConnect 可用于在 OCI 与您的环境之间创建专用连接,端口速度从 1G 到 400G,从而加快数据传输过程。OCI FastConnect 可与 Megaport 和 ConsoleConnect 等合作伙伴解决方案集成,以创建与数据中心或云到云互连的专用连接,从而将数据更直接地从其他云供应商迁移到 OCI 云存储服务。有关详细信息,请参阅 FastConnect 与 Megaport Cloud Router 集成

目标读者

DevOps 工程师、开发人员、OCI 云存储管理员和用户、IT 经理、OCI 高级用户和应用管理员。

目标

了解如何使用各种工具将数据复制并同步到 OCI 云存储服务中:

Prerequisites

迁移工具

我们的客户体验和测试可帮助您了解哪个迁移工具最适合您的场景。我们建议您对示例数据集进行概念验证和测试,以验证数据集的最佳迁移方法。我们将探讨常见的迁移工具,以将数据从内部部署和其他云提供商迁移到 OCI 或在 OCI 云存储服务中。测试结果是从示例数据集共享的,因此您可以推断工具对数据集的性能。

作业的正确工具

在进行迁移时,有许多工具可供选择,同时研究它们可能是压倒性的。根据迁移的起源、目的地、迁移方向、用户体验和用户环境,最佳迁移工具会有所不同。

下表提供了常见迁移方案的建议,包括迁移内部部署数据、将数据从其他云供应商迁移到 OCI、将 OCI 云存储数据从一个区域复制到另一个区域、复制某个区域内的 OCI 云存储数据以及将 OCI 文件存储数据复制到 OCI 对象存储。

迁移数据自 将数据迁移到 推荐工具 说明 文档/教程链接
内部部署文件系统 OCI 对象存储 1. s5cmd(小/混合文件)
2。OCI Object Storage Sync(几个大文件)
3。克隆(混合)
4。Resilio Active Anywhere
使用该工具最适合您的数据结构,您感觉使用起来很舒服。应查看 FastConnect 以缩短传输时间。 S5cmd 和对象存储同步教程
克隆教程
Resilio Active Anywhere
另一个云供应商对象或 Blob 存储 OCI 对象存储 1. Flexify IO
2. 克隆
对 S3 兼容的供应商以及需要支持的 GUI 界面时使用 Flexify IO。
当您舒适地尝试和切换各种设置以及支持 70 多个不同云供应商(S3 兼容和非 S3 兼容对象存储)时,可使用 Rclone。
Flexify IO migrate between clouds克隆教程
OCI 对象存储 其他区域中的 OCI 对象存储 1. 对象复制
2。OCI Object Storage 批量复制 Python API
3。Flexify IO
4. 克隆
使用原生对象复制适用于当前为空的新存储桶的精确副本,使用 OCI 对象存储批量复制 Python API、Flexify IO 或 Rclone 来初始化已具有对象的源存储桶的副本,或者当您希望在目标上保留对象时。 对象存储复制文档
使用 Oracle Cloud Infrastructure Object Storage Python Utilities 进行批量操作
Flexify IO
克隆教程
OCI 对象存储 其他租户中的 OCI 对象存储(相同或不同区域) 1.OCI Object Storage 批量复制 Python API
2。Flexify IO
3. 克隆
OCI Object Storage 批量复制 Python API 的先决条件:使用跨租户 IAM 策略启用跨租户复制。有关更多信息,请参见 Accessing Object Storage Resources Across Tenancies Use Oracle Cloud Infrastructure Object Storage Python Utilities for Bulk Operations
Flexify IO
Rclone Tutorial
OCI 文件存储 OCI 对象存储 1. s5cmd(小/混合文件)
2。对象存储同步(少量大文件)
3。克隆(混合)
4。Resilio Active Anywhere
使用该工具最适合您的数据结构,您感觉使用起来很舒服。 S5cmd 和对象存储同步教程
克隆教程
Resilio Active Anywhere
内部部署文件系统 OCI 文件存储 1. fpsync (Linux) 和 CIFS + fpsync (Windows)
2。Resilio Active Anywhere
确保在源实例和目标实例之间建立网络连接。 Fpsync 文档
fpsync 教程
Resilio Active Anywhere
其他云供应商本地磁盘或文件存储 OCI 文件存储 1. fpsync (Linux) 和 CIFS + fpsync (Windows)
2。Resilio Active Anywhere
确保在源实例和目标实例之间建立网络连接。应查看 FastConnect 以缩短传输时间。 Fpsync 文档
fpsync 教程
Resilio Active Anywhere
OCI 文件存储 其他区域中的 OCI 文件存储 1. 文件系统复制
2. 与实例到实例流同步
3。Resilio Active Anywhere
如果使用复制,请参见复制的限制和注意事项,或者如果使用实例到实例流,请确保在源实例和目标实例之间建立网络连接。 Fpsync 文档
fpsync 教程
文件系统复制文档
Resilio Active Anywhere
OCI 文件存储 同一可用性域中的 OCI 文件存储 1. 文件系统复制
2。Using File Storage Parallel Tools: parcp
3. Resilio Active Anywhere
如果使用复制,请参见复制的 Limitations and Considerations ,或者如果使用 parcp,请确保源文件系统和目标文件系统都已挂载到实例中。 File System Replication
Using File Storage Parallel Tools:parcp
Resilio Active Anywhere
本地部署,另一家云供应商 OCI 对象存储或 OCI 文件存储 Resilio Active Anywhere 平台 当您需要多向同步数据、支持白手套服务和 GUI 界面时,可使用 Resilio Active Anywhere 平台。Resilio 已经过 OCI 云存储服务产品团队的验证,可在 Oracle Cloud Marketplace 中使用。 有关使用其平台的更多信息,请联系 Resilio 团队

注:迁移工具系列不包括 OCI Object Storage 或 OCI File System Replication、OCI Object Storage Bulk Copy Python API、Flexify 和 Resilio。有关更多信息,请参见“相关链接”。

后续步骤

转至与您的迁移需求相关的教程。要将数据迁移到 OCI 云存储服务,请执行以下操作:

可选)测试环境

根据测试和客户互动提出建议。

测试环境 1:

1 个 VM 实例 VM.Standard.E4.Flex、1 个 OCPU、1Gbps 网络带宽和 16GB 内存。模拟本地到 OCI 的迁移,将数据从 PHX NFS 复制到 IAD。

数据集

数据集总大小:3TB,包含 3 个文件,每个文件 1TB。

方法 至自 Time 命令 标记
os 同步 NFS/文件 PHX 到对象 IAD 123m17.102s NA --parallel-operations-count 100
s5cmd NFS/文件 PHX 到对象 IAD 239m20.625s 复制 run commands.txt,缺省运行 --numworkers 256
克隆 NFS/文件 PHX 到对象 IAD 178m27.101s 复制 --transfers=100 --oos-no-check-bucket --fast-list --checkers 64 --retries 2 --no-check-dest

注:我们的测试显示 os sync 对此数据集运行速度最快。

数据集总大小:9.787GB,包含 20,000 个文件,每个文件 20MB

方法 至自 Time 命令 标记
s5cmd NFS/文件 PHX 到对象 IAD 1m12.746s 复制 缺省运行 --numworkers 256
os 同步 NFS/文件 PHX 到对象 IAD 2m48.742s NA --parallel-operations-count 1000
克隆 NFS/文件 PHX 到对象 IAD 1m52.886s 复制 --transfers=500 --oos-no-check-bucket --no-check-dest

注:我们的测试显示 s5cmd 对此数据集的性能最佳。

测试环境 2:

VM 实例:每个测试都使用 2 个 VM 实例,我们使用 VM.Standard.E4.Flex 和 24 个 OCPU、24Gbps 网络带宽和 384GB 内存。Oracle Linux 8 用于 Linux 测试。Flexify IO 不使用 VM 实例。

用于测试的数据集:具有以下文件计数和大小的 14 个主目录,总计为 2.25TiB。

数据集目录 大小 文件计数 每个文件的大小
目录 1 107.658 GiB 110,242 1 MiB
目录 2 1.687 GiB 110,569 15 MiB
目录 3 222 GiB 111 2 GiB
目录 4 1.265 TiB 1,295 1 GiB
目录 5 26.359 GiB 1,687 16 MiB
目录 6 105.281 MiB 26,952 4 KiB
目录 7 29.697 MiB 30,410 1 KiB
目录 8 83.124 GiB 340,488 256 KiB
目录 9 21.662 GiB 354,909 64 KiB
目录 10 142.629 GiB 36,514 4 MiB
目录 11 452.328 MiB 57,898 8 MiB
目录 12 144 GiB 72 2GiB
目录 13 208.500 GiB 834 256 MiB
目录 14 54.688 GiB 875 64 MiB

注:

方法 至自 Time 命令 标志/备注
s5cmd NFS/文件 PHX 到对象 IAD 54m41.814s 复制 --numworkers 74
os 同步 NFS/文件 PHX 到对象 IAD 65m43.200s NA --parallel-operations-count 50
克隆 NFS/文件 PHX 到对象 IAD 111m59.704s 复制 --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 50
克隆 对象 PHX 与对象 IAD 28m55.663s 复制 --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 400,在 2 个 VM 中运行相同的命令,以实现 800 次传输的并发
python 批量复制脚本 对象 PHX 与对象 IAD 25m43.715s Default 1 个 VM,50 个 worker,100,000 个文件一次排队
弹性 IO 对象 PHX 与对象 IAD 20m27s 复制 默认为 10 个引擎/插槽
弹性 IO 对象 PHX 与对象 IAD 16m12s 复制 20 个引擎/插槽,这可以通过“高级设置”提出

s5cmdos sync 命令优于文件系统/NFS 到对象存储。Flexify IO 和批量复制脚本仅关注对象存储(存储桶到存储桶)传输,未针对 NFS 迁移进行测试。

只有 Flexify IO、rclone 和 python 批量复制脚本能够跨区域执行存储桶到存储桶的传输,因此没有针对其他工具进行测试。Flexify IO 在跨区域的对象存储迁移方面表现最佳,python 批量复制脚本的性能优于 rclone。需要注意的是,Flexify IO 适用于 S3 兼容的对象存储,python 批量复制脚本仅适用于 OCI 对象存储,rclone 支持许多后端和云提供商。

使用 rclone 进行小规模测试,将数据从 Microsoft Azure Blob Storage、Amazon Simple Storage Service (Amazon S3) 和 Google Cloud Platform Cloud Storage 传输到 OCI Object Storage,以验证该工具是否适用于这些类型的传输。有关详细信息,请参阅使用 Rclone 将数据迁移到云中的对象存储

FlexifyIO 用于将此数据集从 AWS us-east-2 迁移到 OCI 阿什本区域,仅使用 23m51s 表示 2.25TiB,默认值为 10 个引擎/插槽,可以添加其他引擎/插槽以提高性能。

测试环境 3:

VM 实例:每个测试都使用 1-2 个 VM 实例,我们使用 VM.Standard.E4.Flex 和 24 个 OCPU、24Gbps 网络带宽和 384GB 内存。Oracle Linux 8 用于 Linux 测试。所有测试都是桶对桶。Flexify IO 不使用 VM 实例。

总大小 文件计数 文件大小范围
7.74 TiB 1,000,000 30 MiB
方法 至自 Time 命令 标记 说明  
克隆 Object-to-Object IAD -> IAD 18h39m11.4s 复制 --oos-no-check-bucket --fast-list --no-traverse --transfers 500 --oos-chunk-size 10Mi 1 个 VM,由于文件计数过高并列出对源的调用,速度非常慢  
克隆 Object-to-Object IAD -> IAD 55m8.431s 复制 --oos-no-check-bucket --no-traverse --transfers 500 --oos-chunk-size 10Mi --files-from <file> 2 个 VM,每个 VM 传输 500 个,对象/文件列表一次提供 1,000 个文件,可防止在源和目标上列出,并提高性能  
python 批量复制脚本 Object-to-Object IAD -> IAD 28m21.013s NA Default 1 个 VM,50 个 worker,100,000 个文件一次排队  
python 批量复制脚本 对象到对象 IAD -> IAD NA NA Default 2 个 VM,每个 VM 50 个 worker,一次排队 100,000 个文件。收到 429 个错误,脚本挂起且无法完成  
弹性 IO Object-to-Object IAD -> IAD 39m19s 复制 Default 默认为 10 个引擎/插槽  
弹性 IO 对象到对象 IAD -> IAD 21m37s 复制 20 个引擎/插槽 设置为 20 个引擎/插槽,这可以通过“高级设置”引发  
s5cmd Object-to-Object IAD -> IAD 14m10.864s 复制 默认值(256 名员工) 1 个 VM NA
s5cmd Object-to-Object IAD -> IAD 7m50.013s 复制 默认值 2 个 VM,每个 VM 256 个 worker 以 1 个 VM 的一半时间运行
s5cmd 对象到对象 IAD -> IAD 3m23.382s 复制 --numworkers 1000 1 个 VM,1000 个 Worker 在多个测试中,我们发现这是使用 s5cmd 对此数据集的最佳运行
克隆 Object-to-Object IAD -> PHX 184m36.536s 复制 --oos-no-check-bucket --no-traverse --transfers 500 --oos-chunk-size 10Mi --files-from <file> 2 个 VM,每个 VM 传输 500 个,对象/文件列表一次提供 1,000 个文件  
python 批量复制脚本 Object-to-Object IAD -> PHX 35m31.633s NA Default 1VM,50 个 Worker,一次排队 100,000 个文件  
弹性 IO Object-to-Object IAD -> PHX 21m17s 复制 20 个引擎/插槽 设置为 20 个引擎/插槽,这可以通过“高级设置”引发  

对于大文件计数和小文件,s5cmd 命令始终以最佳方式运行。s5cmd 受限,因为它只能在同一租户和同一区域内执行桶对桶的复制。

Flexify IO 是此迁移数据集的推荐工具,因为它性能良好,支持各种 S3 兼容的对象存储类型。提升 Flexify IO 的引擎/插槽计数后,迁移时间下降。

请注意,在将文件馈送到命令后以及从扩展到其他 VM 时,rclone 会得到很大的改进。克隆的运行速度可能比其他工具慢,但它是它支持的各种平台中最通用的,以及它可以执行的迁移类型。

OCI Object Storage Bulk Copy Python API 只能使用 OCI Native CopyObject API,并且只能在受限之前获得最多 50 个工作进程的并发,对于此数据集,其性能通常相当出色。

IAD 到 PHX 的测试仅针对在 IAD 到 IAD 中效果最佳的测试,并且没有重新运行有问题的测试。s5cmd 未针对 IAD 运行到 PHX,因为它只能在同一区域中执行桶对桶的复制。

确认

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心