两大主流开源分布式存储的对比:GlusterFS vs. Ceph

存储世界最近发生了很大变化。十年前,光纤通道SAN管理器是企业存储的绝对标准,但现在的存储必须足够敏捷,才能适应在新的基础架构即服务云环境内运行。

GlusterFS和Ceph是在现代云环境中表现最出色的两个敏捷存储系统。

在讲述GlusterFS和Ceph的相同点和区别之前,我们先谈一谈云环境中敏捷存储的一些关键点。

纵向升级和横向扩展。在云环境中,很容易向服务器添加更多存储空间和扩展可用存储池。Ceph和GlusterFS都符合这一需求,让新的存储设备可以轻松融入现有存储产品环境。

高可用。GlusterFS和Ceph都会使用复制方法将数据同时写入不同存储节点。这种运作模式会增加读写次数,但同时也确保了数据的可用性。以Ceph为例,数据在默认情况会被复制到三个不同的节点,确保数据副本一直可用。

通用的硬件。GlusterFS和Ceph的开发基础都是Linux操作系统(OS)。因此,对于硬件的唯一要求就是:能够正常运行Linux即可。由于几乎任何商品硬件都能运行Linux操作系统,只要选择这些存储技术,这些技术的使用单位就可以大幅节省硬件投入。实际上,有许多公司也正在投资专用于GlusterFS或Ceph的硬件平台,因为专门优化的硬件可以更快速高效地访问存储空间。

去中心化。正常的云环境绝对不会出现某个中心节点故障而引起的失效。对于存储系统而言,这就意味着不应该使用单个中央位置来保存元数据。GlusterFS和Ceph的解决方案实现了元数据访问分散化,从而提高了存储访问的可用性和冗余性。

接下来我们来谈谈GlusterFS与Ceph的差异和对比。顾名思义,GlusterFS是来自Linux世界的文件系统,并且完整遵守POSIX便携式操作系统接口标准。尽管您可以轻而易举地将GlusterFS集成到Linux的环境中,但是让GlusterFS和Windows环境紧密配合同样至关重要。

Ceph是一种全新的存储方法,被定义成Swift对象存储的一种实现。在对象存储中,应用程序不会直接写入文件系统,而是使用存储设施提供的直接API访问写入存储。因此,应用程序能够绕过操作系统的功能和限制。如果应用程序已经针对Ceph存储编写读写接口,那么应用程序的读写就和操作系统无关。结果是,在Windows环境中集成使用Ceph存储就和在Linux系统中一样简单。

当然,基于API来访问存储并非应用程序访问Ceph的唯一途径。为了实现最佳集成,Ceph也提供一个块设备接口,可以在Linux环境中作为常规块设备使用,使您能够使用Ceph来模拟常规Linux硬盘。Ceph还有CephFS,这是一个针对Linux环境编写的Ceph文件系统。

最近,SUSE已经添加了一个iSCSI接口,使得运行iSCSI客户端的客户端能像访问任何其他iSCSI目标一样访问Ceph存储。所有这些功能使Ceph成为异构环境的最佳选择,而不仅仅适用于Linux操作系统。

综上所述,Ceph是一个更容易集成到非Linux环境中的更灵活的产品。对于许多公司来说这就有足够的理由决定在Ceph而不是GlusterFS上构建存储产品。但是对于只需运行Linux的环境,灵活性不是重点,所以让我们再谈谈其他非常重要的事情:速度。

在GlusterFS与Ceph的比赛中已经有过若干次测试,目的是证明这些存储产品中的某一种比另一种更快,然而迄今并没有明显的赢家。GlusterFS的存储算法更快,并且由于GlusterFS在节点块中使用更多的层次化组织方式,这在某些情况下可能实现更高的速度,特别是如果和未经优化的Ceph对比的话。但另一方面,Ceph也提供了丰富的定制灵活性,这足以让Ceph与GlusterFS同样快速,结果就是,两者的性能对比都不够令人信服,不足以证实自己能完全超越对方。

最后,现实表明,Ceph独特的存取存储空间的方法正在使其成为更受欢迎的技术。事实证明更多的公司正在考虑Ceph技术而不是GlusterFS,部分原因也在于GlusterFS仍然与Red Hat关系密切。例如,SUSE没有GlusterFS的商业实施案例,而Ceph已经被开源社区大量采用,市场上已经出现多种基于Ceph的产品。结论就是:在GlusterFS与Ceph的竞争战斗中,Ceph事实上已经比GlusterFS略胜一筹。

————————————————

