0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

主流分布式存储技术对比分析

jf_78858299 来源:wt企业IT社区 作者:wt企业IT社区 2023-02-15 15:06 次阅读

【导读】 如今分布式存储产品众多令人眼花缭乱,如何选型?要根据其背后的核心架构来分析它本来的原貌,然后才能决定其是否适合我们的具体场景。

【作者】 赵海

1 引言

目前市面上各个厂家的分布式存储产品五花八门,但是如果透过产品本身的包装看到其背后的核心技术体系,基本上会分为两种架构,一种是有中心架构的分布式文件系统架构,以GFS、HDFS为代表;另外一种是完全无中心的分布式存储架构,以Ceph、Swift、GlusterFS为代表。对具体分布式存储产品选型的时候,要根据其背后的核心架构来分析它本来的原貌,然后才能决定其是否适合我们的具体场景。

2 主流分布式存储技术对比分析

2.1 GFS & HDFS

GFS和HDFS都是基于文件系统实现的分布式存储系统;都是有中心的分布式架构 (图2.1) ;通过对中心节点元数据的索引查询得到数据地址空间,然后再去数据节点上查询数据本身的机制来完成数据的读写;都是基于文件数据存储场景设计的架构 ;都是适合顺序写入顺序读取,对随机读写不友好。

图片

图2.1 中心化的分布式存储架构

接下来,我们来看GFS和HDFS都有哪些具体特性,我们应该如何应用?

  1. GFS是一种适合大文件,尤其是GB级别的大文件存储场景的分布式存储系统。
  2. GFS非常适合对数据访问延迟不敏感的搜索引擎服务。
  3. GFS是一种有中心节点的分布式架构,Master节点是单一的集中管理节点,既是高可用的瓶颈,也是可能出现性能问题的瓶颈。
  4. GFS可以通过缓存一部分Metadata到Client节点,减少Client与Master的交互。
  5. GFS的Master节点上的Operation log和Checkpoint文件需要通过复制方式保留多个副本,来保障元数据以及中心管理功能的高可用性。

相对于GFS来说,我们来看HDFS做了哪些区别?

  1. HDFS的默认最小存储单元为128M,比GFS的64M更大。
  2. HDFS不支持文件并发写,对于单个文件它仅允许有一个写或者追加请求。
  3. HDFS从2.0版本之后支持两个管理节点(NameNode),主备切换可以做到分钟级别。
  4. HDFS 更适合单次写多次读的大文件流式读取的场景。
  5. HDFS不支持对已写文件的更新操作,仅支持对它的追加操作。

2.2 GlusterFS

GlusterFS虽然是基于文件系统的分布式存储技术,但是它与GFS/HDFS有本质的区别,它是去中心化的无中心分布式架构(图2.2);它是通过对文件全目录的DHT算法计算得到相应的Brike地址,从而实现对数据的读写;它与Ceph/Swift的架构区别在于它没有集中收集保存集群拓扑结构信息的存储区,因此在做计算的时候,需要遍历整个卷的Brike信息。

图片

图2.2 Gluster FS

接下来,我们来看GlusterFS都有哪些具体特性,我们应该如何应用?

  1. GlusterFS是采用无中心对称式架构,没有专用的元数据服务器,也就不存在元数据服务器瓶颈。元数据存在于文件的属性和扩展属性中 。
  2. GlusterFS可以提供Raid0、Raid1、Raid1+0等多种类型存储卷类型。
  3. GlusterFS采用数据最终一致性算法,只要有一个副本写完就可以Commit。
  4. GlusterFS默认会将文件切分为128KB的切片,然后分布于卷对应的所有Brike当中。所以从其设计初衷来看,更适合大文件并发的场景。
  5. GlusterFS 采用的DHT算法不具备良好的稳定性,一旦存储节点发生增减变化,势必影响卷下面所有Brike的数据进行再平衡操作,开销比较大。
  6. Gluster FS文件 目录利用扩展属性记录子卷的中brick的hash分布范围,每个brick的范围均不重叠。遍历目录时,需要获取每个文件的属性和扩展属性进行聚合,当目录文件 较多 时,遍历 效率很差 。

2.3 Ceph & Swift

