【FastDFS】分布式文件系统

一、简介

       FastDFS是一个C语言编写的轻量级的开源分布式文件系统。它的主要功能包括文件存储文件同步文件访问以及高容量和负载均衡设计。

二、组成

       

       1、client:就是客户端。

      2、Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录Storage Server的状态,是连接Clinet和Storage Server的枢纽。

       3、Storage Server:存储服务器,文件和meta data都保存到存储服务器上

       4、Volume :卷,也成为组,同组内服务器上的文件是完全相同的

       5、 文件标识:包括两部分:组名和文件名(包含路径)

       6、meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

        Tracker和Storage没有主从之分。采用轮询方式进行访问。如果所访问的Tracker或Storage不能提供服务,则换一个。

扫描二维码关注公众号,回复: 1059337 查看本文章

三、文件上传和下载

  1、文件上传



        ①clinet询问tracker上传到的storage,不需要附加参数。

        ②tracker返回一台可用的storage

        ③client和storage通讯,完成文件上传。返回文件标志(volume name+file name)

  2、文件下载    



     ①client询问tracker下载文件的storage,参数为文件标志(组名+文件名)

     ②tracker返回一台满足条件的可用storage

     ③client和storage通讯,完成文件下载。

   3、文件名

      客户端上传文件返回的文件ID如下图所示。此文件ID为以后访问该文件的索引信息:文件索引信息包括:组名(group1)+虚拟磁盘路径(M00)+数据两级目录(/00/00)+文件名

      

      需要注意的是文件名与上传时不同。是由Storage根据特定信息生成。

四、同步机制

       同一组内的storage之间是对等的,文件上传、删除等操作可以在任意一台storage Server上进行。

       同步文件只能在同组内的storage server 之间进行,采用push方式,即源服务器同步到目标服务器。

       新增一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据) 同步给该新增的服务器。

五、运行时目录结构

       

                   

       


猜你喜欢

转载自blog.csdn.net/qq_26545305/article/details/79883599