![如何将数百万个文件从专用服务器复制到 AWS EC2?](https://linux22.com/image/1583974/%E5%A6%82%E4%BD%95%E5%B0%86%E6%95%B0%E7%99%BE%E4%B8%87%E4%B8%AA%E6%96%87%E4%BB%B6%E4%BB%8E%E4%B8%93%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A4%8D%E5%88%B6%E5%88%B0%20AWS%20EC2%EF%BC%9F.png)
我有一个网站需要从专用服务器迁移到 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 的最快方法是什么? 获取产品和脚本的建议。
答案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
帮助。