如何将数百万个文件从专用服务器复制到 AWS EC2?

如何将数百万个文件从专用服务器复制到 AWS EC2?

我有一个网站需要从专用服务器迁移到 AWS EC2 实例。我有 650GB 以上的数据和 300 多万个文件。

我尝试使用SCP像这样,但由于文件很大,所以花费了太多时间。

scp -r[电子邮件保护]:/远程/目录/本地/目录

我的源操作系统是带有 cPanel 的 Centos 7.5。1TB HDD 和 650GB 数据,目标服务器是 Ubuntu 18.04、700GB HDD。

我知道我们还有其他选择,例如 LFTP、SFTP、rSync 等,请帮助我找到最快的方法。

答案1

我建议将文件压缩成 1 GB 大小的块并上传。解压时,每个文件都会根据 CRC 校验和进行检查。您可以使用内置拆分功能,这样 zip 会自动生成 .z00 .z01 .z02 .z03 ...

或者,您可以使用 rar 格式,它允许创建奇偶校验数据来修复损坏的段。

答案2

有一个 AWS 解决方案可以传输您的数据:

https://aws.amazon.com/snowball/?nc1=h_ls

据我所知,您将获得一个设备(通过 DHL 等邮政服务),您可以在该设备上复制您的数据,然后亚马逊会为您上传这些数据。

答案3

加快上传速度的唯一方法是分多个部分并行进行。

如果您可以使用不同的连接在多台计算机之间划分作业,这将加快上传速度。

如果单台计算机无法达到最大吞吐量,您可以选择多线程方法,其中每个线程将并行打开自己的连接。

查看帖子 将 400G 文件从 ec2 弹性块存储卷复制到 s3 的最快方法是什么? 获取产品和脚本的建议。

另请参阅文章 FS 文件同步 – 更快地将文件传输到 Amazon EFS 文件系统

答案4

尝试在您的专用服务器上安装 AWS CLI。

然后使用aws s3命令先将文件传输到您的 AWS S3 存储桶。

例如

aws s3 sync local/directory s3://mybucket/local/directory

然后传输回本地 EC2 实例:

aws s3 sync s3://mybucket/local/directory local/directory

该命令旨在复制大量文件,并且在失败时仍可继续。

您还可以决定直接从 S3 为 EC2 实例提供文件。

寻求aws s3 sync help帮助。

相关内容