本系列文章将使用FastDFS框架来搭建一个基于分布式文件系统的网络云盘
1. FastDFS架构分析
FastDFS是由国人余庆所开发,其项目地址是:https://github.com/happyfish100
FastDFS主要功能包括:文件存储,同步和访问,设计基于高可用和负载均衡。FastDFS非常适用于文件服务和站点。
FastDFS由跟踪服务器(Tracker Server),存储服务器(Storage Server)和客户端(client)三个部分组成。主要解决海量数据存储问题,特别使用以中小文件(建议范围:4KB<file_size<500MB)为载体的在线服务,例如图片分享和视频分享网站。
FastDFS架构如下:
Tracker Server
Tracker是FastDFS的协调者,负责管理所有的Storage Server和Group,每个storage在启动后会连接Tracker,告知自己所属的group等信息,并保持周期性的心跳,tracker根据storage的心跳信息,建立group==>[storage server list]映射表。
Tracker需要管理的元信息很少,会全部存储在内存中;另外tracker上的元信息都是由storage汇报的信息生成的,本身不需要持久化任何数据,这样使得tracker非常容易扩展,直接增加tracker机器即可扩展为tracker cluster来服务,cluster里每个tracker之间是完全对等的,所有tracker都接受storage的心跳信息,生成元数据信息来提供读写服务。
Storage Server
Storage server(后简称storage)以组(卷,group或volume)为单位组织,一个 group内包含多台storage机器,数据互为备份,存储空间以group内容最小的storage为准,所以建立同一个group内的多个storage尽量配置相同,以免造成存储空间的浪费。
以group