一.什么是块存储?

 单机块设备光盘磁盘分布式块存储cephcinder

ceph块设备也叫做RADOS块设备
RADOS block device : RBD

二.当集群osd节点成千上万时,管理节点的集群(mon)的负载会很大,那么osd本身能不能分担一些管理节点集群的任务呢?

 RADOS应运而生.1)RADOS(概念):是ceph的核心之一,作为ceph分布式文件系统的一个子项目,特别为ceph的需求设计,能够在 动态变化 和 异质结构 的 存储设备 机群 之上 提供一种稳定,   可扩展,高性能的 单一 逻辑对象 存储接口 和 能够实现节点的自适应和自管理的 存储系统 --->即实现集群一定程度上的智能化2)RADOS分布方式:授权给OSDs自主管理对象复制(即实现osd的智能化,减轻mon监控压力),,,通过这种分布方式,授权给OSDs自主管理对象复制,OSD集群扩展,错误检测和恢复的权利,来实现 在能力和总体性能 的 线性增长。RADOS将文件映射到Objects(逻辑对象)后利用Cluster Map通过CRUSH计算而不是查找表方式定位文件数据在存储设备中的位置。省去了传统的File到Block的映射和BlockMap管理。我的理解:osd只能执行命令的读写,本身没有数据处理(迁移等),错误检查等的功能,这一切由管理集群来处理,当osd节点非常多的时候,管理集群的性能就是ceph的瓶颈,而rados可以实现osd(通过授权的方式)自主的数据管理(复制,迁移等),错误检查等的功能,这样就减轻了管理集群的压力. 3)RADOS可扩展的集群管理:1>RADOS系统包括大量OSD节点(包括一个CPU、一些易失性内存、一个网络接口、本地磁盘或RAID)和规模小的负责管理的monitor(有单机进程并且需要少量的本地内存 )集合。2>Cluster(指示PostgreSQL 基于索引 (indexname 的度量)对表  table进行存储 建簇。)4)Cluster Map:1>Monitor集群管理维护Cluster map。Cluster map描述了数据在系统中的分布情况。客户端提供一个简单的接口把整个存储集群虚拟成一个单一的逻辑对象存储。2>在非常大的集群中,节点上千,OSD的出错和恢复都是比较平常的,因此,Cluser map的变动会很频繁。Cluster map的改变会触发map epoch的递增。Cluster map的更新以incremental maps的形式来进行分布,即用samll message来表示两个map epoch间的差异。很多更新被集中捆绑,以便描述间隔较长的map版本(看着有点像日志)。5)数据的放置:1>RADOS使用CRUSH伪随机算法,将数据伪随机地分布到设备上,当新设备增加,一个随机的现存数据的副本迁移到新设备上用以实现负载均衡。这个过程涉及到两个方面:1.计算正确的对象存储位置,2.不需要维护一个大型的集中分配表。2>对象先被映射到PG组(placement(放置) group),PG组表示逻辑上的对象集合,每个对象的PG由以下公式来计算得到:pgid=(r,hash(o)&m),r表示数据主从复制的等级,hash(o)表示对象名为o的键值,m表示控制PG总数的位掩码。个人理解:backup1cluster map            backup2Client---->PG--------------->  backup3(逻辑对象组) <---------    backup4(携带map epoch)            backup5......PG由其中一个osd负责当有新设备增加时,随机一个节点将数据副本反馈给PG,PG再根据cluster map来找到新增的节点,并将数据副本传给此节点,实现负载均衡3>PG组根据cluster map来映射到OSD节点上。每个PG被映射到有序的包含r个OSD节点的链表中。该映射通过CRUSH算法来实现(一个PG往一组设备OSD上映射)。CRUSH算法和hash算法的相似之处在于其PG值是确定的,但却是伪随机分布的;但不同的是,CRUSH是未定的,当一个或多个设备加入或离开集群时,PGs保持不变,CRUSH负责转移足够的数据来维护一个均衡的分布,HASH则更倾向于强制重新映射。6)Map传播(Map Propagation)由于ODS的数据很多,所以以广播的形式来更新所有的map是不合适的。但不同的map epochs之间的差异是很明显的,所以,当两个通信的OSD(或者客户端和OSD)不同时,map才会更新。这种方式可以使得RADOS对map的更新延迟,有效地将分布的负载转移到OSD上。个人理解:由于osd存储节点比较多,所以通过广播的方式不能做到数据实时更新,所以采用 检测 客户端与OSD(或者两个客户端之间通信)数据不同时,才会更新.OSD 智能存储设备上面我们提到了再RADOS当中,OSD拥有智能,减少了管理节点集群的负担,那么,接下来,我们就看一下OSD具体可以实现哪些任务7)RADOS实现三种不同复制策略:1>Primary copy:读和写都在第一个OSD上,然后并行地更新副本到其他OSD上2>chain:写在第一个OSD上,读在最后一个OSD上3>splay replication:hybrid方法,从最后一个OSD开始读,先在第一个OSD上写,然后并行地更新副本到其他OSD上8)强一致性首先,RADOS中的所有信息都携带发送方的map epoch,这是前提条件。1>如果一个发送方由于data map过期,定位到错误的OSD,该OSD会返回给它一个增量保证他更新之后重新定位到正确的OSD。2>如果cluster map的主拷贝更新了一个特定的PG中的成员,其他老成员依然可以处理更新;如果这个更新先被一个PG副本节点接收,这个change就会被立刻发现,当住OSD转发更新消息到这个节点时,这个副本节点就会返回map增量给主OSD。因为任何一个新负责一个PG的OSD都需要与原来负责的OSD进行联系(工作交接),来保证PG内容的正确。3>当新的OSD要负责一个PG时(工作交接),该组内所有老OSD都要被通知到,已确认自己的角色(类似于一个组换领导了,组内成员都得被通知一遍)。所以需要周期性地发送报文。这样为了保证主OSD故障时数据不可用的时间很短。(文章建议设定两秒)9)故障检测1>RADOS 采用一种异步的,有序的,点对点 的消息 传递方式 进行通信。OSD会与自己的对端(共享同一PG data的OSD)交换周期性报文,这样,如果一个OSD出现故障,几次连接都失败后会报告给管理集群,集群将报文周期性发送,OSD发现自己被标记为down后,会同步硬盘数据,然后挂掉自己来保证系统的一致性。10)数据迁移和故障恢复1>RADOS数据迁移和故障恢复完全是由Cluster map的更新和PG到OSD的映射驱动的。新的CRUSH策略会使所有数据重新分布。2>分层复制(declustered replication)能够进行并行的故障恢复。3>通过观察I/O读是否被限制来触发RADOS的recovery。4>RADOS中PG的恢复由primary OSD协调,可将任何对象推送到replia OSD,保证每个拷贝对象只读一次。11)MONITORS监视器1>Monitors是一个小的管理集群,通过春初Cluster Map的主拷贝,并周期性更新配置和OSD状态,管理整个存储系统。这个集群基于Paxos part-time parliament算法,保证数据一致性以及更新的延迟性。2>monitors集群的工作负载比较小,大部分map 的分配是由OSD承担的,monitors需要承担的时候是当设备状态出现变化的时候,比如设备故障了,但是通常这种状态变化是不经常发生的。3>monitors集群采用租约机制,允许任何monitor可以从OSD或Client请求Cluster map的拷贝。通常情况下,OSD很少发起更新请求,因为通常在此之前,map更新已经被共享了。而对于Client发起更新请求的情况也比较少,通常在OSD操作超时,或发生错误的时候。4>对Map update的请求会被转发给Monitors集群的当前leader。Leader汇集这些请求到一个Map Update。最坏的情况下Leader的负载情况如何?当大量OSD在一个短时间内同时发生故障,比如一个OSD中放了u个PG,有f个OSD发生故障,那么,最多会有uf个错误报告。当f比较大时,消息会非常多,OSD会在伪随机时间间隔发送报文,以保证这些错误被陆续检测,压制和分别报告。非leader的monitor对一个报错转发一次,因此,leader的请求负载为fm,m为集群中monitor的数量。5>我的感觉就是RADOS这个分发系统,通过OSD增加任务承担能力,减轻monitor的工作量。关键词是存储系统动态变化,集群扩建,更替,数据迁移,数据恢复。为了保证集群数据的一致性和可访问性引入Cluster map等机制,为ceph提供实现的基础。

