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的构成

    image.png
    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称为存储服务器。存储节点中的服务器均可以随时增加或者下线而不会影响线上服务