复制谷歌存储桶的最快方法是什么?

Mis*_*sko 8 google-cloud-storage google-compute-engine

我有一个 10TB 存储桶,需要尽快创建它的副本。这样做的最快和最有效的方法是什么?

Mik*_*rtz 13

假设您想将存储桶复制到相同位置和存储类别的另一个存储桶,您可以在 GCE 实例上运行 gsutil rsync:

gsutil -m rsync -r -d -p gs://source-bucket gs://dest-bucket
Run Code Online (Sandbox Code Playgroud)

如果您想跨位置或存储类别进行复制,上述命令仍然有效,但需要更长的时间,因为在这种情况下需要复制数据(不仅仅是元数据)。

无论哪种方式,您都应该检查结果状态并在发生任何错误时重新运行 rsync 命令。(rsync 命令将避免重新复制已经复制的对象。)您应该重复 rsync 命令,直到成功完全复制存储桶。

  • 请小心使用“-d”,因为它会删除“gs://dest-bucket”中“gs://source-bucket”中不存在的文件。首先使用“-n”进行试运行。[来源](https://cloud.google.com/storage/docs/gsutil/commands/rsync#be-careful-when-using--d-option)。 (4认同)

jar*_*mod 7

一种简单的方法是使用 Google 的Cloud Storage Transfer Service。它也可能是最快的,虽然我还没有证实这一点。

  • 这比上面的解决方案要快得多。 (2认同)

Tra*_*rla 6

您可以使用gsutil轻松实现这一点。

gsutil -m cp -r gs://source-bucket gs://duplicate-bucket
Run Code Online (Sandbox Code Playgroud)

您是否在 Google Cloud Storage 中复制到具有相同位置和存储类别的存储分区?如果是这样,这个操作应该非常快。如果存储桶具有不同的位置和/或存储类别,则操作会更慢(并且成本更高),但这仍然是最快的方式。

  • 我赞成迈克施瓦茨的回答。我建议的命令会稍微快一点,因为它不必在开始复制之前完全枚举源存储桶中的所有对象。但是,如果在操作过程中出现任何问题(例如,您遇到暂时的网络中断),那么您需要从头开始复制。Mike 的命令也可以在源存储桶的内容发生更改后重新运行,以便稍后将目标存储桶与源存储桶进行增量同步。 (2认同)