专栏首页逸鹏说道分布式小文件系统fastdfs与weedfs的对比

分布式小文件系统fastdfs与weedfs的对比

小编小文件存储用的一直是Mongodb,Tair和FastDFS风评一直很不错,最近1年Net界用的比较多的基本上都是FastDFS或者Mongodb(分布式图片服务器集群)。我也是今天才看到seaweedfs,小编挺看好的,Net和Go的项目混搭在中大型Net技术主线公司是越来越常见了~~~~

最近拿一台双核1G的kvm vps搭建了一个图片的服务器,前面用百度云加速扛着,有了个专业图片存储及CDN的样子。每天还是有50W左右的PV,流量在30G左右。总结一下最近接触过的两个分布式小文件系统weedfs和fastdfs。

astdfs的详细介绍看这里=》 https://github.com/happyfish100/fastdfs

weedfs官方地址= >https://github.com/chrislusf/seaweedfs

在两个系统中都有一个负责管理存储节点或者存储卷的服务,weedfs中叫master,而fastdfs中叫做tracker。下面是在文档中对各自的master的解释

FastDFS 服务端有两个角色:跟踪器( tracker )和存储节点( storage )。跟踪器主要做调度工作,在访问上起负载均衡的作用。Weed - FS 的 master server 选择管理数据卷( data volumes )而不是数据块,每个数据卷大小是 32GB ,能够保存大量的文件( 小文件 ),每个存储节点能够拥有很多个数据卷, master 节点只需要保存这些卷的元数据就可以了,并且这些数据量很少,并且大部分情况下是很少会变化的。所有的卷都由 master 服务器来管理, master 服务器包含了卷 id 和卷服务器的 mapping ,这些信息基本不变,可以很好的缓存起来。

根据上面的解释就可以知道,master在上传和下载文件的过程中都承载着定位文件需要上传或者下载的具体的卷。

在具体存储小文件的时候,weedfs是通过将多个小文件的二级制存储到一个大文件中,然后通过索引进行具体的位置的定位。而fastdfs是通过文件夹散列的方式将文件直接存储在硬盘上面。但从这里就可以看出来,在海量小文件的情况下,weedfs产生的文件的元数据是很少的,因他他至于每个数据卷的元数据。而weedfs会产生大量的元数据,因为他依赖的是操作系统的文件管理系统,对每一个文件的定位以及验证都是通过元数据来进行的。

从上面的对比就可以看出来,在海量小文件的情况下肯定是weedfs的性能更高,因为他的文件元数据是相当少的,所以这部分经常被访问的元数据能够被操作系统或者内存直接缓存住,这样就减少了对磁盘的操作,而磁盘的操作只需要进行一次,就是在进行文件读取的时候。而fastdfs回产生海量的文件的元数据,大到一定程序了操作系统的缓存或者内存就无法进行全部存储了,这样就造成了在硬盘上进行随机读写来查找文件了,两个效率和速度以及对系统和硬盘造成的负载显而易见了。

总结:小文件存储不同于大文件,大文件的性能和时间消耗,主要在传输的带宽等限制上。而小文件主要在于系统本身的读取速度上。所以综合来说,个人觉得weedfs比fastdfs更先进,更能承受数量更大的小文件

本文分享自微信公众号 - 我为Net狂(dotNetCrazy)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Win10 IIS本地部署网站运行时图片和样式不正常?

    后期会在博客首发更新:http://dnt.dkill.net 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4...

    逸鹏
  • 初识SignalR~仿QQ即时聊天(群发,单发)(Web,WPF等Demo演示)【上】

    官方demo:http://www.asp.net/signalr/overview/getting-started/tutorial-getting-star...

    逸鹏
  • 解析微服务架构(一):什么是微服务

    解析微服务架构系列文章将分几篇描述微服务的定义、特点、应用场景、企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架...

    逸鹏
  • windows神器推荐 TreeSize

    笔记本电脑经过一段时间的使用之后,硬盘空间慢慢的消耗殆尽,此时系统会不断的提示您及时清理硬盘空间,而面对如此浩瀚的文件和文件夹,显得力不从心,到底该删除哪些文件...

    算法与编程之美
  • 分布式锁在JPA ID生成器中的应用

    在现实生活中,很多场景都需要ID生成器,比如说电商平台的订单号生成、银行的叫号系统等。针对不用的业务需求,ID生成策略也不一样,比如电商平台的订单号可以由时间序...

    Bruce Li
  • Linux文件操作命令

    (1)文件命名规则 Linux系统中的文件名称最长可以有256个字符,文件名可以由字母,数字,下划线,减号及一些特殊符号(不推荐使用)。 (...

    软测小生
  • golang之map数据类型

    超蛋lhy
  • 不用再找换脸教程了,飞桨PaddleGAN给你一键式体验

    前几天发布的一篇文章中我们曾提到国外的AI捏脸应用FaceApp引发大量关注。它能让人一键变成老人,一键返老还童,一键由男变女,一键破涕为笑,一键失去头发……

    代码医生工作室
  • 不用再找换脸教程了,飞桨PaddleGAN给你一键式体验

    前几天发布的一篇文章中我们曾提到国外的AI捏脸应用FaceApp引发大量关注。它能让人一键变成老人,一键返老还童,一键由男变女,一键破涕为笑,一键失去头发……

    算法工程师之路
  • 9 个使用前必须再三小心的 Linux 命令

    Linux Shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券