我正在考虑建立一种方法来自动实现办公室中多个工作站的数据冗余和同步。我们的办公室设置方式是,没有人有固定的办公桌,任何人都可以登录并在网络上的任何工作站上工作。
一种方法是挂载 NFS/家文件系统。但是,这会降低文件访问速度,因为所有内容都需要从网络上拉出,而且会造成单点故障。
这是总体思路。
[WS-A]--- (DRBD) ---[BACKUP]--- (DRBD) ---[WS-B/C/D/etc]
这个想法是,有人在 WS-A 上工作,保存的任何文件都会自动与另一台机器同步(备份)。因此,数据现在可以在多台机器上使用。
理想情况下,数据应在网络上的所有工作站 WS-B、WS-C 等之间同步和传播。这种传播和同步不需要是即时的,只要同一个用户可以在另一个时间登录任何工作站(但一次只能登录一台机器)并找到他们最新的文件,就可以异步进行。
此外,如果任何工作站崩溃,设置将在该机器重新连接到网络后自动恢复并重新同步,从而防止出现裂脑问题。
- 使用 DRBD 是否能实现这一点?
- 我们是否需要担心可怕的同步问题?
PS:我们目前有一个使用 glusterfs 的类似设置,到目前为止它似乎可以工作,只是在通过它访问大型 git 存储库时性能会下降。
答案1
在我看来,将工作站放入 DRBD 集群是一个糟糕的主意。我怀疑这是否可靠,因为现在用户无法再重新启动他们的工作站了。
相反,请确保您的 NFS 服务器不再是单点故障,并在此时设置 HA 系统。由于这并不容易,我仅链接到本教程秒。
答案2
您尝试设置的内容让我想起了 Windows 移动配置文件的工作方式。
- 从服务器获取配置文件到本地磁盘
- 注销时将配置文件从本地磁盘同步回服务器
基本上,您可以在登录和从中央服务器(当然应该是 HA)注销期间使用 rsync 实现相同的功能。
我认为 DRBD 配置对于您的目的来说有点太静态了。
如果您有一个用户有多个登录名,那么使用 DRBD 会遇到麻烦。如果您使用,则rsync -e ssh -auHS --delete
最后更新将获胜,并且注销前的最新删除将传播。
顺便说一句:通过 ssh 进行同步也会使这一切变得安全。