1 maps 更新

1.1 更新规则


Because cluster map changes may be frequent, as in a very large system where OSDs failures and recoveries are the norm, updates are distributed as incremental maps(增量更新): small messages describing the differences between two successive epochs. In most cases, such updates simply state that one or more OSDs have failed or recovered, although in general they may include status changes for many devices, and multiple updates may be bundled together to describe the difference between distant map epochs.

由于RADOS集群坑内包含成千上万的设备,简单的广播Map更新消息到每个节点是不实际的.

  1. map增量更新,只描述变化信息,通常是一个或多个节点错误或恢复
  2. 间隔比较长的map,将多个跟新捆绑.一次更新
  3. 将压力转移到OSD间通信,OSD和client通讯,OSD自己相互更新map

一个OSD与其他Peer联系时都会共享和更新Map
心跳消息会周期的交换以检测异常保证更新快速扩散,对于一个有n个OSD的集群,用到的时间为O(logn)。
所有的RADOS消息(包括从客户端发起的消息,以及从其他OSD发起的消息)都携带了发送端的map epoch,以保证所有更新操作都能够在最新的版本上保持一致。如果一个客户端因为使用了一个过期的map,发送一个IO到一个错误的OSD,OSD会回复一个适当的增量,客户端再重新发送这个请求到正确的OSD。这就避免了主动共享map到客户端,客户端会在与Cluster联系的时候更新。大部分时候,他们都会在不影响当前操作的时候学到更新,让接下来的IO能够准确的定位。

解析 Ceph : OSD , OSDMap 和 PG, PGMap
http://www.wzxue.com/ceph-osd-and-pg/

Monitor 作为Ceph的 Metada Server 维护了集群的信息,它包括了6个 Map,分别是 MONMap,OSDMap,PGMap,LogMap,AuthMap,MDSMap。其中 PGMap 和 OSDMap 是最重要的两张Map.

这时它们的通信就会附带上 OSDMap 的 epoch

Ceph 通过管理多个版本的 OSDMap 来避免集群状态的同步,这使得 Ceph 丝毫不会畏惧在数千个 OSD 规模的节点变更导致集群可能出现的状态同步。

