存储依据其类型划分,有块存储、对象存储和文件存储。在主流的分布式存储技术里,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.HD

低延时数据访问。
小文件存储
并发写入、文件随机修改
四、 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
# 昆明网站建设单位信息
# 宁波网站建设如何
# 栾城网站互联网推广电话
# 山东seo服务技巧
# 如何免费推广营销引流
# 网站建设的神器
# 外贸网站建设优化营销
# 陕西安康高新区网站建设
# 中铁中基建设集团网站
# 大数据全网营销推广方案
# 白银网站建设银行
# 链式
# seo每天需要做什么
# 专注推广网站一对一服务
# 月份关键词排名
# 青岛网络推广和营销招聘
# 商丘网站如何优化
# 成都seo网络推广招聘
# 包年网站优化选哪家
# 屏东中学网站建设学校
# 地产营销策略推广计划表
# 适用于
# Ceph因支持多种存储并利用节点计算能力优势显著
# 多个
# 客户端
# 文件系统
# 将其
# 它是
# 都有
# 单点
# 大文件
# 开源
# 存储类型有块存储、对象存储和文件存储
# 数据结构
# 存储设备
# 是由
# 令牌
# 还会
# 较高
# 厦门
# 存储系统
# 所示
相关文章:
分享7个合法靠谱且高利润的偏门赚钱项目
移动流量大王卡是真的吗?怎样办理?这里有详细介绍 衢州品牌营销推广
四个不耽误上班的网上兼职赚钱副业分享
联盟是什么?赚钱有哪些优势?收益怎么样?
业余时间做什么网络兼职项目赚钱比较好?
广告联盟怎么赚钱?四大广告联盟赚钱方式对比!
知+是什么?如何通过知+引流吸粉?
闲鱼引流怎么做?闲鱼引流推广赚钱操作步骤介绍!
网站流量变现赚钱三大方法的优缺点分析
如何利用闲鱼引流推广赚钱?做好了日赚几百不是问题!
在家赚钱的工作有哪些?在家里就做这6个靠谱的网上赚钱项目!
私域流量变现是什么意思?该如何做?
送给客户的早安问候语,温暖舒心缩短情感距离 深圳便宜的网站优化方式
广告推广赚钱常用的几种常见的引流方式介绍!
如何鼓励联盟营销的伙伴来推广我们的商品以及服务?
网站如何利用广告联盟赚钱?
游戏推广怎么做?这7个游戏推广方法分享给你!
等保 2.0 备案全解析:2025 新申请流程、材料清单及要点? 莱芜抖音推广网站地址
如何通过推广赚钱?推广赚钱的项目有哪些?
齐齐哈尔市11月8日至10日开展区域核酸检测的通告 耀州区网站优化
新手没有网站又不懂引流如何去做推广赚钱?
【联盟基础】个人做任务赚钱是什么意思?
移动互联网下手机广告联盟营销存在着哪些问题?
网赚小白必看的广告联盟自动化挂机网赚项目玩法分享!
微信注册教程:先准备QQ号及手机,选QQ号注册方式 市辖区高效网站建设建议
联盟是什么?广告联盟是如何推广赚钱的?
如何判断一个广告联盟靠不靠谱?主要看这三点!
app线下预装推广如何做?有哪些优势与不足?
手机赚钱方式之手机浏览广告赚钱是真的吗?
春节抢红包暗藏陷阱 警惕微信红包封面骗局!警方紧急提醒 怎么搞抖音营销推广
揭秘!不用网站做百度SEO关键词排名引流的6个平台和方法!
引流之如何利用评论来进行引流?
pc电脑端的广告推广优缺点有哪些?
揭秘网站搭建费用奥秘:类型及功能需求如何影响价格 儋州物业网站建设
seo网站关键词优化该怎么做?如何提升网站排名?
中年女人为何不显老?心态强大、习惯良好、注重保养是关键
广告联盟赚钱必知的网站诱惑引流大法,简单又实用!
怎么接广告赚钱?四个比较靠谱的接广告赚钱的方式!
百度广告联盟赚钱靠谱吗?投放广告的效果怎么样?
盘点我们曾经用过的广告联盟推广方式,哪几种你还在用?
新手如何引流男性?推荐这几个渠道和方法!
推广赚钱被动躺赚玩法介绍
app推广注册放单平台哪个好?app运营是什么?
新手零售商家必看!适合的小程序开发平台及功能介绍? 一个seo优化方法
问卷调查赚钱怎么做?做问卷调查赚佣金的知识和技巧分享!
加微信还在傻傻发你好?50个高情商开场白快收藏 招远哪家网站推广好
世界十大护手霜排行榜,女士护手霜哪个牌子好用? 企石企业网站建设多少钱
利用引流脚本软件自动挂机推广日赚300!你需要准备这些!
如何筛选出适合自己app优质高效的app推广渠道?
影响广告联盟平台上广告价格的因素有哪些?
相关栏目:
【
广告资讯90366 】
【
广告推广18483 】
【
广告优化154267 】
【
广告营销46464 】