fastdfs 概述
****************************
简 介
fastdfs由c语言编写,具有负载均衡、冗余备份、动态扩容等特点,
提供上传、下载、分布式存储等功能,适合操作中小文件(4kb ~ 500m)
client:应用程序作为客户端,向文件服务端发送文件上传、下载请求
track server
处理客户端的请求,向客户端返回可用的storage server;
接受storage server的周期性心跳,维护group==》server list;
不持久化数据,所有数据都存储在内存中,支持动态拓展
storage server
以group为单位存储数据,一个group可以有多个storage server;
同一group上的storage server存储的数据相同,不同group上的storage server存储的数据不同;
group数据存储容量等于group中存储容量最小的storage server的存储容量;
当存储容量不足时,可以添加新的group动态扩展
****************************
上传
1. 客户端发送上传请求到tracker server,
2. tracker server选择group:轮询、客户端指定group、剩余空间多的group
3. 再选择group中的storage返回给客户端:轮询、ip排序、storage server优先级
4. 客户端获取storage后,向storage发送文件,storage server为文件分配存储目录:轮询、剩余空间多的目录优先
5. storage server生成field id,路由到二级子目录进行存储,当存储完成后,向客户端返回文件名;
6. storage server写入完成后,会向同组storage server同步文件
****************************
下载
客户端向tracker server发送文件下载请求,
tracker server根据文件名得出group,返回一个可用的storage server,
客户端根据file id查找文件并下载