2020-03-11 企业级实时复制其他方案

1. 大型企业级高并发文件实时复制方案

除了前面讲的数据实时复制方案外,企业运维工作中还有很多方案。例如:
1)Inotify(Sersync)+Rsync复制方案是文件级别的复制,其优点是简单、易用,缺点是速度不快。
2)DRBD复制方案是文件系统级别的复制,基于block块进行复制,其优点是速度快,缺点是主节点工作时,备节点数据处于不可用状态。
3)借用第三方软件的复制功能复制文件,如MySQL复制(主从复制)、Oracle、MongoDB自身的复制工具。
4)在业务上开发程序双写不同的服务器,即直接写两台服务器。对于复制延迟的问题,可以利用产品业务逻辑解决(如读写分离、备读不到读主)。

2. 企业级解决NFS存储实时复制案例

有人觉得NFS性能不高,其实在共享存储时,可以使用读写分离的方案。具体方案如下:
1)用户上传时把文件传到NFS上,这部分写的并发要比读小很多,可能写读比只有1:20。
2)然后借用Inotify(Sersync)+Rsync方案把NFS上的数据实时复制到本地Web服务器(静态服务器)。
3)Web服务直接读本地的目录实时复制过来的文件,如果本地没有,再去NFS共享上读文件,缓解延迟带来的问题。
4)经过实测,Inotify(Sersync)+Rsync方案可以单进程多线程并发处理200个100KB左右的文件,而不会延迟,当然还可以开多进程,拆分监控不同的二级目录。
下图为实现NFS存储读写分离的结构示意图。

实现NFS存储读写分离的架构示意图

3. 中小规模集群架构的静态读写启用NFS存储部署的说明

前面讲的是把NFS共享数据实时复制到BACKUP服务器,如果将来的静态服务不是挂载到NFS,而是要弃用NFS的话,就需要同时实时把数据也拷贝到所有静态Web节点(大容量)一份,那么在实际部署时,就需要事先在所有的静态Web服务上搭建好Rsync服务(也可以用远程Shell模式,而不搭建Rsync服务),然后在NFS的Sersync的推送配置里增加推送服务器即可。例如:假设静态服务器的IP为10.0.0.9/10,那么在配置里加上如下配置即可:

[root@nfs01 sersync]# vim confxml.xml
 22     
 23     
 24         
 25             
 26             
 27                 
 28             
 29                 
 30         

最终的架构图如下所示:

从NFS服务器到BACKUP服务器的数据实时复制进度图

4. 其他网站后端存储解决方案

在实际工作中,还有很多网站后端存储解决方案。例如:
1)使用CDN加速以及内网搭建文件缓存服务(squid、nginx、varnish)以减轻存储压力。
2)把多个文件目录分配到不同的NFS服务器上,相当于把NFS服务器拆分成多台。
3)弃用NFS方案。
4)使用分布式文件系统(如FastDFS、MFS)。

你可能感兴趣的:(2020-03-11 企业级实时复制其他方案)