目录
•FastDFS简介
• 系统架构
• 相关术语
• 同步机制
• 通信协议
• 目录结构
• 安装和运行
• 和其他系统对
FastDFS简介
开源的轻量级分布式文件存储系统
拥有负载均衡,可以解决大容量的文件存储和高并发访问的问题
磁盘阵列(RAID)的软件方式实现,利用廉价的I硬盘进行文件存储
轻易实现存储服务器在线扩容 功能
支持相同内容的文件只保存一份,节约磁盘空间
只可以通过Client API访问,不支持通过POSIX访问方式
适用场景为大中型网站,一般用来存储资源文件(图片、视频等等)
系统架构
整体架构图
文件上传流程示意图
具体过程描述:
1. client客户端询问tracker上传到的storage,此时不需要附加参数;
2. tracker会返回一个可供使用的storage;
3. client客户端直接和可用的storage通讯,这样就完成了文件的上传。
文件下载流程示意图
1. client客户端询问tracker下载文件的storage,参数为文件标识(组名和文件名);
2. tracker马上提供一台可用的storage;
3. client客户端和storage通讯,直接完成文件的下载。
相关术语
•Tracker Server:跟踪服务器,负责调度,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的桥梁。
• Storage Server:存储服务器,文件和meta data都保存到存储服务器上
• group:组,也可称为卷。同组内服务器上的文件是完全相同的
• 文件标识:包括两部分:组名和文件名(包含路径)
• meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768
同步机制
•同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
•文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
•源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
•上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
通信协议
•协议包由两部分组成:header以及body
• header共10字节,格式如下: –8 bytes body length – 1 byte command – 1 byte status
• body数据包格式由具体的命令的决定,body可以为空
运行时目录结构
1.tracker server
2.storage server
安装和运行命令
FastDFS和传统的集中存储方式的对比
FastDFS和mogileFS的全面对比
閱讀更多 Java開發之路 的文章