Ubuntu服务器的文件同步

我打算设置两个Ubuntu服务器作为备份解决scheme,用户可以存储图像和文档。 我想到的是,如果用户在一个Ubuntu服务器上保存/更新特定目录(Samba共享目录,也许?)上的文件,它会将其同步到另一台服务器。

你们有什么感想? 有没有更好的解决scheme呢? 提前致谢!

编辑:build议创build可写目录并在Samba中设置它的访问权限? 用户安装了Mac OSX和Windows XP作为其操作系统。

rdiff进行备份

你有没有看过rdiff备份?

我们已经使用它从一个Ubuntu文件服务器同步超过400万个文件到另一个没有任何问题。 rdiff-backup的一个非常好的function是保持镜像副本和差异副本(可以configuration多长时间)。 当您备份源代码,更改的图像等等时,这一点非常方便,因为您始终可以将文件恢复到某个时间点。

以下是他们网站的描述:

http://rdiff-backup.nongnu.org

rdiff-backup将一个目录备份到另一个目录,可能通过networking。 目标目录结束了源目录的副本,但额外的反向差异存储在目标目录的特殊子目录中,因此您仍然可以恢复前一段时间丢失的文件。 这个想法是结合镜像和增量备份的最佳function。 rdiff-backup还保留子目录,硬链接,开发文件,权限,uid / gid所有权,修改时间,扩展属性,acls和资源分支。 而且,rdiff-backup可以通过pipe道以带宽有效的方式运行,比如rsync。 因此,您可以使用rdiff-backup和ssh安全地将硬盘驱动器备份到远程位置,并且只会传输差异。 最后,rdiff-backup很容易使用,并且设置有默认值。


rsync的

我的第二个select是rsync和一个cron工作,但频繁地设置你的愿望。


JungleDisk / Amazon S3

我的第三select(取决于您的EXACT需求)将通过JungleDisk或一些类似的程序异地备份到亚马逊的S3云。

http://www.jungledisk.com


我们实际上每小时通过rdiff-backup一次将超过400万个文件从我们的主Ubuntu文件服务器备份到一个从属Ubuntu文件服务器(相同位置)。

然后,我们通过rsync(或Jungledisk)每6小时备份一次到Amazon S3云。

这样我们就可以用主/备份来处理“简单的东西”,但是如果发生了灾难性的事情,我们仍然可以在云中备份Amazon S3备份。

希望这给你一些想法…

如果节点之间有良好的连接性和带宽,则可以考虑使用DRDB和心跳来阻止镜像数据。

我真的很喜欢glusterfs ,用了一段时间来做同样的事情,你正在做的事情。

关于glusterfs

GlusterFS是一个集群文件系统,能够扩展到几个peta字节。 它将Infiniband RDMA或TCP / IP互连上的各种存储块集成到一个大型并行networking文件系统中。 存储砖可以由任何商品硬件制成,例如具有SATA-II RAID和Infiniband HBA的x86-64服务器)。

本教程将介绍如何使用服务器端复制来启动和运行。 请注意,“服务器”也可以是客户端…

// rkthkr

看看开源项目BackupPC 。 我用它来备份小型企业的服务器; 一些好处:

  • 一个不错的networking界面,允许远程和无头控制/监视,甚至还原文件
  • 使用数据池进行存储,因此任何相同的文件只被存储一次; 节省磁盘空间
  • 允许池压缩; 节省磁盘空间
  • 允许多种不同的协议/工具进行复制/备份; rsync,tar等
  • 保持文件的历史不只是最新(可configuration)
  • 可以通过电子邮件发送自动报告

有很多不同的解决scheme。 他们都有优势,但不幸的是他们都有缺点。 这取决于你想要做什么。 最简单的是备份或热插拔文件服务器的单向镜像。 还有一个简单的共享数据存储允许您的文件服务器负载平衡,但是您仍然拥有一个数据存储。 更复杂的是双向同步和复制数据。 然后,当一个节点看不到另一个节点时,会发生什么情况。 如果他们不同步会发生什么?

最简单到复杂

  • 预定的rsync
  • SAN
  • NBD和镜像
  • 集群文件系统如光泽,glustrefs,GFS,OCFS2。