我计划设置两台 Ubuntu 服务器作为备份解决方案,供人们存储图像和文档。我的想法是,如果用户在一台 Ubuntu 服务器上的特定目录(可能是 Samba 共享目录?)上保存/更新文件,它会将其同步到另一台服务器。
你们觉得怎么样?有没有更好的解决方案?提前谢谢!
编辑:建议在 Samba 中创建可写目录并设置其访问权限吗?用户安装了 Mac OSX 和 Windows XP 作为其操作系统。
答案1
rdiff-备份
您曾经看过 rdiff-backup 吗?
我们用它将超过 400 万个文件从一个 Ubuntu 文件服务器同步到另一个,没有任何问题。rdiff-backup 的一个非常好的功能是它同时保留镜像副本和差异副本(您可以配置保留时间)。当您备份源代码、更改的图像等内容时,这非常有用,因为您始终可以将文件还原到某个时间点。
以下是他们网站上的描述:
http://rdiff-backup.nongnu.org
rdiff-backup 可以将一个目录备份到另一个目录,可能通过网络。目标目录最终会成为源目录的副本,但额外的反向差异会存储在该目标目录的一个特殊子目录中,因此您仍然可以恢复一段时间前丢失的文件。其理念是结合镜像和增量备份的最佳功能。rdiff-backup 还保留子目录、硬链接、dev 文件、权限、uid/gid 所有权、修改时间、扩展属性、acls 和资源分支。此外,rdiff-backup 可以通过管道(如 rsync)以带宽高效的方式运行。因此,您可以使用 rdiff-backup 和 ssh 将硬盘安全地备份到远程位置,并且只会传输差异。最后,rdiff-backup 易于使用,设置具有合理的默认值。
同步
我的第二选择是 rsync 和一个 cron 作业,设置为您想要的频率。
JungleDisk / Amazon S3
我的第三个选择(取决于您的确切需求)是通过 JungleDisk 或类似程序进行异地备份到 Amazon 的 S3 云。
实际上,我们每小时通过 rdiff-backup 将超过 400 万个文件从主 Ubuntu 文件服务器备份到从属 Ubuntu 文件服务器(同一位置)。
然后,我们每 6 小时通过 rsync(或 Jungledisk)备份一次到 Amazon S3 云。
这样,我们可以只使用主/备份来处理“简单的事情”,但如果发生灾难性的事情,我们仍然可以在云中拥有 Amazon S3 备份。
希望这能给你一些想法...
答案2
答案3
答案4
对此有很多不同的解决方案。它们都有优点,但不幸的是它们都有缺点。这取决于你想做什么。最简单的方法是使用单向镜像进行备份或热交换文件服务器。同样简单的是共享数据存储,允许在文件服务器之间进行负载平衡,但你仍然只有一个数据存储。更复杂的是双向同步和复制数据。然后你会遇到一个问题,当一个节点看不到另一个节点时会发生什么。如果它们不同步会发生什么?
从最简单到最复杂
- 计划 rsync
- 存储区域网络
- NBD 和镜像
- 集群文件系统,如 lustre、glustrefs、GFS、OCFS2。