传统文件系统
- 传统文件系统格式
- ntfs/fat32/ext3/ext4
- 可以被挂载和卸载
分布式文件系统
文件系统的全部,不在同一台主机上,而是在很多台主机上,多个分散的文件系统组合在一起,形成了一个完整 的文件系统。
分布式文件系统
1.需要网络
2.多台主机
不需要在同一地点
3.需要管理者
4.编写应用层的管理程序
FastDFS
fastdfs介绍
- fastdfs概述
是用c语言写的一款开源的分布式文件系统
余庆·淘宝架构师
为互联网量身定制,充分考虑了冗余备份,负载均衡,线性扩容等机制,注意高可用、高性能等指标
·冗余备份:纵向扩容
·线性扩容:横向扩容
可以用很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务
·图床
·网盘
-
fastDFS框架中的三个角色
- 追踪器(Tracker) 管理者 ---守护进程
- 管理存储节点
- 存储节点(storage) ---守护进程
- 无限扩展(无上限)的存储节点
- 客户端 ---客户端 不是守护进程,这是程序猿编写的程序
- 文件上传
- 文件下载
- 追踪器(Tracker) 管理者 ---守护进程
-
fastDFS三个角色之间的关系
-
上传文件:
-
下载文件:
-
追踪器
- 最先启动追踪器
存储节点
- 第二个启动的对象
- 存储节点启动后,会单独开一个线程
- 汇报当前存储节点的容量,和剩余容量
- 汇报数据的同步情况
- 汇报数据被下载的次数
客户端
- 最后一个启动
- 上传
- 连接追踪器,询问存储节点的信息
- 我要上传1G的文件,询问哪个存储节点有足够的容量
- 追踪器查询,得到结果
- 追踪器将查到的存储节点的IP+port发送给客户端
- 通过得到IP和端口连接存储节点
- 通过Socket发送文件内容数据给存储节点(上传文件)
- 连接追踪器,询问存储节点的信息
- 下载
- 连接追踪器,询问存储节点的信息
- 问一下,要下载的文件在哪一个存储节点
- 追踪器查询,得到结果
- 追踪器将查到的存储节点的IP+port发送给客户端
- 通过得到IP和端口连接存储节点
- 通过Socket发送文件内容数据给客户端(下载文件)
- 连接追踪器,询问存储节点的信息
- 上传
fastDFS集群
- 追踪器集群
- 为什么集群
- 避免单点故障
- 多个Tracker如何工作?
- 轮询工作
- 如何实改配置文件
- 为什么集群
- 存储节点集群
- fastDFS管理存储节点的方式
- 通过分组的方式来完成
- 集群方式(扩容方式)
- 横向(增加容量)
- 添加一台新的主机->容量增加
- eg.上方的group1和group2。
- 不同组之间的主机不需要通信
- 纵向(数据备份)
- 将新的主机放到现有的组中
- 每个组的主机数增加
- 每台主机之间的关系就是相互备份的关系
- 同一组主机之间需要通信
- 横向(增加容量)
- 如何实现?
- fastDFS管理存储节点的方式