免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3751 | 回复: 1
打印 上一主题 下一主题

[FastDFS] fastdfs实现去中心化? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-01 15:15 |只看该作者 |倒序浏览
这几天一直在看fastdfs的源码,我也说说自己的看法,笑纳笑纳
1.fastdfs中存在tracker,这说明一定程度上还是存在单点的问题,虽然可以部署多个tracker以减低出现故障的概率。
从fastdfs的conf可以看出,tracker与tracker,storage与storage都不会主动通讯,文件的同步必须通过tracker与storage的一个交互;
我的看法:我们可以参考一下cassandra这样的设计模型“去中心化”;对于一个分布式存储系统来说,消除单点故障是显得相当重要;
如果我们去除tracker,tracker的工作谁来代替?我理解的tracker在fastdfs里的作用是一个跟踪,协调的作用;
这里以一个下载的例子来表达我的想法,(其实跟现在fastdfs的思想相差不远)
1).以文件名作为索引向storage请求,利用hash算法,判断改文件存储在哪个group上面(group的概念跟fastdfs一样);hash的过程可以在客户端实现,也可以在storage上面实现;
2).根据返回值的值,重定向到文件真实存储的storage上面;然后后面的下载过程跟现在的一样;
3).关于文件的同步可以采取跟现在fastdfs相同的策略
4).对于增减storage的问题,业界都有成熟的处理方法;这里提供一个思想:http://www.yankay.com/wp-content ... 03_6730095064772663

我想表达的也是希望能把tracker的工作移到storage来,实现去中心化
fastdfs具备了一个分布式存储系统的本质 ,如果转型为去中心化的分布式存储系统也是可行的;

2.fastdfs采用的是select的模型,这个模型受限于linux对于文件描述符的最大数限制;虽然这个参数可以调整,但也是治标不治本的,
毕竟select模型采用轮询的方法去检查可操作的描述符,这样select的效率是存在线性递减的问题;而且这样对高并发支持不算很好,
对于一个分布式存储系统来说,能够支持高并发,可以大大提高系统的可用性;


以上是我的愚见,没有说fastdfs的坏话的意思;
作者独立实现这一个分布式存储系统并实现开源的精神非常值得我们学习,
更难得的是可以耐心回答我们的问题,看得出余老师是一个很nice的人
谢谢!
谢谢!

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
2 [报告]
发表于 2010-05-01 16:50 |只看该作者
回复 1# alohadc

>>1.fastdfs中存在tracker,这说明一定程度上还是存在单点的问题,虽然可以部署多个tracker以减低出现故障的概率。
从fastdfs的conf可以看出,tracker与tracker,storage与storage都不会主动通讯,文件的同步必须通过tracker与storage的一个交互;

更正一下,同组内的storage server会直接连接其他storage server,将文件同步过去。


>>我的看法:我们可以参考一下cassandra这样的设计模型“去中心化”;对于一个分布式存储系统来说,消除单点故障是显得相当重要;
如果我们去除tracker,tracker的工作谁来代替?我理解的tracker在fastdfs里的作用是一个跟踪,协调的作用;
这里以一个下载的例子来表达我的想法,(其实跟现在fastdfs的思想相差不远)
1).以文件名作为索引向storage请求,利用hash算法,判断改文件存储在哪个group上面(group的概念跟fastdfs一样);hash的过程可以在客户端实现,也可以在storage上面实现;
2).根据返回值的值,重定向到文件真实存储的storage上面;然后后面的下载过程跟现在的一样;
3).关于文件的同步可以采取跟现在fastdfs相同的策略
4).对于增减storage的问题,业界都有成熟的处理方法;这里提供一个思想:http://www.yankay.com/wp-content ... 03_6730095064772663
我想表达的也是希望能把tracker的工作移到storage来,实现去中心化
fastdfs具备了一个分布式存储系统的本质 ,如果转型为去中心化的分布式存储系统也是可行的;

如果非要去中心化,当然也是可以做到的。
LZ可以了解一下我写的另外一个分布式的hash系统FastDHT,它就是无中心的。
对于存储key value pair的高效分布式hash系统,去中心化是非常有意义的。
但对于分布式文件系统,因为系统瓶颈最要在于磁盘IO,去中心化效果并不明显。
中心化和去中心化,各有利弊,不存在孰优孰劣,我认为主要看适用的场合。


>> 2.fastdfs采用的是select的模型,这个模型受限于linux对于文件描述符的最大数限制;虽然这个参数可以调整,但也是治标不治本的,
毕竟select模型采用轮询的方法去检查可操作的描述符,这样select的效率是存在线性递减的问题;而且这样对高并发支持不算很好,
对于一个分布式存储系统来说,能够支持高并发,可以大大提高系统的可用性;

已经考虑对FastDFS的网络通信模型进行改造,采用libevent,支持大并发连接,还可以提高系统整体性能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP