FastDFS分布式文件系统总结

分布式存储

首先,什么是分布式存储,简而言之,就是将数据存储到多个存储设备(服务器)上。

分布式与传统网络存储系统区别

传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。

分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

FastDFS

FastDFS是一款开源的分布式文件系统,通过纯C实现,支持Linux, FreeBSD等Unix系统类Google FS, 不是通用的文件系统,只能够通过专有API访问,目前提供了C,Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性 FastDFS可以看做是基于文件的key-value存储系统,称为分布式文件存储服务更为合适。

功能包括:文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量存储和负载均衡的问题。

  • 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标

  • 可以很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

    • 图片服务器
    • 图床
  1. fastDFS特点:

    • 应用层级的文件系统
    • 不能挂载和卸载,也就是不能进行mount操作
  2. fastDFS框架中的三个角色

    • 追踪器 - tracker
    • 存储节点 - storage
    • 客户端 - client
  3. fastDFS三个角色之间的关系

    • Client和Storage主动连接Tracker。

    • Storage主动向Tracker报告其状态信息

      • 磁盘剩余空间
      • 文件同步状况
      • 文件上传下载次数
    • Storage会启动一个单独的线程来完成对一台Tracker的连接和定时报告。

    • 一个组包含的Storage不是通过配置文件设定的,而是通过Tracker获取到的。

FastDFS集群

  1. Tracker集群

    • Tracker server之间是相互平等关系同时提供服务
    • Tracker server不存在单点故障。
    • 客户端请求Tracker server采用轮询方式,如果请求的tracker无法提供服务则换另一个tracker。
  2. Storage集群

    • Storage集群采用了分组存储方式, 由一个或多个组构成
    • 集群存储总容量为集群中所有组的存储容量之和
    • 一个组由一台或多台存储服务器组成,组内的Storage server之间是平等关系
    • 不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步,从而保证同组内每个storage上的文件完全一致的。
    • 一个组的存储容量为该组内存储服务器容量最小的那个
  3. FastDFS的扩容分纵向扩容与横向扩容

    • 横向 扩容
      • 增加容量
      • 添加group组
    • 纵向扩容

      • 数据备份
      • 当前组的最大容量

        • 存储节点中容量最小的那个
      • 所有存储节点组名必须一样


文章结束了,但我们的故事还在继续
坚持原创技术分享,您的支持将鼓励我继续创作!