版权声明:本文为CSDN博主「CloudXli」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/CloudXli/article/details/79681699

两大主流开源分布式存储的对比:GlusterFS vs. Ceph的更多相关文章

  1. 6 大主流 Web 框架优缺点对比:15篇前端热文回看

    摘自:http://blog.csdn.net/VhWfR2u02Q/article/details/78993079 注:以下文章,点击标题即可阅读 <6 大主流 Web 框架优缺点对比> ...

  2. 6大主流开源SQL引擎总结,遥遥领先的是谁?

    根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL.本文就带你来了解这些主流的开源SQL引擎!背景 ...

  3. 3大主流NoSQL数据库性能对比测试报告

    近日,知名独立基准测评机构Bankmark,针对目前市面上主流的NoSQL数据库SequoiaDB.MongoDB以及Cassandra三款NoSQL数据库产品做了性能对比测试并发布测试报告.在所有的 ...

  4. 6 大主流 Web 框架优缺点对比(转)

    英文: Kit Kelly   译文:oschina https://www.oschina.net/translate/web-frameworks-conclusions 是该读些评论和做一些总结 ...

  5. Java Web J2EE下的两大框架SSH和SSM对比

    当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...

  6. Ceph与Gluster之开源存储的对比

    一.Ceph与Gluster之开源存储的对比 一.Ceph与Gluster的原理对比 Ceph和Gluster是Red Hat旗下的成熟的开源存储产品,Ceph与Gluster在原理上有着本质上的不同 ...

  7. 11大Java开源中文分词器的使用方法和分词效果对比

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

  8. 大数据领域两大最主流集群管理工具Ambari和Cloudera Manger

    不多说,直接上干货! 目前啊,都知道,大数据集群管理方式分为手工方式(Apache hadoop)和工具方式(Ambari + hdp 和Cloudera Manger + CDH).  手工部署呢, ...

  9. 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

随机推荐

  1. sys.dm_exec_query_stats的total_worker_time的单位是微秒还是毫秒

    该视图sys.dm_exec_query_stats存放的就是当前所有执行计划的详细信息,比如某条执行计划共占CPU多少等等.因为该视图对编译次数.占用CPU资源总量.执行次数等都进行了详细的记录,所 ...

  2. 案例-使用MapReduce实现join操作

    哈喽-各位小伙伴们中秋快乐,好久没更新新的文章啦,今天分享如何使用mapreduce进行join操作. 在离线计算中,我们常常不只是会对单一一个文件进行操作,进行需要进行两个或多个文件关联出更多数据, ...

  3. vue中用解构赋值的方法引入组件

    在一个组件中引入很多其他组件的时候会显得代码很臃肿,这个时候可以用es6的解构赋值的方法 在components中写入一个index.js文件 在该js文件中导出你想要引入的组件 再接着就可以在该组件 ...

  4. stm32 SysTick系统定时器

    它是一个24位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自系统时钟,还可以通过系统时钟8分频后获取 当定时器计数到0时,将从LOAD 寄存器 ...

  5. Postman --> YApi

    初始 Postman,才知其如此强大,慢慢接触学习吧~ “Modern software is built on APIs,Postman helps you develop APIs faster” ...

  6. 【Day4】4.Request对象之Get请求与URL编码

    import urllib.parse as up import urllib.request as ur kw = '动漫' data ={ 'kw':kw, 'ie':'utf-8', 'pn': ...

  7. JavaScript(js)概述

    一.特点: JavaScript和java并没有直接关系,就像雷锋与雷峰塔似的没有联系: js是面向对象的,是运行在浏览器端的编程语言: 主要解决的是前端与用户的交互问题,包括交互数据. 二.js引入 ...

  8. Linux学习笔记(十三)磁盘管理(一):磁盘分区

    一.查看磁盘分区使用状况 df [选项] 其中,-l是默认选项 -a 会显示出包括0字节分区在内的所有文件系统分区 -t 后须跟一个参数,这个参数为文件系统的名字,用来在系统中查找属于该文件系统的分区 ...

  9. Go语言中的defer

    可以用作一些资源的释放. 1.在一个函数内的defer执行顺序是先写的后执行,后写的先执行(遵循栈结构) func DeferTest1(){ defer fmt.Println("我是 d ...

  10. 手写KMeans算法

    KMeans算法是一种无监督学习,它会将相似的对象归到同一类中. 其基本思想是: 1.随机计算k个类中心作为起始点. 将数据点分配到理其最近的类中心. 3.移动类中心. 4.重复2,3直至类中心不再改 ...