1. FastDFS简介
FastDFS是一款开源的轻量级分布式文件系统,由国人余庆所开发,其项目地址:https://github.com/happyfish100
纯C实现
,支持Linux,FreeBSD等UNIX系统类google FS,不是通用的文件系统,
只能通过专有API访问
,目前提供了C、Java和PHP API等FastDFS可以看做是基于文件的
key value pair
存储系统,称作分布式文件存储服务更为合适特别适合大中型网站使用(建议范围:4KB < file_size <500MB 如:图片、文档、视频等),为互联网应用量身定做,追求高性能和高扩展性
2. FastDFS架构及机制
2.1 FastDFS架构
Tracker Server:跟踪服务器,主要做调度工作,在访问中起负载均衡的作用。在内存中记录集群中group和storage server的状态信息,是连接Client和Storage server的枢纽。因为相关信息全部在内存中,Tracker server的性能非常高,一个较大的集群(比如上百个group)中有3台就足够了。
Storage Server:存储服务器,文件和文件属性(meta data)保存到存储服务器上。
存储服务器分组(group),不同组之前不能通信 存储服务器主动与追踪服务器通信 追踪服务器可以设置多个,角色是平等相同的
2.2 相关术语
Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。
Storage Server:存储服务器,文件和meta data都保存到存储服务器上
group:组,也可称为卷。同组内服务器上的文件是完全相同的
文件标识fid:包括两部分:组名和文件名(包含路径)
meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768
2.3 FastDFS机制
FastDFS上传机制
FastDFS下载机制
FastDFS同步机制
同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
偷懒不总结了,直接参考吧!哈哈,以下看完应该就没什么问题了。