在Amazon S3中使用RSYNC

我有兴趣使用Amazon S3备份我们的〜100GB服务器映像(通过Acronis备份工具创build)

很显然,这个每天晚上上传到S3的带宽和成本都是昂贵的。 我正在考虑与S3一起使用rsync,并且遇到了s3rsync。 我只是想知道有没有人使用过这个或其他工具?

    我最近偶然发现了Google上的这个线索,看起来自问题提出以后,风景已经改变了一点。 这里build议的大部分解决scheme都不再维护或者已经变成商业。

    在和FUSE以及其他一些解决scheme一起工作之后,我决定使用Python为S3和Google Storage编写自己的命令行rsync“clone”。

    你可以在GitHub上看看这个项目: http : //github.com/seedifferently/boto_rsync

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

    希望这可以帮助。

    UPDATE

    AWS的Python团队一直在为基于boto的CLI项目努力为他们的云服务工作。 其中包括的工具是S3的接口,它复制(并在很多方面取代)boto-rsync提供的大部分function:

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

    尤其是, sync命令可以像rsync一样configuration为几乎完全正常工作:

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

    我也用S3cmd和S3sync祝你好运,两者都是免费的。

    根据你的Acronis镜像的创build方式,我不确定任何一种rsync都能为你节省带宽。 Acronis映像是单个文件,因此rsync将无法读取它们以仅备份已更改的内容。 也不知道你正在创build什么样的服务器映像,但既然你说100GB,我会假设完整? 增量图像会大大减less夜间图像的大小,从而节省带宽。 您也可以考虑将图像保存到S3以外的其他位置,如磁带媒体,并将其存储在场外。

    我从来没有尝试过S3rsync。

    我为我们的异地备份使用重复。 它支持在S3上进行增量备份,但由于任何文件修改都迫使您重新上传整个新文件,因此Amazon S3存储协议并不能真正节省带宽。 无论如何,重复只会上传与上次增量备份的差异。

    使用Duplicity,您不需要像S3sync那样通过另一台服务器,但是如果您encryption数据,则应该尝试使用S3sync。

    S3还有一个名为AWS Import / Export的附加服务,它允许你发送一个带有你的初始100Gb数据集的USB驱动器,然后使用他们数据中心的一些后端工具将它加载到S3云上。 一旦你的100Gb在那里,你可以每天晚上做差异备份来备份一切被改变的东西。

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

    如果你的大部分数据是相当静态的,那么这将是一个不错的select,如果整个100Gb的数据每天都在变化,那么这不会对你有太大的帮助。

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

    我已经testing了两个星期的testing版,除了一些小问题,我肯定会在最终版本中修复,对于产品感到兴奋。

    你可以尝试迷你客户端又名“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上的本地目录&S3 [Amazon S3的别名]和您的存储桶的“remoteDir”名称。

     $ mc mirror localdir/ S3/remoteDir 

    你也可以写一个相同的cronjob。 同样在networking愤怒的情况下,你可以反正使用“$ MC会话”重新开始从特定的时间上传。

    PS:我贡献minio项目,并希望得到您的意见和贡献。 希望它有帮助。