镜像 Amazon S3 存储桶的实用方法是什么?

镜像 Amazon S3 存储桶的实用方法是什么?

我想镜像我的 Amazon S3 存储桶。我想这样做是因为 1) 我不希望我的所有数据只存在于一个提供商中;2) 如果出现软件错误或安全漏洞,我希望备份数据。

我可以使用 s3cmd 同步功能将数据镜像到本地磁盘,但对于非常大的存储桶来说,这无法扩展,并且对于快速备份恢复也无用。我宁愿将数据镜像到 Rackspace Cloud Files 等竞争对手那里。

有谁能建议一种简单而强大的方法,可以在 Linux 机器上自动实现这种镜像?

答案1

您可以使用“s3命令“带有“同步”选项的实用程序,虽然我偶然发现了您的问题,因为我试图弄清楚这种同步机制是否会搞砸我的重复备份。

答案2

我遇到了同样的问题,因此我编写了一个专门设计用于将一个 S3 存储桶镜像到另一个 S3 存储桶的小程序;我称之为 s3s3mirror。

我确实首先尝试了“s3cmd sync”方法,但我有一个包含数十万个对象的存储桶,“s3cmd sync”只是坐在那里,什么也没做,只是消耗越来越多的内存,直到我的系统死机。我设计了 s3s3mirror 以立即启动,使用 100 个并发线程(可配置),并适度使用 CPU 和内存。如果我自己这么说的话,它的速度非常快。

我已根据 Apache 许可将其发布在 GitHub 上。如果您决定尝试一下,请告诉我您的想法以及是否有任何可以改进的地方。

以下是链接:https://github.com/cobbzilla/s3s3mirror

谢谢!

  • 乔纳森。

答案3

亚马逊现在有一个支持的工具来做到这一点,aws 命令行

它可以在本地和远程之间或两个 s3 位置之间进行任意方向的镜像。

不幸的是,它不直接支持非 S3 位置,例如 rackspace,但我认为这对某些发现此问题的人来说是一个有用的答案。就像我一样,在我找到它之前。

尤其,

aws s3 sync s3://some/s3/path /some/local/path

答案4

查看丛林磁盘服务器。它适用于 Amazon S3 和 Rackspace Cloud Files。您可以在文件系统的不同位置安装 S3 和 CF,然后在两者之间使用 rsync。

相关内容