web集群 文件服务器,Web集群中文件存储系统的解决方案

Web集群中,文件系统的分布式是最重要的一个环节,因为多个Web节点需要访问同一套文件系统,多个节点之间访问文件需要完全同步,跟一台机器上的文件一样。

首先Web集群需要一个Load Balancer,然后多个节点共享数据库和文件系统,比如访问网站example.com,上传了一个文件,这个时候通过LB转发到了A节点,那么文件保存到了A机器,然后我们刷新页面,LB转发到了B节点,如果这个文件在B机器上不存在,就会产生错误。

在Drual系统中就是Files目录,比如我们在A网站上生成了一个image style,如果LB再访问到B上面,如果这个image style不存在,就会出错。

上面的问题,就是我们本文要解决的Web集群中的文件共享。

WEB集群中,文件同步的方案主要有一下几个解决方案。

Rsync

Rsync是最简单的解决方案,通过Linux的rsync命令,就可以非常迅速的实现多个服务器的文件同步。但是Rsync有致命的缺点,首先,rsync会有延时,因为rsync是定时同步,不可能做到及时同步,因此会出现延时,比如传到A机器的图片在B机器上看不见。

说到延时,可以通过session sticky的方案来解决,session sticky简单来说就是访问A机器的用户,会在之后的请求都访问A机器,这样就可以保证用户在下次访问文件的时候不出错。

但是,rsync还有一些问题,比如,A机器上面有一个文件,而B机器上面没有这个文件,从理论上讲,我们不知道是B机器删除了这个文件,还是A机器新加了这个问题,因此这个时候『同步』就是一个很头疼的问题。

因此,Rsync不是一个有效的解决方案。

61f1bf2fe4baf6e9a6b5faa135342fd8.png

NFS

比较简单的解决方案就是使用NFS服务,NFS做完linux系统广泛通用的文件共享系统,从NFSv1,NFSv2到NFSv3和NFSv4,NFS也是非常稳定和久经考验的解决方案。

NFS的缺点也是比较明显的,单节点风险,比如NFS服务挂掉,整个文件就能访问,网站Down掉,因此NFS只能作为一个暂存的解决方案,使用NFS一定要有一个备份系统。

0ccf3048b7fbcd3008019a266b1c6826.png

NFS集群

说到NFS的缺点,我们可以使用NFS集群的方案来解决,NFS+DRBD, DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案,因此可以通过DRBD分发实现NFS的复制,来解决单节点NFS的缺点。

DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他是有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台 主机之上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。本地节点(主机)与远程节点(主机)的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的。

DRBD需要构建在底层设备之上,然后构建出一个块设备出来。对于用户来说,一个DRBD设备,就像是一块物理的磁盘,可以在商脉内创建文件系统。DRBD所支持的底层设备有以下这些类:

1. 一个磁盘,或者是磁盘的某一个分区;

2. 一个soft raid 设备;

3. 一个LVM的逻辑卷;

4. 一个EVMS(Enterprise Volume Management System,企业卷管理系统)的卷;

5. 其他任何的块设备。

85ec5be2a996713823a597808e12af73.png

更多参考:

PS:本文参考了网上相关文章以及图片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值