分布式文件系统FastDFS

目录


一、FastDFS简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

二、FastDFS体系架构

1.FastDFS架构介绍

FastDFS 由跟踪服务器(Tracker Server)存储服务器(Storage Server)和客户端(Client)构成。即客户端请求 Tracker server 进行文件上传、下载,通过Tracker server 调度最终由 Storage server 完成文件上传和下载。

  1. Tracker server :负责任务调度,负载均衡管理以及Storage的注册中心功能,通过 Tracker server 在文件上传时可以根据一些策略找到Storage server 提供文件上传服务。
  2. Storage server :负责文件上传和下载以及文件的删除等管理功能。客户端上传的文件最终存储在 Storage 服务器上,Storage server 没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。
  3. Storage是一个集群,集群里面分为很多个Group,每个Group里面有不止一台Storage。同样的,Tracker也是集群。
    a. 可以做到负载均衡,因为并不是只有一台Storage为客户端提供服务,而是由Tracker动态地分配相对空闲的Storage给客户端提供服务,使得不会有个别Storage压力过大。
    b. 每个Group里面不止一个Storage,一个Group里面的所有Storage都是同步备份数据的,这是为了实现容灾,即使一台Storage宕机数据也不会丢失,除非全部宕机。
    c. 实现线性扩容,如果Storage的空间不够用了,就可以直接添加一组Storage,然后注册到Tracker中。分布式文件系统FastDFS

2.文件上传流程

  1. Storage会定时向Tracker上报自己的状态信息;
  2. 当Client给Tracker发送请求的时候,Tracker会查询是否有可用的Storage;
  3. 有的话就将Storage的信息给Client,Client在得到Storage的信息后,就将文件上传到Storage;
  4. Storage先是生成一个file_id,再将文件写入磁盘中保存,最后将file_id返回给Client。
    分布式文件系统FastDFS

3.使用FastDFS的优缺点

优点:

  1. FastDFS相比其它的分布式文件系统它适用小文件存储,它不对文件进行分块存储,也不用对文件进行合并处理,所以性能比GFS、HDFS等通用文件系统的性能要高。
  2. 管理端(Tracker)有高可用、负载均衡功能,可以承载高并发。
  3. 存储端(Storage)冗余备份,高可用、无限扩容。

缺点:

  1. 不支持文件分片,FastDFS不适合大文件存储。
  2. 同步机制不支持文件正确性校验,降低了系统的可用性。

4.FastDFS功能还有支持断点续传的功能

上一篇:分布式文件系统FastDFS详解


下一篇:Fast DFS(二)