分布式文件存储FASTDFS

  • 目录
  • 概 述
  • 小结
  • 参考资料和推荐阅读


LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code and KPI, Keep progress,make a better result.
Survive during the day and develop at night。

目录

概 述

一、什么是FastDFS?
DFS(distributed file system):分布式文件系统。
FastDFS是一种开源的轻量级分布式服务器,用来解决大容量存储的问题,并充分考虑了冗余备份,负载均衡,线性扩容等机制,注重高可用、高性能等指标。特别适合中小文件,对以文件为载体的在线服务提供了非常好的解决方案。

主要功能:文件存储,文件同步,文件访问(文件上传、文件下载)等。
二、FastDFS由什么组成?
     FastDFS由跟踪服务器(TrackerServer)、存储服务器(Storage Server)和客户机(Client)构成。
     
     跟踪服务器 TrackerServer:
     主要起到调度工作,起到均衡作用,负责管理所有的Storage Server 和 Group ,每个Storage 在启动之后会自动连接Tracker ,告知自己所署的Group的信息,并保持周期性心跳,Tranker 会根据Storger的心跳信息,建立Group -> Storage Serverlist 【因为一个Group 可以由多个StorageServer构成】,由于Storage会保持周期性的心跳,所以Tracker 需要管理的元信息就很少,会全部存储在内存中,本身并不需要持久化任何数据,这样的话,就使得Tracker非常容易扩展,仅仅增加Tracker 即可扩展为 Tracker Cluster 集群服务。Cluster里的每个Tracker 之间是完全对等的,所有的Tracker都接收Storage的心跳信息,生成元数据信息来提供读写服务。

存储服务器 StorageServer:

主要提供容量和备份服务,以Group为单位,每个Group 内有多个Storage Server,数据互相备份,当一个Storage Server损坏时,可以通过其他的Storage Server进行恢复。

     以Group 为单位组织存储能方便的进行应用隔离、负载均衡、副本数定制【副本数即为Storage Server 的数量】,比如将不同的应用数据存储到不同的Group就能实现简单的应用数据隔离,同时可以根据应用不同的访问特性来分配不同的Group,做到负载均衡。

客户端 Client:
此时,这个客户端并不是用户所在的客户端,而是部署了我们项目的服务器,每个客户端(搭载项目的服务器)都需要安装Nginx,客户端(搭载项目的服务器)和文件存储服务器之间的数据交流也是服务器之间的交流。

三、FastDFS工作流程
0:Storage Server会定时向Tracker Server 发送自己的Group以及文件夹信息。使得Tracker Server 会保留最近的元数据。
1:普通用户向Client(服务器)发送请求。

3:TrackerServer 会向Client反馈一个**不是太忙**的Storage Server 信息。
     4.         4:Client(服务器)收到消息,请求StorageServer。
     5:Storage Server存储数据,并反馈给Client一个id,这个id也就是存储文件的路径。
     (路径分为组名、文件夹、文件名和后缀,也就是后面用来访问此文件的方式)

小结

分布式文件存储FASTDFS

参考资料和推荐阅读

1.链接: 参考资料.