ceph_osd故障检测
1. 当前monitor可以通过3种途径检测到osd离线
1) Osd自主上报

2) Osd通过投票的方式(满足一下条件之一,mon会将osd标记为down)
a) 投票携带了Force/Immediate标识(和其他osd建立链接时返回econnrefused)
b) 有效票数已经达到阈值mon_osd_min_down_reporters(默认为2)(同一故障域只会记1票)
<1> 选择每个pg的Up与Acting中的osd
<2> 选择在编号上与本osd相邻的前一个和后一个状态为Up的osd
<3> 如果该osd的心跳伙伴个数小于最小值osd_heartbeat_min_peers(默认为10),则以本osd编号作为基准,依次选择集群中下一个状态为Up,编号相邻的osd,直至达到最小值
Note: osd之间的心跳采用单播(点对点)的方式(如果集群较大,采用广播可能会导致广播风暴)
3) 周期性向monitor发送beacon消息进行保活
Osd周期性向monitor发送beacon消息进行保活osd_beacon_report_interval(默认100秒),超过mon_osd_report_timeout(默认 300秒)没有收到osd的beacon消息,则将该osd标记为Down
2. osd心跳
1) osd之间的心跳:
OSD 之间每 osd_heartbeat_interval(默认 2 秒)会有一个来回心跳包的检测,该心跳包会分别从public和cluster网分别发出,当一个 OSD 在 osd_heartbeat_grace(默认 7 秒)时间内没有收到其他 OSD 心跳的时候,那么这个 OSD 会向 MON 汇报说另一个 OSD 心跳已经超时。当MON 收到多个来自不同故障域的 OSD 都汇报了同一个 OSD 的心跳问题,就会将这个 OSD mark DOWN
2) OSD向mon报告自己的状态:
OSD每最小osd_beacon_report_interval(默认100秒),如果一 OSD 在 mon_osd_report_timeout(默认300秒) 时间内没向mon报告过自己的状态,mon就认为它 down 了。
3) Osd向mon报告自己的事件
从一 OSD 启动或其它可报告事件发生以来,osd_mon_report_interval_min(默认3秒)时间内必须向监视器报告一次,监视器允许 OSD 报告的最大间隔为osd_mon_report_interval_max(默认为15秒),超时将认为 OSD 挂了( down )
4) Osd心跳参数:
osd_heartbeat_interval
描述:默认值2,osd发送heartbeat给其他osd的间隔时间
osd_heartbeat_grace
描述:默认值7,OSD 多久没心跳就会被集群认为它挂( down )了
5) Osd向mon心跳参数
osd_beacon_report_interval
描述:默认值100,osd报告beacon消息间隔
mon_osd_report_timeout
描述:默认值300,宣布无响应 OSD down 前的宽限期,秒
mon_osd_adjust_heartbeat_grace
描述:默认值false,设置为 true 时, Ceph 将根据滞后量伸缩
6) Osd事件参数:
osd_mon_report_interval_min
描述:默认值3,从一 OSD 启动或其它可报告事件发生以来,多长时间内必须向监视器报告一次
osd_mon_report_interval_max
描述:默认值15,监视器允许 OSD 报告的最大间隔,超时将认为 OSD 挂了( down )
mon_osd_down_out_interval
描述:默认值10800,在 OSD 停止响应多少秒后把它标记为 down 且 out
mon_osd_adjust_down_out_interval
描述:默认值false,设置为 true 时, Ceph 将根据滞后量伸缩
3. 参考资料:
1、http://wiki.xsky.com
2、《ceph之rados设计原理与实现》
3、http://docs.ceph.com
ceph_osd故障检测的更多相关文章
- Ceph剖析:故障检测
作者:吴香伟 发表于 2014/10/10 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 心跳是用于OSD节点间检测对方是否故障的,以便及时发现故障节点进入相应 ...
- LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧
LTE用户文档 (如有不当的地方,欢迎指正!) 21 Examples Programs(示例程序) 路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...
- Windows10系统故障检测你知道多少-上海IT33
Windows 10作为微软公司最新的一款操作系统,从使用的方便和界面的整洁上来说,固然是很好的,但是其因为隐私问题,致使很多人不惜一切代价想要远离Windows 10这款操作系统.尽管Windows ...
- 剑指Offer——知识点储备-故障检测、性能调优与Java类加载机制
剑指Offer--知识点储备-故障检测.性能调优与Java类加载机制 故障检测.性能调优 用什么工具可以查出内存泄露 (1)MerroyAnalyzer:一个功能丰富的java堆转储文件分析工具,可以 ...
- [深度应用]·DC竞赛轴承故障检测开源Baseline(基于Keras 1D卷积 val_acc:0.99780)
[深度应用]·DC竞赛轴承故障检测开源Baseline(基于Keras1D卷积 val_acc:0.99780) 个人网站--> http://www.yansongsong.cn/ Githu ...
- Greenplum FTS故障检测原理
前言 FTS(Fault Tolerance Serve)是GreenPlum中的故障检测服务,是保证GP高可用的核心功能.GreenPlum的Segment的健康检测及HA是由GP Master实现 ...
- 故障检测、性能调优与Java类加载机制
故障检测.性能调优与Java类加载机制 故障检测.性能调优 用什么工具可以查出内存泄露 (1)MerroyAnalyzer:一个功能丰富的java堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消 ...
- 基于案例分析 MySQL Group Replication 的故障检测流程
故障检测(Failure Detection)是 Group Replication 的一个核心功能模块,通过它可以及时识别集群中的故障节点,并将故障节点从集群中剔除掉.如果不将故障节点及时剔除的话, ...
- Windows Azure的故障检测和重试逻辑
高度可用的应用程序设计的一个关键点,是利用代码中的重试逻辑正常处理临时中断的服务.Microsoft 模式和实践团队开发的暂时性故障处理应用程序块可协助应用程序开发人员完成此过程.“暂时性”一词表示仅 ...
随机推荐
- Apache rewrite 出现 400 Bad Request 的解决方法
<VirtualHost *:80 *:81> ServerAdmin deng5765@163.com DocumentRoot /active/www/ ...
- 深度剖析collections模块
namedtuple OrderedDict deque tuple defaultdict Counter ChainMap
- Win8.1(64bit) Hyper-V 安装Ubuntu 14.04LTS(64 bit)
为了学习在Linux平台下开发,时隔将近一年多,重新搭建开发环境. 写文档确实很费时间,不过还是很有必要写的,这么一个简单的事情花了接近3个小时才算最终大功告成. 像这种连环嵌套的问题,一旦超过了1个 ...
- Java字节码
Java字节码 javap -c 反编译.class文件可得字节码 知乎讨论https://www.zhihu.com/question/27831730 栈和局部变量操作 将常量压入栈的指令 aco ...
- C#使用ADO操作Excel
1 说明 把excel当成一个数据库,类似于Access数据库来操作. 2 源代码 2.1 Model层 /// <summary> /// 人员信息 /// </summary&g ...
- 数据库与vs的连接
新建一个MFC基于对话框的项目后,更改属性, 其中需要将include(里面都是MySQL的头文件)lib是库文件,将.dll放入与.exe同级目录下,或放入系统里(c:\windows\system ...
- js的简单介绍及基本用法
1. JS的简介 概述: JavaScript, 是一门弱类型语言, 用来给页面增加动态功能的. //弱类型语言: 对数据的数据类型划分不精细(不明确). 特点: A. JavaScript 是一种轻 ...
- Project2--Lucene的Ranking算法修改:BM25算法
原文出自:http://blog.csdn.net/wbia2010lkl/article/details/6046661 1. BM25算法 BM25是二元独立模型的扩展,其得分函数有很 ...
- POI 生成exel报表
去官网下载相关jar包 http://poi.apache.org/ package poi.zr.com; import java.io.File; import java.io.FileNot ...
- 新浪SAE高级开发者认证通过
如题,新浪SAE高级开发者认证通过,申请的方式为提交开源项目地址,用的是如下的项目 http://jqext.sinaapp.com/ 之前该项目是部署在 mopaas 上的,在拿到高级开发者资格后迁 ...