Gsutil 同步与 cp -n

Posted

技术标签:

【中文标题】Gsutil 同步与 cp -n【英文标题】:Gsutil sync vs cp -n 【发布时间】:2021-01-30 18:49:29 【问题描述】:

我希望定期备份多个 GCS 存储桶,有时这些存储桶可能包含大量文件(超过 200,000 个,总文件大小为 5tb-ish)。

使用多线程/多进程 rsync 似乎仍然需要很长时间才能建立同步状态(这需要

使用 cp no-clobber (-n) 选项可能会加快速度吗?还是会花费与 rsync 相同的时间来建立同步状态?谢谢。

【问题讨论】:

你在哪里运行 gsutil 命令? 以及桶是什么类型的存储?什么位置和等级?你能补充一些信息吗? 您将存储桶的备份存储在哪里? 【参考方案1】:

这完全取决于您要传输的对象的平均文件大小。你有很多小文件,那么我建议不要使用 -n (no-clobber)。因为对于每个文件,它都必须发送一个请求来检查文件是否已经存在。

在您的情况下,您的平均文件大小约为 25mb。我从来没有做过任何测试来找到使用 no-clobber 选项的收支平衡点。但就您而言,我认为加快速度可能会有所帮助。但是,如果您拥有平均超过 100mb 的文件,则影响会大得多。

很高兴知道,价格不是一个因素,因为 GCP 入口是免费的。如果价格是一个因素,您当然会选择无干扰选项,以传输更少的数据。

没有破坏。指定时,现有文件或对象在 目的地不被替换。被此跳过的任何项目 选项被报告为已跳过。 gsutil 执行额外的 GET 请求在尝试上传之前检查项目是否存在 数据。这可以避免 gsutil 重新传输数据,但额外的 HTTP 请求可能会使小对象传输更慢且更多 很贵。

Source

【讨论】:

以上是关于Gsutil 同步与 cp -n的主要内容,如果未能解决你的问题,请参考以下文章

gsutil - 使用联合用户 AWS 密钥时 cp、rsync 的问题

gsutil cp 创建嵌套目录

GSUTIL CP 文件延迟

gsutil cp 命令错误,CommandException:没有匹配的 URL:

GSUTIL CP 命令行为不一致

GSUTIL CP 使用文件大小