存储依据其类型划分,有块存储、对象存储和文件存储。在主流的分布式存储技术里,HDFS、GPFS、GFS属于文件存储这一类型,Swift属于对象存储,而 Ceph 能够支持块存储、对象存储以及文件存储,所以它被称作统一存储。

一、 Ceph
Ceph最早是在 Sage 读博士期间开展工作并取得成果,该成果于 2004 年发表,之后被贡献给开源社区。经过多年的发展历程,它已经获得了众多云计算和存储厂商的支持,如今已成为应用最为广泛的开源分布式存储平台。
Ceph按场景划分可分为对象存储、块设备存储和文件存储。Ceph与其他分布式存储技术相比,具有以下优势:它不仅是存储,还能充分利用存储节点上的计算能力。在存储每一个数据时,会通过计算来确定该数据的存储位置,并且会尽量使数据分布均衡。它采用了 CRUSH、HASH 等算法,所以不存在传统的单点故障。并且,随着规模的扩大,其性能也不会受到影响。
1.Ceph的主要架构
Ceph 的最底层是 RADOS,它属于分布式对象存储系统。RADOS 具备可靠、智能以及分布式等特性,能够实现高可靠、高可拓展、高性能以及高自动化等功能,并且最终用于存储用户数据。RADOS 系统主要由两部分构成,其中一部分是 OSD,另一部分是……
RADOS 的上面有一个库,这个库能让应用程序通过访问它来与 RADOS 系统进行交互,并且它支持多种编程语言,例如 C、C++等。
基于层开发的有三种接口,分别是、和MDS。
这是一套网关,它基于当前流行的协议。这套网关支持对象存储,并且兼容 S3 和 Swift。
提供分布式的块存储设备接口,支持块存储。
MDS提供兼容POSIX的文件系统,支持文件存储。
2.Ceph的功能模块
各组件的功能分别如下:
客户端:负责存储协议的接入,节点负载均衡
MON 监控服务的职责包括:监控整个集群;维护集群的健康状态;维护并展示集群状态的各种图表,像 OSD Map、Map、PG Map 和 CRUSH Map 。
MDS 元数据服务的职责是保存文件系统的元数据,并且对目录结构进行管理。
OSD 存储服务的主要功能包括存储数据、复制数据、平衡数据、恢复数据,并且会与其他 OSD 进行心跳检查等。通常情况下,一块硬盘会对应一个 OSD。
3.Ceph的资源划分
Ceph 运用 crush 算法,在大规模集群的情形下,能够实现数据快速且准确地存放。并且,在硬件出现故障或者需要扩展硬件设备的时候,能够做到数据迁移的量尽可能小。其原理具体如下:
用户将数据存储到 Ceph 集群时,数据会先被分割成多个部分,每个部分都有一个 id,其大小可以设置,默认是 4MB,这些部分是 Ceph 存储的最小存储单元。
因为数量众多,为能有效减少到 OSD 的索引表且降低元数据的复杂度,让写入和读取更灵活,所以引入了 pg(Group)。PG 用于管理,每个都通过 Hash 方式,被映射到某个 pg 中,且一个 pg 可以包含多个。
Pg 经过 CRUSH 计算后,会被映射到 osd 中。如果是三副本的情况,那么每个 pg 都会映射到三个 osd ,这样就保证了数据的冗余。
4.Ceph的数据写入
Ceph数据的写入流程
1) 数据通过负载均衡获得节点动态IP地址;
2) 通过块、文件、对象协议将文件传输到节点上;
3) 数据被分割成4M对象并取得对象ID;
4) 对象ID通过HASH算法被分配到不同的PG;
5) 不同的PG通过CRUSH算法被分配到不同的OSD
5.Ceph的特点
Ceph 能够提供对象存储服务、块存储服务以及文件存储服务。因此,它被称作统一存储。
采用 CRUSH 算法,能使数据分布保持均衡,并且并行度较高,同时也不需要去维护那种固定的元数据结构。
数据具有很强的一致性,只有当所有副本的写入都完成了,才会返回确认。这种特性适合读多写少的场景。
去中心化,MDS之间地位相同,无固定的中心节点
Ceph存在一些缺点:
去中心化的分布式解决方案需要提前进行规划设计,并且对技术团队的要求能力较高。
Ceph 在扩容时,因为它具有数据分布均衡的这种特性,所以会使得整个存储系统的性能出现下降的情况。
二、 GFS
GFS 是一种分布式文件存储系统,它是专门为存储海量搜索数据而设计的。它于 2003 年被提出,是闭源的分布式文件系统。它适用于大量的顺序读取和顺序追加操作,比如大文件的读写。它注重大文件的持续稳定带宽,而不是单次读写的延迟。
1.GFS的主要架构
GFS 架构较为简单。一个 GFS 集群通常包含一个主服务器,还有多个数据服务器以及多个客户端。
在 GFS 里,所有文件被分割成若干个 chunk 。每个 chunk 都有唯一且不变的标识,这个标识在 chunk 创建时,是由特定的部分负责分配的。并且,所有 chunk 都实实在在地存储在特定的磁盘上。
为了容灾,每个 chunk 都会被复制到多个
2.GFS的功能模块
GFS 客户端为应用提供了与 POSIX API 类似的 API。并且它还会缓存从 GFS 读取的元数据 chunk 信息。
GFS 元数据服务器负责管理所有文件系统的元数据,其中包含命令空间(目录层级)、访问控制信息以及文件到 chunk 的映射关系和 chunk 的位置等。并且,它还对系统范围内的各种活动进行管理,这些活动包括 chunk 创建、复制、数据迁移以及垃圾回收等。
GFS 的存储节点是用于存储所有 chunk 的。一个文件会被分割成多个大小固定的 chunk,其默认大小为 64M。并且每个 chunk 都有全局唯一的 chunk ID。
3.GFS的写入流程
询问要修改的 chunk 位于哪个位置,以及该 chunk 其他副本的位置信息;
2) 将、的相关信息返回给 ;
3) 将数据推送给 和 ;
当所有副本都确认已收到数据时,会向其发送写请求。会给不同的操作分配序号,以保证这些操作能够按照顺序执行。
将写请求发送至指定位置,依照分配的序号顺序依次执行所有操作。
6) 当 执行完后回复 执行结果;
7) 回复 执行结果。
由上述可见,GFS在进行写数据时,有如下特点:
GFS 在进行数据读写操作时,其数据流与控制流是相互分离的。并且通过租约机制,在跨多个副本进行数据写入的过程中,能够保障顺序的一致性。
将 chunk 租约发放给其中一个副本,此副本被称作主副本。主副本负责确定 chunk 的写入顺序,而次副本会遵守这个顺序。通过这种方式,就保障了全局顺序的一致性。
返回客户端主副本的位置信息,客户端将其缓存以备将来使用。同时返回次副本的位置信息,客户端也将其缓存。只有当主副本所在位置不可用,或者返回的租约过期了,客户端才需要再次联系以获取位置信息。
GFS 采用链式推送这种方式,目的是最大化地利用每台机器的网络带宽,同时避免出现网络瓶颈以及高延迟的连接情况,并且能够最小化推送所产生的延迟。
GFS使用TCP流式传输数据,以最小化延迟。
4.GFS特点
适合大文件的场景应用,尤其针对 GB 级别的大文件。这种应用适用于搜索类业务,且对数据访问延时不敏感。
中心化架构,只有1个处于状态
缓存和预取的作用在于,通过在终端缓存元数据,能够尽量减少与其他方面的交互。同时,通过对文件进行预读取,能够提升并发性能。
高可靠性意味着需要持久化的数据会以操作日志的方式存放多份,并且在发生故障后能够自动切换并重启。
三、 HDFS
HDFS(文件),它是一个适合在通用硬件上运行的分布式文件系统。它是核心子项目,是为了满足基于流数据模式访问和处理超大文件的需求而开发的。该系统仿照了谷歌文件系统(GFS),是 GFS 的一个简化且开源的版本。
1.HDFS的主要架构
HDFS(客户端):先获取文件的位置信息,接着进行读取或者写入数据的操作。并且,在数据存储过程中,负责对文件进行分割。
元数据节点负责管理名称空间,它要处理数据块(Block)的映射信息,还要配置副本策略,同时也会处理客户端的读写请求。
存储节点负责执行实际的读写操作,并且存储实际的数据块,同一个数据块会被存储在多个地方。
定期进行元数据的合并,然后将其推送给相关方。在遇到紧急情况时,这些合并后的元数据可以辅助进行 HA 恢复。
2.HDFS的特点(vs GFS)
分块更大,每个数据块默认128MB;
不支持并发,同一时刻只允许一个写入者或追加者;
过程一致性,写入数据的传输顺序与最终写入顺序一致;
HA 的 2.X 版本支持两个,一个处于某种状态,另一个处于另一种状态,故障切换时间通常在几十秒到数分钟之间。
3.HDFS适合的应用场景
适用于处理大文件和大数据。能够处理达到 GB 级别的数据,也能处理达到 TB 级别的数据,甚至能处理达到 PB 级别的数据。
适合流式文件访问,一次写入,多次读取。
文件一旦写入不能修改,只能追加。
4.HDFS不适合的场景:
低延时数据访问。
小文件存储
并发写入、文件随机修改
四、 Swift
Swift 起初是由某公司开发的一种分布式对象存储服务。在 2010 年,它被贡献给了开源社区。它是某公司最初的核心子项目之一,为该公司的 Nova 子项目提供虚机镜像存储服务。
1.Swift的主要架构
Swift 采用的是完全对称且面向资源的分布式系统架构设计。它的所有组件都具备可扩展性。这样的设计能够避免因为单点失效而对整个系统的可用性造成影响。
Swift 组件包括
- 也能够将请求转发至相应的对象服务。
认证服务:对用户的身份信息进行验证,进而获得一个访问令牌(Token)。
缓存服务(Cache)会缓存令牌以及账户和容器的信息,然而不会缓存对象自身的数据。
账户服务提供账户元数据和统计信息,同时维护所含容器列表。
容器服务:它能够提供容器的元数据以及统计信息,同时还会维护所包含对象的列表。
对象服务提供对象元数据和内容服务,并且每个对象会被以文件的形式存储在文件系统中。
复制服务():对本地副本与远程副本进行一致性检测,以推式(Push)方式来更新远程副本。
更新服务():对象内容的更新
审计服务:检查对象的完整性,检查容器的完整性,检查账户的完整性。若发现错误,文件将被隔离。
账户清理服务:移除被标记为删除的账户,将其包含的所有容器和对象予以删除。
2.Swift的数据模型
Swift 的数据模型采用层次结构,一共设置了三层,分别是账户层、容器层和对象层。每层的节点数都没有限制,能够任意进行扩展。数据模型具体如下:
3.一致性散列函数
Swift 基于一致性散列技术。它通过计算,能将对象均匀分布到虚拟空间的虚拟节点上。在增加或删除节点时,能够大大减少需移动的数据量。
为了便于进行高效的移位操作,通常将虚拟空间大小设定为 2 的 n 次方;借助独特的数据结构 Ring(环),接着把虚拟节点映射到实际的物理存储设备上,从而完成寻址过程。如下图所示:
散列空间是 4 个字节,也就是 32 位。虚拟节点数最多能达到 232 个。如果把散列结果向右移动 m 位,那么就能产生 2 的(32 - m)次方个虚拟节点。(就像上图所展示的那样,当 m = 29 时,能够产生 8 个虚拟节点。)
4.环的数据结构
Swift为账户、容器和对象分别定义了的环。
环的设计目的是将虚拟节点(分区)映射到一组物理存储设备上,并且提供一定的冗余度。环的数据信息包含存储设备列表和设备信息,还有分区到设备的映射关系,以及计算分区号的位移(也就是上图中的 m)。
账户、容器和对象的寻址过程。(以对象的寻址过程为例):
以对象的层次结构当作键,运用 MD5 散列算法从而得到一个散列值。
对该散列值的前 4 个字节进行右移操作,即将其向右移动 m 位,从而得到分区索引号;
在分区到设备的映射表中,依据分区的索引号,去查找该对象所在分区相对应的所有物理设备编号。如下所示:
5.Swift的一致性设计
Swift 采用 仲裁协议
定义:数据的副本总数为 N;写操作被确认接受的副本数量是 W;读操作的副本数量为 R
强一致性意味着当 R+W>N 时,能够确保对副本的读写操作会有交集,进而可以读取到最新版本。
弱一致性:R+W
# 存储类型有块存储、对象存储和文件存储
# Ceph因支持多种存储并利用节点计算能力优势显著
# 多个
# 客户端
# 文件系统
# 将其
# 它是
# 都有
# 单点
# 大文件
# 开源
# 适用于
# 数据结构
# 存储设备
# 是由
# 令牌
# 还会
# 较高
# 厦门
# 存储系统
# 所示
# 链式
# seo.aiyom.com
# 你我金融 seo经理
# 海宁短视频营销推广选择
# 开发优化网站
# 火车关键词怎么排名
# 短视频营销推广公司排名
# 黄骅网站高端建设
# 联盟文明网站建设有新
# 望都县网站推广推荐会
# 新乡抖音关键词排名代理
# 牡丹江seo优化报价
# 韶关网站竞价优化怎么样
# 建阳正规seo介绍公司
# 鞍山关键词排名成功案例
# 岚山区网站优化报价公司
# 毕节短视频营销推广公司
# 定制狗粮推广营销
# 建设网站的课题
# 微信二维码推广网站源码
# 新密seo优化软件
相关文章:
网站运营该如何持续地提升网站权重来获取更多的流量?
在推广项目的时候使用短链有什么好处?
福建百度推广预算,一天需要多少?,高效精准营销推广哪里有
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,巩义网站建设报价方案
移动互联网下手机广告联盟营销存在着哪些问题?
SEO白帽:提升网站排名的绿色正道,专业关键词排名趋势
什么是网赚广告联盟?网赚广告联盟的收入怎么样?
关键词速排:突破搜索引擎优化的极限,轻松提升网站排名,网络营销推广的五大误区
高佣联盟是什么?使用高佣联盟有什么好处?
SEO实际:如何在竞争激烈的市场中脱颖而出,营口seo哪个便宜点
优化文字,让表达更精准:提升写作效率的关键,科普网站资源建设
贴吧引流转化日赚500的玩法介绍!
app推广运营该怎么做,需要注意哪些问题?
新手怎么在家做网络淘金赚钱?
游戏结合qq群引流变现的赚钱项目干货分享!
SEO就是:让你的品牌脱颖而出,获得更多曝光与流量,凤岗企业网站推广价格
网站关键词排名不稳定怎么办?注意这五点!
SEO站在未来之巅,助力网站在激烈竞争中脱颖而出,日照网络seo公司地址
SEO那么重要,企业如何通过它脱颖而出?,永安网站seo优化
SEO超级,助力企业站点冲刺搜索引擎排名,热门游戏网站推广
广告联盟的短*时代来临!如何抓住这个风口?
同城服务类APP推广引流实操干货分享!
SEO目的:如何通过精准优化提高网站流量与转化率,濮阳网站建设平台招聘
深入解析网站优化的重要性与实现 *** ,深度探索,网站优化的重要性及其实施策略,深入理解网站优化,重要性、实现 *** 及有效策略
一般人通过|直播|赚钱该怎么做吗?|直播|赚钱的四大方式!
SEO项目:如何通过精确优化提升企业网站排名与转化率,陕西网站建设方案书范文
SEO做法-提升网站流量与排名的关键秘诀,私房米线怎么营销推广的
网赚广告联盟是什么?广告联盟怎么赚钱?
想赚点零花钱不知道怎么做?这6款靠谱的手机赚钱软件推荐给你!
惊掉下巴!趣头条严查广告联盟代理商,*广告也敢放!
相亲粉、交友粉、引流思路分享,这么做快速有效!
最新非常容易赚点零花钱的手机游戏赚钱项目推荐!
SEO开发:数字营销的核心驱动力,贵阳营销策划推广方案
在联盟平台上推广产品赚钱提升转化率的思路分享!
怎样才能在联盟上推广|直播|、聊天交友类app注册赚到更多的钱?
福建百度推广点击率高却无人加好友,问题出在哪?,德江网络营销推广
全网采集:让数据为您服务,助力决策的强大引擎,扬州网站推广价格
互联网时代,这9大app网络推广方法必须得掌握!
常见的4个网站营销方式,学会了不愁网站没流量!
互联网营销该怎么做?主流的互联网营销方式有哪些?
公众号自动化:让你的内容营销事半功倍,seo冷启动
app线下推广之校园app地推活动应该如何进行?
黄江SEO网站优化公司,让您的品牌在网络世界中熠熠生辉,企业网站关键词推广
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,肇庆seo优化分析
SEO分类:从基础到进阶,全面解析SEO优化的关键要素,宁波seo行业价格表
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,全网推广 乐云seo
“扩写AI”-引领写作革命,开启智能创作新时代,关键词seo优化网站seo技术
关键字罗列-提升搜索引擎优化的秘密武器,十堰全网推广网站有哪些
SEO详解:如何优化你的网站提升排名,获得更多流量,历城区网站优化
想做国外问卷调查赚钱,你的明确这3个问题!
*请认真填写需求信息,我们会在24小时内与您取得联系。