##Os:

 架构师真的需要很多的细节,不能只停留在知其然,还要知其所以然.

Ceph分布式存储工作原理(Ceph分布式块存储)相关推荐

  1. 分布式存储--理解分布式文件系统、分布式块存储、分布式对象存储、分布式数据库

    1. 单机文件系统 vs 分布式文件系统 传统单机文件系统是计算机中一个非常重要的组件,为存储设备提供一致的访问和管理方式.在不同的操作系统中,文件系统会有一些差别,但也有一些共性几十年都没怎么变化: ...

  2. 这家十年磨剑的企业级存储厂商,为什么将分布式块存储也开源了?

    只要提到企业级存储,任何成功的厂商无不以十年为单位的积累,才能实现真正的创新. 当然,作为存储领域相对更为复杂的分布式块存储,存储创新公司一般都不太愿意碰它.原因很简单,在技术自研的道路上,更需要坐得 ...

  3. 分布式块存储QoS限速算法介绍与实践以及对上层应用的影响

    分布式块存储QoS限速算法以及对上层应用的影响 QoS限速算法介绍 令牌桶 Token Bucket 漏桶 Leaky Bucket Leaky bucket as a meter Leaky buc ...

  4. Anolis OS8.6QU1通过cephadm部署ceph17.2.0分布式块存储(三)添加其它主机和添加mgr节点

    本文尝试在龙蜥Anolis OS8.6QU1上通过cephadm部署ceph17.2.0分布式块存储,实现国产化操作系统上的存储系统构建,本步骤为完成首节点mon节点和图形界面,完成其它节点的基础安装 ...

  5. 鹏云网络分布式块存储社区版问世,首发开源存储解决方案

    2023年1月,南京鹏云网络科技有限公司(简称:鹏云网络)正式宣布开源ZettaStor DBS分布式块存储系统,开放了自研10余年的分布式块存储技术,自此踏上了"自研"与&quo ...

  6. Anolis OS8.6QU1通过cephadm部署ceph17.2.0分布式块存储(六)部署iscsi服务

    本文尝试在龙蜥Anolis OS8.6QU1上通过cephadm部署ceph17.2.0分布式块存储,实现国产化操作系统上的存储系统构建,本步骤为完成首节点mon节点和图形界面,完成其它节点的基础安装 ...

  7. 中国移动分布式块存储最大单揭晓,浪潮等中标

    中国移动采购与招标网11月1日消息,中国移动2019年至2020年分布式块存储产品集中采购中标候选人正式公示,按照公布的中标信息总体统计来看,该项目分布式块存储产品共计采购910套.这成为了中国移动和 ...

  8. 达沃时代发布分布式块存储服务系统 启动存储生态圈

    10月27日,达沃时代在北京召开主题为"打造数据沃土,营造千亿生态"的新闻发布会,发布存储新品逸存B系列(YeeStor B serials)分布式块存储服务系统,同时宣告了&qu ...

  9. 华为分布式块存储Fusion Storage知识总结(二)

    目录 一.华为分布式存储Fusion Storage介绍 二.Fusion Storage优势(特点) 1.高弹性和扩展性 2.高性能 3.高可靠性 4.高安全性 5.数据保护 6.高易用性 Fusi ...

