第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍( 四 )


  • 文件名:与文件上传时不同 。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息 。
  • 2.5 FastDFS的文件同步写文件时,客户端将文件写至group内一个storage server即认为写文件成功,storage server写完文件后,会由后台线程将文件同步至同group内其他的storage server 。
    每个storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步 。
    storage的同步进度会作为元数据的一部分汇报到tracker上,tracke在选择读storage的时候会以同步进度作为参考 。
    2.6 FastDFS的文件下载客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件 。
    第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍

    文章插图
    跟upload file一样,在downloadfile时客户端可以选择任意tracker server 。tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求 。tracker根据请求的文件路径即文件ID 来快速定义文件 。
    比如请求下边的文件:
    group1/M00/02/44/Swtdssdsdfsdf.txt
    1. 通过组名tracker能够很快的定位到客户端需要访问的存储服务器组是group1,并选择合适的存储服务器提供客户端访问 。
    2. 存储服务器根据“文件存储虚拟磁盘路径”和“数据文件两级目录”可以很快定位到文件所在目录,并根据文件名找到客户端需要访问的文件 。

    第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍

    文章插图

    经验总结扩展阅读