fastDFS


fastDFS:

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

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

冗余备份: 纵向扩容     线性扩容: 横向扩容     可以很容易搭建一套高性能的文件服务器集群提供文件 上传、下载 等服务。 比如网盘     分布式文件系统: 1. 需要有网络 2. 多台主机   不需要在同一地点 3. 需要管理者 4. 编写应用层的管理程序   不需要编写,开源的很多   2. fastDFS框架中的三个角色 追踪器 ( Tracker ) - 管理者 - 守护进程 管理存储节点 存储节点 - storage - 守护进程 存储节点是有多个的 客户端 - 不是守护进程, 这是程序猿编写的程序 文件上传 文件下载   3. fastDFS三个角色之间的关系

 这图要看明白

1. 追踪器

最先启动追踪器

2. 存储节点

第二个启动的角色

存储节点启动之后, 会单独开一个线程主动连接追踪器 汇报当前存储节点的容量, 和剩余容量 汇报数据的同步情况 汇报数据被下载的次数 3. 客户端 最后启动 上传 连接追踪器, 询问存储节点的信息 我要上传1G的文件, 询问那个存储节点有足够的容量 追踪器查询, 得到结果 追踪器将查到的存储节点的IP+端口发送给客户端 通过得到IP和端口连接存储节点 将文件内容发送给存储节点 下载 连接追踪器, 询问存储节点的信息 问一下, 要下载的文件在哪一个存储节点 追踪器查询, 得到结果 追踪器将查到的存储节点的IP+端口发送给客户端 通过得到IP和端口连接存储节点 下载文件 4. fastDFS集群 - (了解即可) 1. 追踪器集群 为什么集群? 避免单点故障 多个Tracker如何工作? 轮询工作 如何实现集群? 修改配置文件 2. 存储节点集群 fastDFS管理存储节点的方式? 通过分组的方式完成的 集群方式(扩容方式) 横向扩容 - 增加容量 添加一台新的主机 -> 容量增加了 假设当前有两个组: group1, group2 需要添加一个新的分组 -> group3 新主机属于第三组 不同组的主机之间不需要通信 纵向扩容 - 数据备份 假设当前有两个组: group1, group2 将新的主机放到现有的组中 每个组的主机数量从1 -> N 这n台主机的关系就是相互备份的关系 同一个组中的主机需要通信 每组的容量 == 容量最小的这台主机  扩容方式:   横向扩容     新建一个组,添加一个主机,增加了容量,比如原有10T的容量已经用完了,新增一个主机后总容量是20T,总的可用容量10T   纵向扩容     在原有的组中添加主机,虽是增加了主机,但是是备份,总的可用容量还是10T,数据大小不会变化,每组的容量 等于 容量最小的这台主机    (1组中有1T,2T,3T三个主机,最小容量是1T,最大容量是3T,数据存储容量是1T,备份关系)

相关