我们知道, 相对于文件系统的中心架构分布式存储技术,Ceph&Swift都是去中心化的无中心分布式架构(图2.3);他们底层都是对象存储技术;他们都是通过对对象的哈希算法得到相应的Bucket&Node地址,从而实现对数据的读写 。

图片

图2.3 去中心化的分布式存储架构

接下来,我们来看Ceph和Swift都有哪些具体特性,我们应该如何应用?

  1. Ceph是一种统一了三种接口的统一存储平台,上层应用支持Object、Block、File 。
  2. Ceph采用Crush算法完成数据分布计算,通过Tree的逻辑对象数据结构自然实现故障隔离副本位置计算,通过将Bucket内节点的组织结构,集群结构变化导致的数据迁移量最小。
  3. Ceph保持数据强一致性算法,数据的所有副本都写入并返回才算写事务的完成,写的效率会差一些,所以更适合写少读多的场景。
  4. 对象保存的最小单元为4M,相比GFS&HDFS而言,适合一些小的非结构化数据存储。

虽然底层都是对象存储,相对于Ceph来说,Swift又有哪些独特的特性呢?

  1. Swift只保障数据的最终一致性,写完2个副本后即可Commit,这就导致读操作需要进行副本的对比校验,读的效率相对较低。
  2. Swift采用一致性哈希算法完成数据分布计算,通过首次计算对象针对逻辑对象(Zone)的映射实现数据副本的故障隔离分布,然后通过哈希一致性算法完成对象在Bucket当中的分布计算,采用Ring环结构组织Bucket节点组织,数据分布不如Ceph均匀。
  3. Swift 需要借助Proxy节点完成对数据的访问,不同于通过客户端直接访问数据节点,相对数据的访问效率来讲,比Ceph要差一些。

总结来看,由于Swift需要通过Proxy节点完成与数据节点的交互,虽然Proxy节点可以负载均衡,但是毕竟经历了中间层,在并发量较大而且小文件操作量比较的场景下,Ceph的性能表现会优秀一些。 为了说明我们从原理层面的判断,接下来借助ICCLAB&SPLAB的性能测试结果来说明。

表1 Ceph集群配置

[Node1 - MON] [Node2 - OSD] [Node2 - OSD]
[HDD1: OS] [HDD1: OS] [HDD1: OS]
[HDD2: not used] [HDD2: osd.0 - xfs] [HDD2: osd.2 - xfs]
[HDD3: not used] [HDD3: osd.1 - xfs] [HDD3: osd.3 - xfs]
[HDD4: not used] [HDD4: journal] [HDD4: journal]

表2 Swift集群配置

[Node1 - Proxy] [Node2 - Storage] [Node2 - Storage]
[HDD1: OS] [HDD1: OS] [HDD1: OS]
[HDD2: not used] [HDD2: dev1 - xfs] [HDD2: dev3 - xfs]
[HDD3: not used] [HDD3: dev2 - xfs] [HDD3: dev4 - xfs]
[HDD4: not used] [HDD4: not used] [HDD4: not used]

以上是测试本身对于Ceph和Swift的节点及物理对象配置信息,从表的对比,基本可以看出物理硬件配置都是相同的,只不过在Swift的配置当中还需要配置Container相关逻辑对象。

图片

{x}count{y}kb,x表示Swift集群当中设置的Container数量,y表示进行压力测试所用的数据大小。从图中表现出来的性能趋势分析:

  1. Container的数量越多,Swift的读写性能会相对差一些;
  2. 在4K-128K数据大小的范围内,Ceph和Swift的读性能表现都是最佳的;
  3. 在4K-64K数据大小范围内,Ceph的读性能几乎是Swift的2-3倍,但是写的性能相差不是非常大。

图片

Ceph_{x}Swift{x},x表示并发数量。从图中表现出来的性能趋势分析:

  1. 对于并发读操作,Ceph的表现上明显优于Swift,无论是稳定性还是IOPS指标;
  2. 对于并发写操作,Ceph的并发量越高其性能表现越接近Swift,并发量越少其性能表现会明显逊色于Swift。
  3. 对于并发读写操作的性能稳定性上,Ceph远胜于Swift。

3 结语

