开源分布式文件系统比较

要使用分布式文件系统来降低成本,于是搜寻了开源的分布式文件系统。

 

经过安装部署和测试,把我使用中碰到的一些问题总结一下, 希望对大家有所帮助, 我也有一些问题没有搞懂,希望和大家一起交流,共同进步。

 

第一:CEPH

网上搜索了一些资料, 说 ceph 性能最高,C++编写的代码,支持Fuse,并且没有单点故障依赖, 于是下载安装, 由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持, 显然我使用的 RHEL5 的内核还不支持 btrfs文件系统, 于是下载最新的内核进行升级, 搞了2天没有升级成功, 编译一次都要耗费1个多小时才能完成,最后发现最新版的 ubuntu 系统支持btrfs文件系统, 于是安装 ubuntu 的虚拟机,btrfs 文件系统搞定了, 但是启动ceph的相关进程出错, 无法启动成功。所以谈不上对其进行过测试。

 

CEPH中使用了一个比较先进的算法 crush算法, 据翻译出来,为分布式基于对象的存储系统设计了一个可升级的伪随机的数据分布函数,它能够有效地管理数据对象和存储设备,而不需要通过一个中心目录。由于大系统都是动态的,CRUSH被设计成为一个当把不需要的数据迁移最小化时,能方便的增加或移除存储设备。这个算法提供了一个大范围的不同种类的数据复制和可靠性机制,以及根据用户自定义的策略来分配数据,这种策略迫使数据复制从故障领域分离出来。

 

另外CEPH使用的文件系统为btrfs, 这个文件系统具有很多先进的特性, 为下一代Linux使用的文件系统。

BTRFS最终可能会给ZFS等带来更多威胁,它具有在线碎片整理功能(只有固态盘有这项功能)、Copy-On-Write技术、数据压缩、镜像、数据条带和快照等等。

  另外,BTRFS在数据存储方面比ext更完善。它包括一些逻辑卷管理和RAID硬件功能,可以对内部元数据和用户数据进行检验和,同时内嵌了快照功能。ext4也可以实现以上一些功能,但是需要与文件系统和逻辑卷管理器进行通信。

 

这么多先进的功能, 可惜现在还无法消受啊。。。。。。

 

第二:glusterfs

网上说glusterfs比较不错, 稳定,适合大型应用, 关键是没有单点故障依赖,C语言的代码, 支持FUSE,于是下载安装研究。 安装配置还算简单,启动后进行测试。

开始感觉确实不错,很爽。 后来用压力测试工具对其吞吐量进行测试 , 发现性能不能满足我们的生产需求,不知道是哪里的配置问题,

我们测试的都是大文件的读操作和大文件的写操作, 吞吐量在 5MB/秒左右, 显然不能满足要求。但是没有找到具体的瓶颈,毕竟程序是别人写的,要查瓶颈也不容易。

 

关于 glusterfs的详细的资料, 可以看这位弟兄的文章, 他做的比较深入  。

http://zhoubo.sinaapp.com/?cat=22

 

第三:moosefs

这个网上说性能不错,有单点故障依赖, C代码编写,支持FUSE, 下载试试吧。

安装配置还算简单。很快就搭建好环境了, 于是进行测试。测试性能还不错。吞吐量在15MB/秒以上。

 

第四:mogilefs 

网上说这个是性能最高的, 不过是perl编写的代码, 对外提供API来进行使用, 搭建相对比较复杂一点, 因为需要安装很多依赖的第三方perl包,另外还要安装Mysql数据库来支持。

安装完毕后, 服务器端起来了, 客户端有JAVA, PHP,  PERL, RUBY 等开发的, 我需要的是要支持 FUSE 的, 但是这个分布式的文件系统,对FUSE的支持需要安装一个PERL与C通信的模块, 这个模块死活编译不过去, 最后无法测试成功,无奈只能有时间了继续研究。

 

第五:fastDFS

网上说是“国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能”, 这不是扯蛋吗 ? Mogilefs 是perl写的, 如果 fastDFS是在 mogilefs 的基础上改进的话, 应该也是perl写的, 但是下载了fastDFS的代码后, 人家都是C的代码, 怎么可能是在mogilefs的基础上改进呢 ?看了一下fastDFS具体的结构,准确的说应该是“借鉴了MogileFS的思路”,而不能说“在MogileFS的基础上改进”。

 

我安装了一下, 安装还算简单, 不支持fuse, 上传文件后会生成一个http的下载地址, 通过http的方式进行下载。这种方式显然不适合我想要的生产环境。

 

 

下面是一个网友写的 FastFDS和MogileFS的对比文章, 感觉比较客观真实, 所以在这里给大家转帖一下。

FastDFS设计时借鉴了MogileFS的一些思路。FastDFS是一个完善的分布式文件存储系统,通过客户端API对文件进行读写。可以说,MogileFS的所有功能特性FastDFS都具备,MogileFS网址:http://www.danga.com/mogilefs/。

另外,相对于MogileFS,FastDFS具有如下特点和优势:
1. FastDFS完善程度较高,不需要二次开发即可直接使用;
2. 和MogileFS相比,FastDFS裁减了跟踪用的数据库,只有两个角色:tracker和storage。FastDFS的架构既简化了系统,同时也消除了性能瓶颈;
3. 在系统中增加任何角色的服务器都很容易:增加tracker服务器时,只需要修改storage和client的配置文件(增加一行tracker配置);增加storage服务器时,通常不需要修改任何配置文件,系统会自动将该卷中已有文件复制到该服务器;
4. FastDFS比MogileFS更高效。表现在如下几个方面:
  1)参见上面的第2点,FastDFS和MogileFS相比,没有文件索引数据库,FastDFS整体性能更高;
  2)从采用的开发语言上看,FastDFS比MogileFS更底层、更高效。FastDFS用C语言编写,代码量不到2万行,没有依赖其他开源软件或程序包,安装和部署特别简洁;而MogileFS用perl编写;
  3)FastDFS直接使用socket通信方式,相对于MogileFS的HTTP方式,效率更高。并且FastDFS使用sendfile传输文件,采用了内存零拷贝,系统开销更小,文件传输效率更高。
