分布式文件系统

145 阅读3分钟

传统文件系统

分布式文件系统.png

  • 传统文件系统格式
    • ntfs/fat32/ext3/ext4
  • 可以被挂载和卸载

分布式文件系统

文件系统的全部,不在同一台主机上,而是在很多台主机上,多个分散的文件系统组合在一起,形成了一个完整 的文件系统。 分布式文件系统1.png

分布式文件系统
1.需要网络
2.多台主机
    不需要在同一地点
3.需要管理者
4.编写应用层的管理程序

FastDFS

fastdfs介绍

  • fastdfs概述
是用c语言写的一款开源的分布式文件系统
    余庆·淘宝架构师
为互联网量身定制,充分考虑了冗余备份,负载均衡,线性扩容等机制,注意高可用、高性能等指标
    ·冗余备份:纵向扩容
    ·线性扩容:横向扩容
可以用很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务
    ·图床
    ·网盘
  • fastDFS框架中的三个角色

    • 追踪器(Tracker) 管理者 ---守护进程
      • 管理存储节点
    • 存储节点(storage) ---守护进程
      • 无限扩展(无上限)的存储节点
    • 客户端 ---客户端 不是守护进程,这是程序猿编写的程序
      • 文件上传
      • 文件下载
  • fastDFS三个角色之间的关系

    • 上传文件: faskdfs三个角色之间的关系.png

    • 下载文件:

faskdfs三个角色之间的关系_下载.png

追踪器
  • 最先启动追踪器
存储节点
  • 第二个启动的对象
  • 存储节点启动后,会单独开一个线程
    • 汇报当前存储节点的容量,和剩余容量
    • 汇报数据的同步情况
    • 汇报数据被下载的次数
客户端
  • 最后一个启动
    • 上传
      • 连接追踪器,询问存储节点的信息
        • 我要上传1G的文件,询问哪个存储节点有足够的容量
        • 追踪器查询,得到结果
        • 追踪器将查到的存储节点的IP+port发送给客户端
        • 通过得到IP和端口连接存储节点
        • 通过Socket发送文件内容数据给存储节点(上传文件)
    • 下载
      • 连接追踪器,询问存储节点的信息
        • 问一下,要下载的文件在哪一个存储节点
        • 追踪器查询,得到结果
        • 追踪器将查到的存储节点的IP+port发送给客户端
        • 通过得到IP和端口连接存储节点
        • 通过Socket发送文件内容数据给客户端(下载文件)
fastDFS集群

集群.png

  • 追踪器集群
    • 为什么集群
      • 避免单点故障
    • 多个Tracker如何工作?
      • 轮询工作
    • 如何实改配置文件
  • 存储节点集群
    • fastDFS管理存储节点的方式
      • 通过分组的方式来完成
    • 集群方式(扩容方式)
      • 横向(增加容量)
        • 添加一台新的主机->容量增加
        • eg.上方的group1和group2。
        • 不同组之间的主机不需要通信
      • 纵向(数据备份)
        • 将新的主机放到现有的组中
        • 每个组的主机数增加
          • 每台主机之间的关系就是相互备份的关系
          • 同一组主机之间需要通信
    • 如何实现?