一:什么是FastDFS?
FastDFS是一个开源的分布式文件系统,由tracker serverstorage server和client三个部分组成,主要解决了海量数据存储和负载均衡等问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体。
二:
1、Storage server
Storage server(后简称storage)以组(卷,group)为单位,一个group内包含多台storage机器,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。
以group为单位存储能方便的进行应用隔离(同一应用数据装到不同的组去)、负载均衡(将应用分配到不同的group,缺点是恢复时间会很长)、副本数定制(storage可配置多个数据存储目录)
2、Tracker server
Tracker是FastDFS的协调者,负责管理所有的storage server和group,每个storage在启动后会连接Tracker,告知自己所属的group等信息,并保持周期性的心跳,tracker根据storage的心跳信息,建立group到[storage server list]的映射表。还在客户端发送请求后查询可用storage,挑选storage返回给客户端ip和端口号
上传流程:
3:同步原理
在客户端向storage上传文件成功后,会有后台线程将数据同步到同group的其它storage里,storage会保存同步进度,在下载文件时,Tracker选择storage会以storage记录的同步进度作为参考标准
文件下载流程: