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


  • group :组,也可称为卷 。同组内服务器上的文件是完全相同的 ,同一组内的storage server之间是对等的,文件上传、 删除等操作可以在任意一台storage server上进行。
  • meta data :文件相关属性,键值对( Key Value Pair) 方式,如:width=1024,heigth=768。

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

    文章插图
    2.1 Tracker集群FastDFS集群中的Tracker server可以有多台,Trackerserver之间是相互平等关系同时提供服务,Trackerserver不存在单点故障 。客户端请求Trackerserver采用轮询方式,如果请求的tracker无法提供服务则换另一个tracker 。
    2.2 Storage集群为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式 。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量 。一个卷由一台或多台存储服务器组成,卷内的Storage server之间是平等关系,不同卷的Storageserver之间不会相互通信,同卷内的Storageserver之间会相互连接进行文件同步,从而保证同组内每个storage上的文件完全一致的 。一个卷的存储容量为该组内存储服务器容量最小的那个,由此可见组内存储服务器的软硬件配置最好是一致的 。卷中的多台存储服务器起到了冗余备份和负载均衡的作用
    在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务 。当存储空间不足或即将耗尽时,可以动态添加卷 。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量 。
    采用分组存储方式的好处是灵活、可控性较强 。比如上传文件时,可以由客户端直接指定上传到的组也可以由tracker进行调度选择 。一个分组的存储服务器访问压力较大时,可以在该组增加存储服务器来扩充服务能力(纵向扩容) 。当系统容量不足时,可以增加组来扩充存储容量(横向扩容) 。
    2.3 Storage状态收集Storage server会连接集群中所有的Tracker server,定时向他们报告自己的状态,包括磁盘剩余空间、文件同步状况、文件上传下载次数等统计信息 。
    2.4 FastDFS的上传过程FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用 。
    Storage Server会定期的向Tracker Server发送自己的存储信息 。当Tracker Server Cluster中的Tracker Server不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker 。
    当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storage server 。当分配好storage server后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录 。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件 。
    第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍

    文章插图
    客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息 。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名 。