通过对主流分布式存储技术的各项特性分析梳理之后,我们基本上可以得出以下若干结论:

  1. GFS/HDFS还是适合特定大文件应用的分布式文件存储系统(搜索、大数据...);
  2. GlusterFS是可以代替NAS的通用分布式文件系统存储技术,可配置性较强;
  3. Ceph是平衡各个维度之后相对比较宽容的统一分布式存储技术;
  4. 分布式存储技术终究不适合应用到热点比较集中的关系型数据库的存储卷场景上。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分布式存储
    +关注

    关注

    4

    文章

    171

    浏览量

    19523
  • HDFS
    +关注

    关注

    1

    文章

    30

    浏览量

    9588
  • GFS
    GFS
    +关注

    关注

    0

    文章

    5

    浏览量

    2154
收藏 人收藏

    评论

    相关推荐

    分布式发电技术与微型电网

    几种分布式发电简介2.分布式发电与配电网互联问题3.微型电网技术4.分布式发电(电源)技术应用的障碍和瓶颈5.
    发表于 03-11 13:37

    主流CAN收发器性能对比分析哪个最好?

    主流CAN收发器性能对比分析哪个最好?
    发表于 05-20 06:14

    主流的三种RF方案及其优缺点对比分析

    主流的三种RF方案及其优缺点对比分析RF IC的主要性能是什么?
    发表于 05-25 06:34

    几款主流的Python开发板对比分析哪个好?

    Python在国内逐渐崛起和被追捧的原因?用Python可以做什么?几款主流的Python开发板对比分析哪个好?
    发表于 10-26 07:06

    7大主流单片机优缺点对比分析哪个好?

    7大主流单片机优缺点对比分析哪个好?
    发表于 11-02 08:27

    常见的分布式供电技术有哪些?

      分布式供电技术是指将发电设备建设在用户或供电系统端,将发电与负荷直接相连,通过局部供电的方式满足用户的电力需求。其主要特点是将传统的集中式供电方式改为分散供电方式,不仅既有大型电站向小型
    发表于 04-10 16:28

    实例分析分布式数据存储协议对比

    关于一致性 为什么需要Paxos或Quorum算法?分布式系统实现数据存储,是通过多份数据副本来保证可靠,假设部分节点访问数据失败,还有其他节点提供一致的数据返回给用户。对数据存储而言,怎样保证副本
    发表于 09-30 11:06 0次下载
    实例<b class='flag-5'>分析</b><b class='flag-5'>分布式</b>数据<b class='flag-5'>存储</b>协议<b class='flag-5'>对比</b>

    深度解读分布式存储技术分布式剪枝系统

    分布式文件系统存储目标以非结构化数据为主,但在实际应用中,存在大量的结构化和半结构化的数据存储需求。分布式键值系统是一种有别于我们所熟悉的分布式
    发表于 10-27 09:25 1843次阅读

    什么是分布式存储技术?有哪些应用?

    分布式存储概念 与目前常见的集中式存储技术不同,分布式存储
    的头像 发表于 11-17 09:26 2.3w次阅读
    什么是<b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>?有哪些应用?

    浅谈分布式存储的元数据服务设计

    一般来说,我们根据存储的访问接口以及应用场景,把分布式存储分为三种类型,包括分布式存储分布式
    发表于 05-31 07:36 4937次阅读

    分布式存储技术有哪些

    本视频主要详细介绍了分布式存储技术有哪些,分别是元数据管理、系统弹性扩展技术存储层级内的优化技术
    的头像 发表于 01-04 16:39 1.6w次阅读

    主流分布式存储技术对比分析与应用

    随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的
    发表于 07-13 15:52 3654次阅读
    <b class='flag-5'>主流</b><b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>的<b class='flag-5'>对比分析</b>与应用

    AFS,GFS ,QKFile主流分布式存储文件系统

    主流的3种分布式存储文件系统 存储架构分两种,一种是传统存储阵列架构,另一种就是本文将要重点介绍的分布式
    发表于 08-02 11:04 3533次阅读

    盘点分布式存储系统的主流框架

    整个大数据处理的体系,按我的理解可以分为两个部分,一个是分布式存储系统、另一个是分布式计算框架。分布式存储系统
    发表于 08-06 09:07 2651次阅读

    分布式存储的7个特征

    什么是分布式存储呢?如果一个存储系统,不管是对象、块、文件、kv、log、olap、oltp,只要对所管理的数据做了Partitioning&Replication,不管姿势对不对,其实
    发表于 07-18 14:17 1119次阅读