【FastDFS】分布式文件系统
一、简介
FastDFS是一个C语言编写的轻量级的开源分布式文件系统。它的主要功能包括文件存储、文件同步和文件访问以及高容量和负载均衡设计。
二、组成
1、client:就是客户端。
2、Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录Storage Server的状态,是连接Clinet和Storage Server的枢纽。
3、Storage Server:存储服务器,文件和meta data都保存到存储服务器上
4、Volume :卷,也成为组,同组内服务器上的文件是完全相同的
5、 文件标识:包括两部分:组名和文件名(包含路径)
6、meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768
Tracker和Storage没有主从之分。采用轮询方式进行访问。如果所访问的Tracker或Storage不能提供服务,则换一个。
三、文件上传和下载
1、文件上传
①clinet询问tracker上传到的storage,不需要附加参数。
②tracker返回一台可用的storage
③client和storage通讯,完成文件上传。返回文件标志(volume name+file name)
2、文件下载
①client询问tracker下载文件的storage,参数为文件标志(组名+文件名)
②tracker返回一台满足条件的可用storage
③client和storage通讯,完成文件下载。
3、文件名
客户端上传文件返回的文件ID如下图所示。此文件ID为以后访问该文件的索引信息:文件索引信息包括:组名(group1)+虚拟磁盘路径(M00)+数据两级目录(/00/00)+文件名
需要注意的是文件名与上传时不同。是由Storage根据特定信息生成。
四、同步机制
同一组内的storage之间是对等的,文件上传、删除等操作可以在任意一台storage Server上进行。
同步文件只能在同组内的storage server 之间进行,采用push方式,即源服务器同步到目标服务器。
新增一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据) 同步给该新增的服务器。
五、运行时目录结构