fastDFS 介绍
FastDFS 是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡,同时支持存储服务器在线扩容。
1. 系统架构图
Storage Server
Storage server(后简称storage)以组(卷,group或volume)为单位组织,一个 group 内包含多台 storage 机器,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。
Tracker Server
Tracker 是 fastDFS 的协调者,负责管理所有的 Storage Server 和 group,每个 Storage Server 在启动后会连接 Tracker,告知自己所属的 group 等信息,并保持周期性的心跳,Tracker 根据 Storage 的心跳信息,建立 group ==> [Storage Server List] 的映射表。
Client
客户端,作为业务请求的发起方,通过专有接口,使用 TCP/IP 协议与跟踪器服务器或存储节点进行数据交互。
协议内容如下:
- 协议包由两部分组成:header和body
- header共10字节,格式如下:
- 8 bytes body length
- 1byte command
- 1byte status
- body数据包格式由取决于具体的命令,body可以为空
2. 上传流程
• 1. client 询问 tracker 上传到的 storage,不需要附加参数;
• 2. tracker 返回一台可用的 storage;
• 3. client 直接和 storage 通讯完成文件上传。
3. 下载流程
• 1. client 询问 tracker 下载文件的 storage,参数为文件标识(组名和文件名);
• 2. tracker 返回一台可用的 storage;
• 3. client 直接和 storage 通讯完成文件下载。
参考: