dfs文件服务器高可用,分布式文件系统FastDFS如何做到高可用

原标题:分布式文件系统FastDFS如何做到高可用

什么是高可用?

通俗讲就是在任何异常情况下,系统依然能正常提供服务。尽量缩短系统不可用时间,以提高系统的可用时间。大多按照年可用时间99.99%为标准。平摊到每个月不可用时间在几十分钟内。如何做到高可用?1,系统设计上避免使用单点。2,自动故障转移。

我们下面来看看FastDFS是如何做到这两点的。通过下图来了解下FastDFS的架构。

b7e96b02fe03ab5febd328f85698fc55.png

fastdfs架构示意图

Tracker server主要作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。Tracker server可以由一台或者N台服务器组成。可以随时增加或者下线不会影响线上服务,同时可以根据线上服务器的压力情况随时增加或者减少。

Tracker负责管理Storage和group。每个storage会去连结Tracker,并切报告自己所属的group等信息,并保持和Tracker周期性的心跳。tracker根据storage的心跳信息建立 group-storage server list的映射表。所有的元信息很少,都存储在内存中。这样就使Tracker非常容易扩展。

Storage server:可以称为存储服务器。客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。存储系统由一个或多个组组成,组与组之间的文件是相互独立的,所有组的文件容量累加就是整个存储系统中的文件容量。

文件上传流程

997d534cac3f17135152d91a3a3143cc.png

1,Client想上传图片,它先向Tracker进行询问,Tracker查看一下登记信息之后,告诉Client哪个storage当前空闲,Tracker会把IP和端口号都返回给Client,Client在拿到IP和端口号之后,便不再需要通过Tracker,直接便向Storage进行上传图片,Storage在保存图片的同时,会向Tracker进行汇报,告诉Tracker它当前是否还留有剩余空间,以及剩余空间大小。汇报完之后,Storage将服务器上存储图片的地址返回给Client,Client可以拿着这个地址进行访问图片。

我们来了解下文件索引信息。主要包括:组名,虚拟磁盘路径,数据两级目录,文件名。如下所示:

cc7e997f95210790faef38bb8ad2a69d.png

我们来看看文件索引的具体解释和组成部分:

组名:文件上传后所在的storage组名称,在文件上传成功后由storage服务器返回,需要客户端自行保存。

虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。

数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。文件名:与文件上传时不同。是由存储服务器根据特定信息生成,

文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息

文件下载流程

如图所示FastDFS下载的时序图

936672c070787514d92c2e42df24cb91.png

图解如下

Storage Server启动后会主动去连结Tracker Server,周期性向Tracker Server发送心跳。

然后client询问tracker下载文件的storage,参数为文件标识(组名和文件名),tracker返回一台可用的storage。

最后client直接和storage通讯完成文件下载。

我们在来看看FastDFS下载的运行的示意图

00f8857c3f172ee8de113e7210e9f8ab.png

FastDFS下载

如果FastDFS压力过大此时我们如何在对这个架构进行优化呢?我们可以使用ATS做文件缓存服务。

4d6f1a92b71cc0adc9fa796d00659a5c.png

增加缓存

我们通过对FastDFS中的Tracker server和Storage server 的工作流程的了解,以及上传和下载的具体场景图列,可以发现它做到了冗余,做到了自动故障转移。返回搜狐,查看更多

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值