FastDFS

一、初识

  • DFS (Distributed Files System) 分布式文件管理系统;
  • FastDFS是tb架构师用C语言编写,开源的轻量级,支持Linux,Unix
  • 主要是为解决海量数据存储问题,特别适合中小文件(4KB < file_size <500MB)为载体的在线服

二、组成

                由三个部分:★客户端 Client        ★ 跟踪服务器 Tracker        ★存储服务器 Storage 

FastDFS 认知

  •     客户端 Client
            上传下载数据的服务器,即开发项目所部署的服务器
  •     存储服务器 Storager 

            提供容量和备份服务;以 组(group或称卷volume) 为单位,每个 group 内可以有多台 storager,组内数据互为备份(如上图可理解为纵向备份),故此处提醒:存储空间以组内最小的容量为准,所以最好在配置时同一个组内的storager容量要相同,以免浪费存储的空间。

            以组group为单位组织存储能方便进行应用隔离、负载均衡、副本数定制(即组内的纵向storager数量增删)  

  •     跟踪服务器 Tracker

          主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳,所有的Tracker都接收storage的心跳信息,生成元数据信息来提读写服务


三、使用

        FastDFS 提供基本文件访问接口,upload、dowload、append、delete等,

  • 文件上传
FastDFS 认知
  • 文件下载
FastDFS 认知
  • 文件的同步

        当文件上传成功后,后台线程会将文件同步至同组group内的其他storager(即纵向的存储器中),并且每个storage写文件后,会同时写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步。

        storage的同步进度会作为元数据的一部分汇报到tracker上,tracke在选择读storage的时候会以同步进度作为参考


相关文章:

  • 2021-11-18
  • 2022-01-14
  • 2022-01-06
  • 2021-10-01
  • 2022-03-07
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
猜你喜欢
  • 2021-05-16
  • 2021-05-13
  • 2022-12-23
  • 2021-10-30
  • 2021-07-05
  • 2021-09-27
相关资源
相似解决方案