美文网首页
Fastdfs总结

Fastdfs总结

作者: 简书徐小耳 | 来源:发表于2019-02-22 15:36 被阅读0次

Fastdfs

1.FastDFS不对文件进行分块存储
2.集群由一个或多个组构成,集群存储总量等于所有组的存储容量之和(组内冗余备份)
3.纵向扩容就是增加组内每个服务器的磁盘大小,横向扩容就算增加多个组,每个组之间保存的数据不一样,
组内保存的内容是一致的,所以组内的机器配置最好一样 否则会以最小配置的机器大小为瓶颈。
4.每个storage 都会主动上传心跳信息到tracker,否则会被剔除。
5.tracker之间无leader 每个tracker之间的信息都是一样。同样组内的storage也是类似tracker
6.比如有2个tracker 一个组有3个storage,则storage需要把心跳信息发送给3个tracker。心跳信息包含
磁盘剩余空间,文件同步状况,文件上传下载次数等

Track

1.Tracker不记录文件索引信息,占用内存小
2.负载均衡和调度
3.tracker之间独立不通信

Storage

1.文件索引,直接根据返回的文件ID定位文件
2.而其他文件系统则需要存储文件索引信息,这样的角色通常称作NameServer
3.和每个tracker保持心跳
4.Storage server采用binlog文件记录文件上传、删除等更新操作。binlog中只记录文件名,不记录文件内容。
5.文件同步只在同组内的Storage server之间进行,采用push方式,即源头服务器同步给目标服务器。只有源头数据才需要同步,备份数据并不需要再次同步,否则就构成环路了。有个例外,就是新增加一台Storage server时,由已有的一台Storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
6.也就说我们文件存入某个storage,由他push给其他的storage
7.Storage server中由专门的线程根据binlog进行文件同步。为了最大程度地避免相互影响以及出于系统简洁性考虑,Storage server对组内除自己以外的每台服务器都会启动一个线程来进行文件同步。
8.storage在配置文件配置自己属于哪个组的 这样就可以被client通过tracker获取到

HTTP访问支持

我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传、下载、删除等操作。同时通过FastDFS的HTTP服务器来提供HTTP服务。但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者——淘宝的架构师余庆同学,为我们提供在FastDFS使用Nginx模块(fastdfs-nginx-module)。可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

相关文章

网友评论

      本文标题:Fastdfs总结

      本文链接:https://www.haomeiwen.com/subject/hoyeyqtx.html