我正在寻找一款非常快速的文件同步软件,用于跨多台机器、跨多个站点同步数据。类似 Dropbox 或 Spideroak 之类的软件。
该软件应满足以下两个标准:
1)最重要的是。它应该非常快。如果我更改文件,则应在 10 秒内开始上传到服务器。上传完成后,其他连接的机器应尽快开始下载。如果软件支持锁定相关文件,那就太好了。
2)它应该支持客户端加密。
Dropbox 由于第二点而不适合,Spideroak 由于第一点而不适合(有时我得到非常令人失望的结果)。
您使用什么文件同步工具?您能推荐什么?
编辑:所有计算机都运行 Linux 系统。
编辑 2:我考虑了 4-5 个站点。不幸的是,它们的上传量不是很大。最糟糕的(我的家庭办公室 ;-))只有一个 DSL 连接,上传速度为 80 kb/s。自己组装东西不是一个选择,因为我正在寻找一个成本适中且可靠的解决方案 ;-)。我拥有所有相关客户端的 root 访问权限。
答案1
我会推荐集群文件系统。这是一个 NAS 文件系统,可将多台服务器连接到一个文件系统。然后您可以通过 fuse 挂载它。您还可以通过 IPsec 解决方案连接服务器,请参阅奥普斯旺例如。为了增加安全性。
从维基百科关于 GlusterFS:
GlusterFS 具有客户端和服务器组件。服务器通常部署为存储块,每台服务器运行 glusterfsd 守护程序以将本地文件系统导出为卷。glusterfs 客户端进程通过 TCP/IP、InfiniBand 或 SDP 使用自定义协议连接到服务器,使用可堆叠转换器从多个远程服务器组成复合虚拟卷。默认情况下,文件会整体存储,但也支持跨多个远程卷对文件进行条带化。然后,客户端主机可以通过 FUSE 机制安装最终卷,或通过 libglusterfs 客户端库访问最终卷,而不会产生 FUSE 文件系统开销。GlusterFS 的大多数功能都是作为转换器实现的,包括:
- 基于文件的镜像和复制
- 基于文件的条带化
- 基于文件的负载平衡
- 卷故障转移
- 调度和磁盘缓存
- 存储配额
答案2
您说的是多少个站点?我个人会考虑使用 DRBD 文件系统或 DFS 之类的东西在自己的服务器上进行设置(Windows 使用 DFS 作为网络上的同步文件系统,DRBD 是 Linux RAID 1 over IP 解决方案),然后让客户端连接到服务器上的共享(或映射驱动器),所有内容都会自动同步。
作为第二个研究课题,通过 SSH 在服务器之间进行 rsync 目录。
否则,您可能会考虑使用自己的应用程序和脚本集来完成您想要的操作,这可能并不简单、便宜或容易。
如果不知道具体情况(站点数量、客户站点的控制、带宽等),就很难提出其他建议。
编辑 - DRDB 似乎针对 2 台服务器进行了优化;我不知道“链接”数据需要什么。另外,您要将数据从一台服务器同步到离群值吗?您是否计划了同步路径的优先级(例如,您是否有一个同步所有内容的中央存储库从,还是数据来源和去向都是分散的?还是这些偏远的办公室将数据同步到中央服务器?)考虑到这些因素,您可能会看到一个相当复杂的设置。您必须考虑是否可以通过某种方式运行同步实用程序,如http://billboebel.typepad.com/blog/2006/11/data_mirroring_.html或者在特定时间使用 rsync,或者找到一个基于集群的文件系统,该系统可以处理多个活动的“主要”对等点,而没有足够的开销来占用您的带宽。
您没有提到正在编辑的数据的大小或连接的可靠性;如果您处理的是普通文档,那么您遇到的潜在损坏和问题与编辑大型图形时会有所不同。
考虑到您正在考虑的这种设置的复杂性,我还建议您考虑使用远程访问解决方案作为潜在的解决方案。如果您运行的是 Linux,那么在“主要”办公室中设置中央服务器并让人们使用远程 SSH 终端登录并直接从服务器运行会话并非完全不可能,就像 Windows 终端服务解决方案一样。这使您可以更好地控制数据的备份、安全访问和审核方式。但您应该有一个不错的连接才能做到这一点。非常快的连接将允许使用 X-forwarding 的 SSH 连接,对于中等到快速的连接,您可以为客户端<->服务器连接设置更类似于 VNC(加密隧道/VPN)的远程终端解决方案。
另一个考虑因素是使用 VPN 连接到中心站点并通过 NFS 或 FUSE 模块(如 SSHFS)挂载目录。同样,这取决于您的带宽和连接稳定性。
如果您想继续将同步数据作为解决方案,那么您仍然会遇到潜在的锁定问题,并且需要考虑数据更新的竞争条件,因此您需要研究可以自动处理这种情况的最佳文件系统。
答案3
如果您的客户端和服务器使用的是 Windows,我建议您研究一下分布式文件系统。另外,还可以看看使用 EFS 的离线缓存。如果您不使用 Windows,请告诉我们您使用的是哪个系统。
编辑:看一下同步(测试版)适用于 Linux。
答案4
你可能想看看 Unisonhttp://www.cis.upenn.edu/~bcpierce/unison/然而文件系统解决方案可能更适合您的需求。