FastDFS主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡。FastDFS非常适用于基于文件服务的站点,。
FastDFS由跟踪服务器(tracker server)、**存储服务器(storage server)和客户端(client)**三个部分组成,主要解决海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size < 500MB)为载体的在线服务,例如图片分享和视频分享网站。
FastDFS架构如下所示:
fastdfs由三部分组成:
- 跟踪服务器tracker server,负责管理和协调stroage server 和 group
- 存储服务器stroage server,负责存储文件,支持小文件合并为trunk,以及大文件存储
- 客户端client,对外提供统一接口,上传、下载、删除等操作
各部分的作用:
1.Tracker Server
每个storage在启动后会主动连接tracker server,上报自己的信息如 所属group、最近同步完成时间,并保持周期性心跳,tracker根据心跳信息,建立group->[storage server]的映射表
cluster中每一个tracker是完全对等的,所有的tracker都接受stroage的心跳信息,生成元数据信息来提供读写服务。
2.Storage Server
storage server以group为单位,每个group内有多个storage,数据互相备份,各group之间独立
以group为单位的存储能进行应用数据隔离、负载均衡,比如将不同应用数据存到不同的group就能隔离应用数据和负载均衡,缺点是group容量受单机storage容量限制
group内每个storage的存储依赖于本地文件系统,storage可配置多个数据存储目录,比如有10块磁盘,分别挂载在/data/disk1-/data/disk10,则可将这10个目录都配置为storage的数据存储目录。
storage在启动后会创建二级目录,每级256个,共65535个文件,新的文件会根据fileid进行二次hash,路由到一个二级子目录中,作为本地文件存储
文件上传吞吐量
1.增加group内storage能否提升上传效率?
不会,实际会影响上传速度,因为需要多备份
2.增加group数量是否能提升上传效率?
可以,上传请求量大时可以提升并发上传效率
文件下载吞吐量
1.增加group内storage能否提升下载效率?
可以,下载请求量大时可以提升并发下载效率
2.增加group数量是否能提升下载效率?
不能,因为各group间独立,数据隔离
推荐学习 https://xxetb.xetslk.com/s/p5Ibb