最新文章

  1. 大学可以学前端开发_所有开发人员在大学中应该学习的东西
  2. 从Promise来看JavaScript中的Event Loop、Tasks和Microtasks
  3. 【深度学习】基于Pytorch多层感知机的高级API实现和注意力机制(三)
  4. gitchat 会员值得买么_小米雷军亲自站台,599元的星特朗天文望远镜值得买么?...
  5. TS Interface(接口)
  6. git 简单使用 基本操作
  7. MySQL小工具推荐
  8. 大数据对能源发展有什么作用
  9. springboot 配置 P6spy
  10. 集成电路实践----D触发器
  11. 智方8000系进销存管理系统 v11.29 绿色
  12. 电路串联和并联图解_迷惑我们很久的串联/并联谐振电路(多图、详解)
  13. VS Code自定义代码颜色
  14. 狂神说 | Spring完整版笔记
  15. 开放式经济系统设计[转载]
  16. wgs84坐标格式转换度分秒_WGS84经纬度坐标转换到西安80高斯投影坐标。
  17. Android +kotlin Banner 轮播广告 获取后台数据
  18. 计算机课程学习心得ppt,计算机课程学习心得体会.docx
  19. vim配置及常用插件安装
  20. lr_db_connect mysql_LR连接oracle数据库-lr_db_connect

热门文章

  1. 2021年数学建模国赛C题思路
  2. 谷歌裁员1.2万人,CEO年薪达15亿,网友:“地表最强 CEO !”
  3. Unity UI 动画 工具
  4. UE4 Decal 贴花不在静态光照下绘制
  5. randon变换(拉东变换)
  6. Ipad2022可以用电容笔吗?双十一值得入手电容笔推荐
  7. 共轭对称序列和共轭反对称序列
  8. 牛X,网易开源了这个项目后,结果被山寨出了无数个网易云音乐APP,网友炸锅了!...
  9. 解决报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “
  10. codeigniter linux url 大写,CodeIgniter中使用Smarty3基本配置