5. FastDFS有着详细的设计和使用文档,而MogileFS的文档相对比较缺乏。
6. FastDFS的日志记录非常详细,系统运行时发生的任何错误信息都会记录到日志文件中,当出现问题时方便管理员定位错误所在。
7. FastDFS还对文件附加属性(即meta data,如文件大小、图片宽度、高度等)进行存取,应用不需要使用数据库来存储这些信息。
8. FastDFS从V1.14开始支持相同文件内容只保存一份,这样可以节省存储空间,提高文件访问性能。

 

第六:Lustre

本来还对这个分布式文件系统抱有无限的希望, 被Oracle公司收购后, 这个东西连下载地址都没有了。。。。。。, 狂晕一吧!!!

如果那个弟兄找到下载地址, 麻烦给通知一下, 谢谢。

时间: 2024-10-06 03:34:13

开源分布式文件系统比较的相关文章

TFS分布式文件系统应用

TFS是淘宝开源的一套高性能文件存储系统,在阿里广泛应用, 除了自建文件系统,在应用上云的大趋势下,还可以使用阿里云的对象存储OSS服务:阿里云对象存储OSS首页 一.关于TFS TFS(Taobao File System)是一个高可扩展.高可用.高性能.面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问. TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各

分布式文件系统-FastDFS

  一.FastDFS简介 一.FastDFS简介 FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100  FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡.  支持存储服务器在线扩容,支持相同的文件只保存一份,节约磁盘.  FastDFS只能通过Client API访问,不支持POSIX访问方式.  FastDFS适合中大型网站使用,用来存储资源文件(如:图片.文档.视

C#和.NET中如何利用FastDFS打造分布式文件系统

背景 海量存储.系统负载的迁移.服务器吞吐的瓶颈等等 让文件系统独立于业务系统 提高整个项目的扩展性以及可维护性 目前主流的方案 MFS FASTDFS GFS LUSTRE HADOOP等等 我选择的是FASTDFS 用一句广告语来说 "免费.快速.找得到".FASTDFS的作者是淘宝的资深架构师余庆,很诙谐.很有爱!!!其他方案还没玩过 暂不评论. 简介 FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux.FreeBSD等UNIX系统类google FS,不是通

分布式基础学习【一】 —— 分布式文件系统

分布式基础学习 所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS.Map/Reduce.BigTable 为框架核心的分布式存储和计算系统.通常如我一样初学的人,会以Google这几份经典的论 文作为开端的.它们勾勒出了分布式存储和计算的一个基本蓝图,已可窥见其几分风韵,但 终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性.幸好我们还有 Open Source,还有Hadoop.Hadoop是一个基于Java实现的,开源的,分布式存储和计算的项 目.作为这个领域最

GlusterFS分布式文件系统的安装配置教程

GlusterFS主要应用在集群系统中,具有很好的可扩展性.软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案.可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块). 由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境.目前适合应用于大数据量的离线应用,下面一起来看GlusterFS分布式文件系统的安装配置 GlusterFS是一个开源的分布式文件系统,用户可以使用多台

优质博文list(分布式文件系统/存储/搜索)

 转载请注明出处:http://blog.csdn.net/zbf8441372 把一些好的,有用的博文搜集在这里,陆续更新,主题大都是涉及到分布式系统,文件和存储之类,还有云计算,包括一些强大的,热门的open-source,包括NoSQL生态系统,Hadoop家族,lucene全文搜索工具,一些Apache项目等等.另外一些比较好的站点和博客地址,可以拓展阅读. 20. REST相关 深入浅出REST 对REST的比较通俗,全面的基本介绍 解答有关REST的十点疑惑 19. 分布式系统工程实

我们用C语言开发出的YFS(分布式文件系统)

与"演而优则导"一样,技术圈子里,"编而优则创业"的资深技术人士也有很多.而和App Store明晃晃的榜单不同,选择企业级私有云(非面向个人用户的公有云)的创业者多数会选择从某一层面(云存储.云服务器.优化工具.管理平台.安全设计等)来切入,初期帮客户做部分功能的定制开发,逐步建立其产品,有些经验后承接一些项目形成相关的方案,做大删除后树立行业典型应用模板,并积极引入风投,在区域或行业维度上争取更多的盈利空间. 商业环境本身特点决定了这类创新型企业很难采用&quo

分布式文件系统GlusterFS

转自于:http://www.cnblogs.com/zitjubiz/archive/2012/11/30/Distributed_File_System_glusterFS.html GlusterFS是"一套可扩展的开源集群文件系统,并能够轻松为客户提供全局命名空间.分布式前端以及高达数百PB级别的扩展性."这种说法口 气可不小,但GlusterFS也确实把解决大问题--真正的"大"问题当作己任.事实上,Gluster的最大容量为72 brontobyte(没

当下流行的分布式文件系统大阅兵

当下流行的分布式文件系统大阅兵 本文对目前数种分布式文件系统进行简单的介绍.当前比较流行的分布式文件系统包括:Lustre.Hadoop.MogileFS.FreeNAS.FastDFS.NFS.OpenAFS.MooseFS.pNFS.以及GoogleFS. Lustre(www.lustre.org) lustre是一个大规模的.安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护.该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数量存储系