求一个文件 N 点同步的方案

34 天前
 nmap
一个文件或者目录,放在 N 个地方,包括 linux 和 windows 机器,
在一个地方修改后,要自动同步到其他 N-1 个点,这些点大部分是云服务器和内网机器,
怎么实现自动化?
最好是开源的可以自己部署的简单方案,
或者退一步不考虑 win 也可以
1097 次点击
所在节点    程序员
8 条回复
kirara2024
34 天前
syncthing
bkmi
34 天前
在用 Syncthing
xyz8899
34 天前
群晖 drive
Les1ie
34 天前
Syncthing 。很符合要求,p2p 不需要公网 IP 。 目前用来在 2 台 Linux 和 1 台 Windows 之前同步同一个路径。还用 android 端同步照片到 OMV 系统的 NAS 上。
wangbin11
34 天前
有没有企业方案啊我也需要一个
kuanat
34 天前
TLDR

不知道你考虑过冲突解析的问题?同一时间两个节点上的同一文件产生了不同的变化,要以哪个副本为准?如果存在这种情况,那你要解决的实际上是分布式系统的同步问题,方案会非常复杂。比如一般的对象存储,都是传一个副本,然后节点之间完成副本同步。

如果不存在这种情况,可以降级成非分布式问题,方案也简单很多。比如你只是需要多个备份,同一时间只会在一个节点上操作。这个情况比较简单的做法是选一个节点作为权威副本,其他的节点都以这个节点为准,向权威副本推送更新的时候要先合并权威副本。类似于使用 github 之类的平台进行协作的模式。rsync 加上简单脚本就能实现。


----手动分割----

这个问题没有普适的答案,本质上它是受分布式系统 CAP 理论限制的。需要确认需求,进而在 CAP 三者当中选二,然后才能确认方案。由于绝大多数情况下,P 是不能放弃的,所以要么只能 AP 要么只能 CP 。

AP 方案放弃 C ,结果就是某一个时刻,各个节点之间的副本有的是最新版,有的是旧版。

CP 方案放弃 A ,在任意同步行为完成之前,不能进行其他操作。

实际应用里最先考虑的是降级,把分布式降级为星型,就是上面说的权威副本节点。如果无法降级,那就需要使用基于 paxos/raft 这类共识算法的同步机制。
Anybfans
34 天前
看小雅用的是 resilio 。 之前 syncthing 。好像是因为太卡了。换的 resilio
leoyun
34 天前
seafile?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040288

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX