从Google云端存储到s3的gsutil rsync挂在大文件上

时间:2019-05-07 15:50:53

标签: amazon-s3 google-cloud-platform gsutil

尝试使用以下命令将我的Google云存储存储桶备份到aws s3存储桶时,我遇到了较大文件(560MB)的挂起:

gsutil -m rsync -rd gs://<MyGoogleBucket>/ s3://<MyS3Bucket>/  

我知道连接是好的,因为它在挂在较大文件上之前复制了约150个较小的文件(9MB),没有明显的错误消息,只是外壳中的进度条挂了。

当我按下ctrl-C退出程序时,我注意到几条消息:

[Errno 104] Connection reset by peer

这是我的gsutil版本:

gsutil version: 4.38
checksum: 58d3e78c61e7e0e80813a6ebc26085f6 (OK)
boto version: 2.49.0
python version: 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516]
OS: Linux 4.9.0-8-amd64
multiprocessing available: True
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): /etc/boto.cfg, /home/USER/.boto
gsutil path: /home/USER/google-cloud-sdk/bin/gsutil
compiled crcmod: True
installed via package manager: False
editable install: False

我尝试在我的云外壳以及Google Compute VM上执行此操作

有人知道此问题的修复程序或解决方法吗?预先感谢

-内森

3 个答案:

答案 0 :(得分:0)

尽管尚不知道是否确实存在错误,但是在-m上使用gsutil rsync选项进行并行处理可能会影响尤其是网络之间的大量同步行为。这也可以在提到的参考文献[1]中找到:

  

m(多线程)选项,gsutil会消耗大量的网络带宽。在某些情况下,这可能会引起问题,例如,如果您通过网络链接启动大型rsync操作,而其他许多重要作业也使用了该操作。

如果问题仍然存在,则可以在没有gsutil rsync选项的情况下测试-m或使用同一参考文献[1]中提到的替代方法。

[1] Throttling gsutil

答案 1 :(得分:0)

对于GCS中的大型对象,请使用gsutil -o选项。来自文档

https://cloud.google.com/storage/docs/gsutil/commands/cp

答案 2 :(得分:0)

我已经开始使用rclone,它简化了过程并允许复制完成。您可以在这里找到有关使用此工具的信息:https://rclone.org/docs/

-n