集群+共享存储,如何实时同步到备用服务器?

发布于 2021-12-08 09:03:19 字数 745 浏览 876 评论 8

我的场景:两侧集群,简称A群和B群,每群里有4台web服务器,各服务器都挂载了一台网络存储至/opt/upload,其中有很多目录以及子目录,web服务器上的业务系统都会随时读写网络存储对其中的文件进行操作。B群是备用集群。为了保证两侧集群的文件是一样的,需要实时将A群的文件同步到B群的网络存储。

我现在的做法是在A群的4台web(web1,web2,web3,web4)服务器上都部署了sersync+rsync,在B群的某一台web服务器上部署rsync作为接收端。现在遇到的问题是假设web2在/opt/upload中创建了一个目录dir1,然后web1的业务系统向dir1中写入了一个文件file1,web1上的sersync并不会监听到相关事件,所以不会将file1同步到B群。

原因我分析是A群的4台web服务器上的sersync启动的时候是对当时的/opt/upload下的所有目录利用inotifywait添加了监听,而由于dir1是在web2上创建的,web2上sersync能监听到dir1的创建事件所以创建新的监听,而web2并不知道创建了dir1,所以不会监听该目录,从而对于其中的文件操作事件也不会监听,所以sersync不会执行同步。

我也考虑了使用inotify-tools+rsync,但发现只能这种方案是同步/opt/upload整个目录,而由于这个目录中有很多目录和子目录,并且存储量太大(接近2T),同步一次的时间太长,导致无法采用inotify-tools+rsync方案。

对于这种问题和使用场景,大家都是如何处理的,有什么更好的方案吗?

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

如此安好 2021-12-08 23:35:25

试试分布式文件系统呢?一般都会支持主从结构的

刘备忘录 2021-12-08 23:35:14

现在就是两地集群的,两地集群都有各自的存储

甜扑 2021-12-08 22:54:48

你没理解我的意思,我的意思是应用与存储分开,引用做自己的容灾,存储做自己的容灾,何来的存储同步的问题

心舞飞扬 2021-12-08 22:54:35

为何不是应用与存储分开,应用做容灾,存储也做容灾?

皇甫轩 2021-12-08 22:36:24

或者持久化目录结构信息,然后每个集群根据持久化的信息去取文件就好了,不需要rsyc之类的东西了

拥有 2021-12-08 21:38:42

这个恐怕不现实了,同样是因为同步一次耗时太长

猫九 2021-12-08 18:34:07

我的意思是 发个消息,然后异步去同步文件

如此安好 2021-12-08 14:03:02

发个消息,让另外一个集群主动同步一次?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文