1.2 OSDmap过程

  1. 新osd启动
    因此该 OSD 会向 Monitor 申请加入,Monitor 再验证其信息后会将其加入 OSDMap 并标记为IN,并且将其放在 Pending Proposal 中会在下一次 Monitor “讨论”中提出,OSD 在得到 Monitor 的回复信息后发现自己仍然没在 OSDMap 中会继续尝试申请加入,接下来 Monitor 会发起一个 Proposal ,申请将这个 OSD 加入 OSDMap 并且标记为 UP 。然后按照 Paxos 的流程,从 proposal->accept->commit 到最后达成一致,OSD 最后成功加入 OSDMap 。当新的 OSD 获得最新 OSDMap 发现它已经在其中时。这时,OSD 才真正开始建立与其他OSD的连接,Monitor 接下来会开始给他分配PG。
  2. osd down
    这个 OSD 所有的 PG 都会处于 Degraded 状态。然后等待管理员的当一个 OSD 因为意外 crash 时,其他与该 OSD 保持 Heartbeat 的 OSD 都会发现该 OSD 无法连接,在汇报给 Monitor 后,该 OSD 会被临时性标记为 OUT,所有位于该 OSD 上的 Primary PG 都会将 Primary 角色交给其他 OSD(Monitor 维护了每个Pool中的所有 PG 信息.下一步决策

2 Ceph OSDMap 机制浅析

http://www.xsky.com/tec/ceph-osdmap/


SDMap 机制主要包括如下3个方面:

  1. Monitor 监控 OSDMap 数据,包括 Pool 集合,副本数,PG 数量,OSD 集合和 OSD 状态。

ceph osdmap crush 分析相关推荐

  1. ceph osdmap crush 分析

    1 maps 更新 1.1 更新规则   Because cluster map changes may be frequent, as in a very large system where OS ...

  2. 《Ceph源码分析》——导读

    本节书摘来自华章出版社<Ceph源码分析>一书中的导读,作者常涛,更多章节内容可以访问云栖社区"华章计算机"公众号查看 目 录 序言 第1章 Ceph整体架构 1.1 ...

  3. 《Ceph源码分析》——第1章,第5节RADOS

    本节书摘来自华章出版社<Ceph源码分析>一书中的第1章,第1.5节RADOS,作者常涛,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.5 RADOS RA ...

  4. Ceph分布式存储系统优化分析

    前篇文章"Ceph分布式存储系统架构研究综述"重点分析了Ceph分布式存储系统架构,今天接着Ceph话题,继续分享Ceph常见的系统和性能优化技术. Ceph支持多种存储访问接口, ...

  5. 《Ceph源码分析》——第1章,第一节Ceph的发展历程

    本节书摘来自华章出版社<Ceph源码分析>一书中的第1章,第1.1节Ceph的发展历程,作者常涛,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 Ceph ...

  6. 《Ceph源码分析》——第2章,第2节Buffer

    本节书摘来自华章出版社<Ceph源码分析>一书中的第2章,第2.2节Buffer,作者常涛,更多章节内容可以访问云栖社区"华章计算机"公众号查看 2.2 Buffer ...

  7. Ceph MDS问题分析

    1. 问题背景 1.1 客户端缓存问题 $ ceph -s health HEALTH_WARN mds0: Client xxx-online00.gz01 failing to respond t ...

  8. Ceph 的 Crush 算法原理(中文翻译)

    目录 概要 1 简介 2 相关工作 3 CRUSH 算法 3.1 分层集群映射 3.2 副本放置 3.3 Map的变化和数据移动 3.4 Bucket类型 4 评价 4.1 数据分布 4.2 重组与数 ...

  9. pprof搭配ceph tell命令分析ceph内存

    文章目录 安装 使用 使用`ceph tell`产生堆栈信息文 使用`pprof`工具分析内存及`ceph tell`释放内存 火焰图`FlameGraph`可视化进程堆栈信息 pprof是一个goo ...

最新文章

  1. 史上最全GAN综述2020版:算法、理论及应用
  2. 编程打开Windows服务控制管理器
  3. 大话ion系列(五)
  4. 文献记录(part78)--Structure-Constrained Low-Rank Representation
  5. 在linux内核3.14.43添加自己的驱动源码,linux内核如何加入自己的驱动
  6. csredis封装_ASP.NET Core 2.0下使用Redis——基于CSRedis实现
  7. 8年前端开发的知识点沉淀(不知道会多少字,一直写下去吧...)
  8. 人工智能在财富领域的应用与探索
  9. win7下linux 双系统安装教程,【系统安装】双系统——Win7下安装linux系统详细步骤...
  10. linux模拟发包工具,linux发包软件-线不是一个压力测试工具的linux以上收缩服务器可...
  11. java 学习资料总结
  12. Sql server2005 char/varchar/text和nchar/nvarchar/ntest的区别
  13. 【360校招笔试】第一题:计算表面积
  14. Spring 官方文档(中文翻译)
  15. 启英泰伦产品方案开发流程
  16. OpenStack Days China:华云数据CTO郑军分享OpenStack创新实践
  17. Scrapy 爬取七麦 app数据排行榜
  18. 解决OneNote for Windows10无法联网及同步笔记问题
  19. 漫画:什么是旅行商问题?
  20. 九九乘法表 -- 2015/9/24

热门文章

  1. 小程序网络错误,切换4G流量,或者切换wifi随机出现
  2. 分布式技术一周技术动态 2015.12.06
  3. 21日《家校合力,共育成长》直播课笔记
  4. 不知道吃什么,前端代码html+js实现,直接运行
  5. 2001年中国股市的技术走势回顾
  6. 什么是所谓的车规级?
  7. 信息组织 | 历史发展与未来趋向
  8. cookie注入 base64注入 原理详解
  9. Photoshop中的一些简单操作及制作
  10. win10误删引导文件,0xc0000098的解决方案,bcd引导文件受损情况分析