全国统一服务电话 400-108-0268

关于霄云科技

主流的分布式存储框架有哪些

发布时间:2021-12-06 来源:本站

随着现代社会信息技术的发展以及人类生活的智能化,全球数据量正在无限制地扩展和增加。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。

为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。分布式存储的兴起与互联网的发展密不可分,互联网公司由于其大数据、轻资产的特点,通常使用大规模分布式存储系统。


本篇文章会和读者朋友们聊一聊,目前市场上一些主流的分布式存储存储框架。

分布式存储技术

1.什么是分布式存储

在了解什么是分布式存储之前,我们先来了解一下存储几十年来的大概历程。

直连存储(DAS):存储和数据直连,拓展性、灵活性差。

中心化存储(SAN、NAS):设备类型丰富,通过IP/FC网络互连,具有一定的拓展性,但是受到控制器能力限制,拓展能力有限。同时,设备到了生命周期要进行更换,数据迁移需要耗费大量的时间和精力。

分布式存储:基于标准硬件和分布式架构,实现千节点/EB级扩展,同时可以对块、对象、文件等多种类型存储统一管理。

分布式存储就是将数据分散存储到多个存储服务器上,并将这些分散的存储资源构成一个虚拟的存储设备,实际上数据分散的存储在企业的各个角落。

打个简单的比方,将数据比作成货物,存储比作成货车,直连存储就相当于用普通货车拉货;为了提升拉货的效率,改用大型的货车拉货,这就相当于中心化存储;现在,由于货物太多,大型的货车已经不足以拉动全部货物,改用一节一节连接起来的火车拉货,这就是分布式存储。分布式系统的出现是为了用普通的机器完成单个计算机无法完成的计算、存储任务,目的是利用更多的机器,处理更多的数据。

2.分布式存储的优势

可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。

低成本:分布式存储系统的自动容错和自动负载平衡允许在低成本服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本,并实现分布式存储系统的自动操作和维护。

高性能:无论是针对单个服务器还是针对分布式存储群集,分布式存储系统都需要高性能。

分布式存储框架

分布式存储技术的实现,往往离不开底层的分布式存储框架。根据其存储的类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS属于文件存储,Swift属于对象存储,而Ceph可支持块存储、对象存储和文件存储,故称为统一存储。

1.HDFS

HDFS是Hadoop核心组成之一,是分布式计算中数据存储管理的基础,被设计成适合运行在通用硬件上的分布式文件系统。



1.1HDFS的功能模块

Client

Client是用户与HDFS交互的手段,当文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;Client通过与NameNode交互,来获取文件的位置信息;与DataNode交互,读取或者写入数据;Client还可以提供NameNode格式化等一些命令来管理HDFS;同时,Client可以通过对HDFS的增删改查等操作来访问HDFS。

NameNode

NameNode就是HDFS的Master架构,它维护着文件系统树及整棵树内所有的文件和目录,HDFS文件系统中处理客服端读写请求、管理数据块(Block)的映射信息、配置副本策略等管理工作由NameNode来完成。

DataNode

NameNode下达命令,DataNode执行实际操作。DataNode表示实际存储的数据块,同时可以执行数据块的读写操作。

SecondaryNameNode

SecondaryNameNode的功能主要是辅助NameNode,分担其工作量;在紧急情况下可以辅助恢复NameNode,但是它不能替换NameNode并提供服务。



1.2HDFS的优势

1.容错性:数据自动保存多个副本。通过增加副本的形式,提高容错性。其中一个副本丢失以后,可以自动恢复。

2.可以处理大数据:能够处理数据规模达到GB、TB甚至PB级别的数据;能够处理百万规模以上的文件数量。

3.可以构建在廉价的机器上,通过多副本机制,提高可靠性。

1.3HDFS的缺点

1.不适合低延时数据访问:比如毫秒级的存储数据,是做不到的。

2.无法高效对大量小文件进行存储:存储大量小文件的话,它会占用NameNode大量的内存来存储文件目录和块信息。这样是不可取的,因为NameNode的内存总是有限的。同时,小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。

3.不支持并发写入、文件随机修改:一个文件只能有一个写,不允许多个线程同时写。仅支持数据append(追加),不支持文件的随机修改。

2.Swift

swift于2008年起步,最初是由Rackspace公司开发的分布式对象存储服务,2010年贡献给OpenStack开源社区。现如今已部署到大规模公有云的生产环境中使用。

2.1Swift的功能模块

Swift采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,避免因单点失效而影响整个系统的可用性。

ProxyServer(代理服务):对外提供对象服务API,ProxyServer首先会通过Ring查找被操作实体的物理位置,随后将请求转发至相应的账户、容器或对象服务。

AuthenTIcaTIonServer(认证服务):验证用户的身份信息,并获得一个访问令牌(Token)。

CacheServer(缓存服务):缓存令牌,账户和容器信息,但不会缓存对象本身的数据。

AccountServer(账户服务):AccountServer是存储节点中负责处理Account的get、head、put、delete、relicaTIon请求的服务进程。提供账户元数据和统计信息,并维护所含容器列表的服务。

ContainerServer(容器服务):ContainerServer是存储节点中负责处理Container的get、head、put、delete、relicaTIon请求的服务进程。提供容器元数据和统计信息,并维护所含对象列表的服务。

ObjectServer(对象服务):ObjectServer就是一个简单的BLOB存储服务器,可以存储、检索和删除保存再本地设备的对象。提供对象元数据和内容服务,每个对象会以文件存储在文件系统中。

Replicator(复制服务):检测本地副本和远程副本是否一致,采用推式(Push)更新远程副本。

Updater(更新服务):对象内容的更新。

Auditor(审计服务):检查对象、容器和账户的完整性,如果发现错误,文件将被隔离。

AccountReaper(账户清理服务):移除被标记为删除的账户,删除其所包含的所有容器和对象。

关键词标签:海量存储 文件存储 分布式存储 国产存储 私有云 企业级存储 软件定义存储

返回列表
上一篇:家居监控市场需求增长,如何选择内存技术以适应新型系统架构
下一篇:希捷发布CORTX对象存储软件与开源社区,普惠超大规模数据存储