将RSYNC与Amazon S3结合使用


39

我对使用Amazon S3备份〜100gb服务器映像(通过Acronis备份工具创建)感兴趣。

显然,就带宽和成本而言,每晚上传到S3的成本很高。我正在考虑将rsync与S3结合使用,并遇到s3rsync。 我只是想知道是否有人使用过此工具或任何其他实用程序?


1
我注意到s3rsync的一件事是您当前只能使用10GB的存储桶大小(请查看FAQ)。您可以有多个存储桶,但必须将数据分成10GB的块。
dana

Answers:


35

最近,我在Google上偶然发现了这个问题,自从提出问题以来,情况似乎有所改变。这里建议的大多数解决方案已不再维护或已商业化。

在对FUSE和其他一些解决方案感到沮丧之后,我决定使用Python为S3和Google Storage编写自己的命令行rsync“ clone”。

您可以在GitHub上检出该项目:http : //github.com/seedifferently/boto_rsync

我最近意识到的另一个项目是“重复性”。它看起来更加精细,可以在这里找到:http : //duplicity.nongnu.org/

希望这可以帮助。

更新

AWS的Python团队一直在努力为其云服务开发基于boto的CLI项目。包括的工具中包括用于S3的接口,该接口可复制(并以许多方式代替)boto-rsync提供的大多数功能:

https://github.com/aws/aws-cli

特别是,该sync命令可以配置为几乎与rsync完全一样:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


伟大的贡献!谢谢,我会尽快给您的代码。您有学习python / django的必读知识吗?干杯
iainlbc 2012年

与S3cmd和S3sync相比,您的程序有什么优点/区别?
詹姆斯·麦克马洪

@JamesMcMahon s3cmd / s3sync是S3的功能更全的CLI(管理存储桶,列表内容等),而boto-rsync严格是模仿rsync的尝试。
塞斯

有一个s3fs保险丝:github.com/s3fs-fuse/s3fs-fuse效果很好,可以与rsync结合使用,但是我不确定效率如何。
斯坦尼斯拉夫

如果您能解释“如何将sync命令配置为几乎完全类似于rsync的功能”,那就太好了。
trusktr '18


7

根据您创建Acronis图像的方式,我不确定任何一种rsync都可以节省带宽。Acronis图像是单个文件,因此rsync无法读取其中的内容以仅备份更改的内容。也不确定您要创建哪种服务器映像,但是既然您说的是100GB,我将假定它已满?增量图像会大大减少夜间图像的大小,从而节省带宽。您也可以考虑将图像保存到S3以外的其他位置(例如磁带媒体),然后将其存储在非现场。


4
不,rsync不能那样工作。它适用于任何文件类型,不需要任何有关其同步文件内部的知识。相反,它比较文件块的哈希,并仅传输那些不同的块。 zh.wikipedia.org/wiki/Rsync
艾伦·唐纳利

2
并且所有卡盘都不匹配,因为图像内文件的任何细微变化都会由于压缩而导致整个文件发生变化。即使关闭了压缩,我也不确定它是否可以很好地同步,因为图像中的文件可以更改顺序,并且可以滚动匹配,而不仅仅是找到相同的块。
JamesRyan 2011年

4

我从未尝试过S3rsync。

我对我们的异地备份使用了重复性。它支持S3上的增量备份,尽管由于Amazon S3存储协议(其中任何文件修改都会迫使您再次上载整个新文件),它并没有真正节省带宽。无论如何,重复性只会上传与上次增量备份之间的差异。

使用Duplicity,您将不需要像S3sync一样经过另一台服务器,但是,如果您对数据进行加密,则值得尝试一下S3sync。


1

S3还具有一项称为AWS Import / Export的附加服务,可让您向其发送具有初始100Gb数据集的USB驱动器,然后他们将使用其数据中心的某些后端工具将其加载到S3云中。一旦100Gb到了那里,您就可以每晚进行差异备份以备份所有已更改的内容。

该网站为http://aws.amazon.com/importexport/

如果您的大部分数据都是静态的,那么这将是一个不错的选择,如果整个100Gb数据每天都在变化,那么这对您没有太大帮助。


3
您如何假设他们“加载” 128Gb闪存驱动器?我看到了世界上最大的USB集线器,一个USB连接器的落地配线架,3/4个客户提供的闪存驱动器,所有这些都进入到一台刀片服务器的背面。
保罗2010年

真是个形象!! 实际上,可能是某个数据中心暗角中的可怜人,您的世界上最大的USB集线器已连接到他的PC :)
monkeymagic 2010年

0

您可以尝试迷你客户端又名“ mc”。mc提供了与Amazon S3兼容的云存储和文件系统一起使用的最少工具。

mc实现以下命令

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

您可以使用mirror命令进行操作。“ localdir”是本地目录和S3(Amazon S3的别名),以及S3上存储桶的“ remoteDir”名称。

$ mc mirror localdir/ S3/remoteDir

您也可以为它编写cronjob。同样,如果发生网络故障,您仍然可以使用“ $ mc session”从该特定时间重新开始上传。

PS:我为minio项目做贡献,很想得到您的反馈和贡献。希望能帮助到你。


-1

新的丛林磁盘服务器版(测试版)可能对您有用。它具有块级重复数据删除功能,因此,如果您的Acronis映像具有共同点,则将大大减少您需要备份的数量。这些功能非常适合服务器备份。查看发行说明。

我已经测试了两个星期的Beta版本,除了我确信可以在最终版本中解决的一些GUI小问题之外,我对该产品感到兴奋。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.