glusterfs: 出色的开源分布式存储系统

电脑杂谈  发布时间:2020-05-13 05:29:20  来源:网络整理

分布式存储系统_分布式存储 文件系统_分布式存储

启蒙研发部刘宏权

分布式存储已经研究了很多年,但是直到近年来,诸如Google,Amazon和Ali这样的互联网公司兴起了云计算和大数据应用程序之后,才地将其应用于工程实践. 如Google的分布式文件系统GFS,分布式表系统google Bigtable,亚马逊的对象存储AWS,阿里的TFS等都是很好的代表,但也催生了大量优秀的开源分布式存储系统,包括ceph,swift,Lustre,glusterfs等

分布式存储系统

分布式存储根据其存储接口分为三种: 文件存储,块存储和对象存储.

文件存储

通常支持POSIX接口(例如glusterfs,但是GFS和HDFS是非POSIX接口),可以像普通文件系统(例如ext4)一样进行访问,但是比普通文件系统具有更多的并行访问功能和冗余机制. 主要的分布式文件存储系统是TFS,cephfs,glusterfs和HDFS. 主要存储非结构化数据,例如普通文件,图片,音频和视频. 可以使用NFS和CIFS等协议进行访问,易于共享. NAS是文件存储类型.

块存储

此接口通常以QEMU驱动程序或内核模块的形式存在,主要通过qemu或iscsi协议进行访问. 主要的块存储系统是ceph块存储,牧羊犬等. 主要用于存储结构化数据,例如数据. 数据共享不便. DAS和SAN都是块存储类型.

对象存储

分布式存储_分布式存储系统_分布式存储 文件系统

对象存储系统结合了NAS和SAN的优势,并具有高速直接访问SAN和NAS数据共享的优势. 以对象作为基本存储单元,它提供了RESTful数据读取和写入接口,并通常以网络服务的形式提供数据访问. 主要的对象存储系统是AWS,swift和ceph对象存储. 主要用于存储非结构化数据.

Glusterfs

Glusterfs是一个开放源代码的分布式文件系统,具有强大的水平扩展性,可以支持多个PB存储容量和数千个客户端,通过Infiniband RDMA或Tcp / Ip,许多廉价的x86主机通过网络互连成一个并行网络文件系统. 它具有可伸缩性,高性能和高可用性的特点.

GlusterFS使用可堆叠的用户空间设计,如图所示:

Glusterfs堆栈结构

Glusterfs是根据保险丝提供的接口实现的用户模式文件系统,主要由四个模块组成: gluster,glusterd,glusterfs和glusterfsd:

gluster: cli命令执行工具,主要功能是解析命令行参数,然后将命令发送到glusterd模块以执行.

glusterd: 是一个管理模块,它处理gluster发送的命令,并处理集群管理,存储池管理,砖块管理,负载平衡和快照管理. 群集信息,存储池信息和快照信息以配置文件的形式存储在服务器上. 客户端安装存储时,glusterd会将存储池的配置文件发送给客户端.

分布式存储 文件系统_分布式存储系统_分布式存储

glusterfsd: 是一个服务器模块,存储池中的每个砖块都会启动一个glusterfsd进程. 该模块主要处理客户端的读取和写入请求,从关联的模块所在的磁盘中读取和写入数据,然后将其返回给客户端.

glusterfs: 是一个客户端模块,负责通过挂载在集群中挂载服务器的存储池,并以目录的形式向用户显示. 当用户从该目录读取和写入数据时,客户端会根据从glusterd模块获取的存储池的配置文件信息来计算文件所在服务器的存储块位置,然后通过Infiniband将数据发送到存储块RDMA或Tcp / Ip. 等到处理砖块分布式存储系统,然后将结果返回给用户. 存储池的副本,条带,哈希,EC和其他逻辑在客户端进行处理.

在使用glusterfs提供的存储服务之前,您需要首先安装存储池,将数据写入安装点,然后通过保险丝内核模块将其传递给客户端. 客户端检查存储池的类型,然后计算数据所在的服务器. 最后,通过套接字或rdma与服务器通信,如图2所示:

Glusterfs模块关系图

作为开放源代码的分布式文件系统,Glusterfs在开放源代码社区中非常活跃. 它已被Red Hat收购,许多用户正在研究和应用. 相关技术文件非常丰富. 这不是完美的. 为了支持线性扩展和高性能,它在小文件性能和元数据性能方面做出了让步,但可以满足某些情况,例如大数据应用程序和视频存储.

接下来,我们将从优缺点介绍glusterfs.

好处

没有元数据节点的性能瓶颈采用无中心对称架构,并且没有专用的元数据服务器,因此没有元数据服务器瓶颈. 元数据存在于文件的属性和扩展属性中. 当需要访问文件时,客户端使用DHT算法根据文件路径和文件名来计算砖,其中该文件基于文件路径,然后客户端从该砖获取数据,从而无需与元数据服务器进行通信

