01|什么事FastDFS
FastDFS是用C语言编写的一款开源的轻量级分布式文件系统。它对文件进行管理,功能包括:
- 文件存储
- 文件同步
- 文件访问(文件上传、文件下载)等
解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
02|FastDFS特性
- 分组存储,灵活简洁、对等结构,不存在单点
- 文件不分块存储,上传的文件和OS文件系统中的文件一一对应
- 文件ID由FastDFS生成,作为文件访问凭证,FastDFS不需要传统的name server
- 和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块
中、小文件均可以很好支持,支持海量小文件存储
- 支持多块磁盘,支持单盘数据恢复
- 支持相同内容的文件只保存一份,节约磁盘空间
- 支持在线扩容
- 支持主从文件
- 存储服务器上可以保存文件属性(meta-data)V2.0网络通信采用libevent,支持大并发访问,整体性能更好
- 下载文件支持多线程方式,支持断点续传
03|FastDFS的构成
FastDFS由客户端(Client)跟踪服务器(Track Server)和存储服务器(Storage Server)构成客户端
作为业务请求的发起方,通过专有接口,使用TCP/IP协议与Track Server和Storage Server进行数据交互跟踪器
Tracker Server作用是负载均衡和调度,通过Tracker Server在文件上传时可以根据一些策略找到Storage Server提供文件上传服务,可以将Tracker成为追踪服务器或调度服务器存储节点
Storage Server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage Server 没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。可以将Storage称为存储服务器。存储节点中的服务器均可以随时增加或者下线而不会影响线上服务