目前基本情况是共有>2 台的机器跑分布式服务,每日往磁盘上固化数据,需要在机器之间同步文件夹。对于文件夹下的同名文件,将更新时间最新的版本同步到其它机器上。
请教各位有什么现成的方案能实现这个功能吗?
非常感谢。
1
Rosanta 2019-01-31 10:38:04 +08:00 1
rsync 啊
|
2
codingadog OP @Rosanta rsync 能实现同名文件根据文件时间同步最新的版本吗?
|
3
hexinxucxy 2019-01-31 10:39:47 +08:00 1
nas
|
4
triptipstop 2019-01-31 10:39:48 +08:00 1
EFS
|
5
codingadog OP |
6
codingadog OP 感谢,没有额外的机器了,同时同步的文件后续需要使用,因此应该不能通过这两种方式。
|
7
msg7086 2019-01-31 11:11:22 +08:00 1
听上去就是个很普通的 Syncthing 的应用场景。
|
8
msg7086 2019-01-31 11:12:18 +08:00 1
不过说实话,GlusterFS 这个分布式文件系统也可以看一下,说不定适合你们的使用场景。
|
9
codingadog OP @msg7086 🤣年后上线来不及改了,主要是可能出现同名文件,同步最新的不知道怎么做
|
10
xkeyideal 2019-01-31 11:22:38 +08:00 1
1、每日同步几次
2、每次同步数据的大小 3、对同步延迟的要求 4、是否容忍一台或多台宕机 把这四点好好介绍一下,别人能更好的给你方案 |
11
msg7086 2019-01-31 11:28:03 +08:00 1
Syncthing 是按照修改时间决定谁最新的。第一次同步会把冲突都标记出来手动解决,以后就总是按照时间同步了。
|
12
codingadog OP @xkeyideal 好的我整理 append 一下,感谢!
|
13
codingadog OP @msg7086 😁好像能满足,我了解一下,谢谢
|
14
xkeyideal 2019-01-31 13:36:41 +08:00 2
暂不考虑用户手动更新,推测一下,楼主的同步数据应该可以理解为更新数据,数据应该是逐条更新的,此种情况数据量并不大,可以考虑两种方案:
1、采用 raft 协议,毕竟数据同步完之后还需要使用,此方案使用数据也一并解决了 2、可以采用类似 mysql binlog 的方式 上述两种方案核心都是主从同步,一主多从。 考虑用户手动触发,就需要考虑所说的数据是否存在冗余。如果大量的数据都是更新操作,那么上述方案完全没有问题。 |
15
codingadog OP @xkeyideal 好的我看下这两种方案,如果主从方式的话,可能无法满足从机文件更新了,需要反向同步到主机上的问题,我去了解下这种反向同步能否满足
|
16
xkeyideal 2019-01-31 14:50:05 +08:00 1
@codingadog 建议先看看一些分布式的资料,据我的了解不存在你说的问题,主写成功,会自动同步给从
|
17
coolloves 2019-01-31 14:54:09 +08:00 1
我咋感觉最简单的就是某机器做主,开 nfs,然后挂载到从机上.
然后可以做个 rsync,夜间同步到某从机上.为了冗余,不考虑可不做. |
18
codingadog OP @xkeyideal 不,现在的问题是所有的机器上的文件都可能发生更新,没有固定的主从关系
|
19
codingadog OP @coolloves 没有固定的主从,任何一台机器上的文件都可能发生更新😂
|
20
xkeyideal 2019-01-31 15:21:59 +08:00 1
@codingadog 这个就需要你和你的团队从架构和需求上酌情处理了,别人也不了解你的业务场景,只能给出一些建议,上面也有很多人提供了同步的方案,都可以考虑,适合业务的才是最好的。
不可能别人给个方案,你目前的架构完全不需要变更就能直接使用的 |
21
coolloves 2019-01-31 15:45:06 +08:00 1
@codingadog nfs 就是共用一个存储啊,把指定的存储挂载到剩下的 n-1 台机器上,一台更新,即所有都使用最新的.
对性能方面会受到网络的影响,然后没有冗余. 胜在简单.高级点,可以考虑 gfs |
22
swulling 2019-01-31 15:49:38 +08:00 1
NFS 应该是可以的
|
23
jelen0101 2019-01-31 17:03:54 +08:00 1
lsyncd
|
24
codingadog OP 初步了解了一下各位的方案,正在尝试解决中😅非常感谢各位!
|
25
lynskylate 2019-01-31 22:28:35 +08:00 via Android 1
...为啥不直接用 oss ?
|
26
codingadog OP @lynskylate 内网环境,无法连接到外网🙏
|