分布式存储_分布式存储系统_分布式存储 文件系统

良好的可伸缩性. 用弹性哈希算法代替传统的元数据节点服务,实现了近乎线性的高可扩展性.

高可用性采用了副本和EC等冗余设计,以确保冗余范围内的节点脱机时,冗余范围内的节点仍可从其他服务节点获取数据,以确保高可用性. 使用弱一致性设计,当将数据写入副本中的文件时,客户端会计算文件所在的模块,然后通过网络将数据传输到模块. 当其中之一成功返回时,就认为数据已成功写入并且不需要写入. 等待其他砖块返回将避免等待写入操作,因为当某个节点的网络异常或磁盘损坏时,砖块无法成功写入.

服务器还将从存储池的开始启动glustershd进程. 此过程将定期检查副本和EC卷中各个砖之间的数据一致性,并将其还原.

丰富的存储池类型包括粗粒度,条带,副本,条带副本和EC,它们可以根据用户需求满足不同程度的冗余. 粗粒度的卷不会带来任何冗余,文件不会被切片,它们会完全存储在模块中.

条带卷不会带来任何冗余,并且文件将存储在不同块上的片中(默认大小为128kB). 这些切片可以同时读取和写入(并发粒度是条带块),这可以显着提高读取和写入性能. 此模式通常仅适用于处理非常大的文件和多节点性能要求.

副本卷的冗余度很高,可以灵活配置副本数以确保数据安全性.

条带副本卷是条带卷和副本卷的组合.

EC卷使用EC检查算法,该算法提供比副本卷更低的冗余度. 冗余度小于100%,可以满足较低的数据安全性. 例如,您可以设置2 + 1(冗余度为50%),5 + 3(冗余度为60%),等等. 这可以满足对安全性要求较低的数据.

高性能采用弱一致性设计. 将数据写入副本时,只要成功返回了一个砖块,就可以认为写入成功,并且无需等待其他砖块返回. 这种方法比强一致性要快.

分布式存储 文件系统_分布式存储系统_分布式存储

还提供I / O并发,后写,预读,io-cache,条带化等技术,以提高读写性能. 并且还可以根据实际需要,I / O并发数和缓存大小进行调整.

缺点

更多服务器在扩展和收缩期间受到影响. Glusterfs将存储单元砖的哈希分布空间划分为逻辑卷(使用砖所在磁盘的权重作为权重,总空间范围为0到232-1),其中一个砖占A空间,在访问文件时,使用Davies-Meyer算法根据文件名计算哈希值,比较该哈希值在哪个范围内,即可确定文件所在的砖块,以便将文件定位很快. 但是,在逻辑卷上添加或删除砖时,将重新计算哈希分布空间,每个砖的哈希范围将更改,并且文件定位将失败. 因此,有必要遍历文件并将文件移动到正确的哈希分布范围. 在积木上,可能有很多移动文件,这增加了系统负载并影响正常的文件访问操作.

遍历目录下的文件. Glusterfs没有元数据节点,但是根据哈希算法确定文件的分布. 该目录使用扩展属性来记录子卷中砖的哈希分布范围. 每个积木的范围不重叠. 遍历目录时,需要读取readdir子卷中每个砖块中的目录,获取每个文件的属性和扩展属性,然后对其进行汇总. 与具有特殊元数据节点的分布式存储相比,遍历效率将大大降低. 当有大量文件时,遍历将非常缓慢.

删除目录也将遇到相同的问题.

当前提供的解决方案是合理地组织目录结构,目录层次结构不应太深,目录中的文件数不应太大,并且应增加glusterfs目录缓存. 此外,它还可以设计为从数据中分离元数据,将元数据放入内存中的(例如redis,memcache)中,并将其保存在SSD上.

小文件的性能较差Glusterfs主要用于大型文件,例如io-cache分布式存储系统,预读,后写和条带化等,均针对大文件访问进行了优化,而很少对小文件进行优化

Glusterfs使用无元数据节点设计. 文件的元数据和数据一起存储在文件中. 访问元数据和数据的速率相同. 访问元数据的时间与访问数据的时间的比率将更大. 在元数据中心的分布式存储系统中,更快的SSD可以用于元数据服务器,并且可以使用诸如较大的元数据缓存之类的优化措施来减少访问元数据时间与访问数据时间的比率,从而改善小文件. 性能.

Glusterfs使用客户端上的元数据缓存md-cache来提高小文件的性能,但是md-cache的大小是有限的,但是在海量小文件的情况下,缓存的命中率将被严重降低,优化效果会降低. 您需要增加元数据缓存.

对于小文件性能不佳的问题,也可以参考TFS的做法. TFS会将大量的小文件合并为一个大文件. 这个大文件称为一个块,每个块在集群中都有一个唯一的编号(块ID). 当NameServer创建该块时,将分配块ID,而NameServer则维护该块与DataServer之间的关系(存储区块的实际数据).


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-208274-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...