FastDFS是由淘宝的余庆所开发,是一个轻量级、高性能的开源分布式文件系统,用纯C语言开发,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容、相同内容只存储一份等功能,适合有大容量存储需求的应用或系统.做分布式系统开发时,其中要解决的一个问题就是图片、音视频、文件共享的问题,分布式文件系统正好可以解决这个需求.同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等.
源码开放下载地址: https://github.com/happyfish100
2. FastDFS系统架构

1️⃣.client询问tracker服务器,应该将文件上传到哪个storage,此时不需要附加参 数;
2️⃣.tracker服务器返回一台可用的storage服务器信息(端口号+ip);
3️⃣.client直接和storage服务器通讯,完成文件上传.
4. FastDFS文件下载流程
1️⃣.client询问tracker服务器去哪个storage服务器下载文件,此时携带的参数为文件标识(卷名和文件名);
2️⃣.tracker服务器返回一台可用的storage服务器信息(ip+端口号);
3️⃣.client直接和storage服务器通讯,完成文件下载.
5. FASTDFS术语FastDFS两个主要的角色: Tracker Server 和 Storage Server.
1️⃣.Tracker Server: 跟踪服务器,主要负责调度storage服务器节点与client通 信,在访问上起负载均衡的作用,同时记录storage服务器节点的运行状态,是连接client和storage服务器节点的枢纽.
2️⃣.Storage Server: 存储服务器,保存文件和文件的meta data(元数据).
3️⃣.Group: 文件组,也可以称为卷.同组内服务器上的文件是完全相同的,做集群时往往一个组会有多台服务器,上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用.
4️⃣.meta data: 文件相关属性,键值对(Key Value Pair)方式,如width=1024,height=768,和阿里云OSS的meta data相似.