admin 管理员组

文章数量: 887021


2024年3月12日发(作者:xml格式软件)

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

GFS、HDFS、GlusterFS、Ceph、Swift

【导读】如今分布式存储产品众多令人眼花缭乱,如何选型?要根据其

背后的核心架构来分析它本来的原貌,然后才能决定其是否适合我们的具体场

景。

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),主备切换可以做到

分钟级别。

5. HDFS 更适合单次写多次读的大文件流式读取的场景。

6. 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 。


本文标签: 数据 文件 分布式 架构 中心