赞
踩
分布式存储在云计算及容器技术中将广泛使用,本文仅简单介绍了下几个主流的开源分布式技术,整个分布式存储系列相当复杂,文中介绍略微粗浅且当引子。
常见的存储类型有三种:块存储、文件存储和对象存储
块存储、文件存储和对象存储的层次关系如下图所示:
集中式存储的发展经历了机械盘、SSD固态硬盘、融合存储、NVMe接口全闪存,其发展趋势主要依赖于性能的稳步提升,目前延时几乎可降至0.02ms以下,当前全闪存存储仍然是市场的主流。分布式存储,从IBM的GPFS产品到如今,已经经历了20余年的发展,现在形成了SDS(软件定义存储)的全新模式。随着金融业非结构化数据占比的不断增长,传统的集中式存储无法满足数据服务的灵活性,所以对分布式存储也有了更多的需求。
传统集中式存储的IT架构存在诸多瓶颈,包括采购成本高昂、维护操作繁琐、风险相对集中、性能扩展受限等,难以应对日渐庞杂的金融业务数据以及日益复杂的业务需求。而分布式架构通过虚拟化实现计算、存储、网络的融合部署,可以构建起高可用、易扩展、低成本的适应如今金融数字化的发展体系,建设分布式存储成为金融行业数字化转型的重要方向。
集中式和分布式存储在实际需求中,成本、扩展性(容量及性能)、软件功能、维护性及兼容性这六方面成为行业重点关注的维度,如下表所示:
随着互联网类业务的迅猛发展,分布式存储的实践需要结合实际的业务使用场景,在多模态和混合信息架构下,主要分为几个应用方向:
以HDFS (Hadoop Distribution File System)为代表的架构,在这种架构中,一部分节点 NameNode 是存放管理数据(元数据),另一部分节点DataNode存放业务数据,这种类型的服务器负责管理具体数据。
在上图中, 如果客户端需要从某个文件读取数据,首先从NameNode获取该文件的位置(具体在哪个DataNode),然后从该DataNode获取具体的数据。在该架构中NameNode通常是主备部署( Secondary NameNode ),而DataNode则是由大量节点构成一个集群。由于元数据的访问频度和访问量相对数据都要小很多,因此NameNode通常不会成为性能瓶颈,而DataNode集群中的数据可以有副本,既可以保证高可用性,可以分散客户端的请求。因此,通过这种分布式存储架构可以通过横向扩展datanode的数量来增加承载能力,也即实现了动态横向扩展的能力。
以Ceph为代表的架构,在该架构中与HDFS不同的地方在于该架构中没有中心节点。客户端是通过一个设备映射关系计算出来其写入数据的位置,这样客户端可以直接与存储节点通信,从而避免中心节点的性能瓶颈。
如上图所示,在Ceph存储系统架构中核心组件有MON服务、OSD服务和MDS服务等。
以swift为代表的架构,与Ceph的通过计算方式获得数据位置的方式不同,另外一种方式是通过一致性哈希的方式获得数据位置。一致性哈希的方式就是将设备做成一个哈希环,然后根据数据名称计算出的哈希值映射到哈希环的某个位置,从而实现数据的定位。
Swift 中存在两种映射关系,对于一个文件,通过哈希算法(MD5)找到对应的虚节点(一对一的映射关系),虚节点再通过映射关系(ring文件中二维数组)找到对应的设备(多对多的映射关系),这样就完成了一个文件存储在设备上的映射。
目前比较热门的开源分布式存储系统有以下几种:Ceph、Swift、HDFS和GlusterFS
开源协议说明:
Ceph是个开源的分布式存储,底层是RADOS,这是个标准的对象存储。以RADOS为基础,Ceph能够提供文件,块和对象三种存储服务,旨在提供一个扩展性强大、性能优越且无单点故障的分布式存储系统。
目前应用最广泛的开源分布式存储系统,已得到众多厂商的支持,许多超融合系统的分布式存储都是基于Ceph深度定制,而且Ceph已经成为LINUX系统和OpenStack的 “ 标配 ” ,用于支持各自的存储系统。Ceph可以提供对象存储、块设备存储和文件系统存储服务。
Swift是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性、冗余和持久性。构筑在比较便宜的标准硬件存储基础设施之上,无需采用RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。
1) Swift架构
Swift采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,避免因单点失效而影响整个系统的可用性。
2)Swift 组件
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统,是Hadoop的核心子项目,是基于流数据模式访问和处理超大文件的需求而开发的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
HDFS采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。
1)HDFS的特点
2)HDFS使用的应用场景:
GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
GlusterFS是一个具有高扩展性、高性能、高可用性、可横向扩展的弹性分布式文件系统,它主要由存储服务器(Brick Server)、客户端以及NFS/Samba存储网关组成。不难发现,GlusterFS架构中没有元数据服务器组件,这是其最大的设计这点,对于提升整个系统的性能、可靠性和稳定性都有着决定性的意义。GlusterFS支持TCP/IP和InfiniBand RDMA高速网络互联,客户端可通过原生Glusterfs协议访问数据,其他没有运行GlusterFS客户端的终端可通过NFS/CIFS标准协议通过存储网关访问数据。
分布式存储在云计算及容器技术中将广泛使用,本文仅简单了解了下几个主流的开源分布式技术,作为分布式体系架构中的基础数据存储组件至关重要,接下去将进行深入的探索。
参考资料:
转载请注明原文地址:https://blog.csdn.net/solihawk/article/details/122853361
文章会同步在公众号“牧羊人的方向”更新,感兴趣的可以关注公众号,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。