搜档网
当前位置:搜档网 › ceph heartbeat分析

ceph heartbeat分析

Ceph heartbeat分析

张建伟

一、Heartbeat的作用

Heartbeat主要用于及时发现osd的状态变化(down或者up),由monitor更新osdmap,并同步到相关的osd。

二、Osd之间的heartbeat

1、选择heartbeat对象

基本上就是本osd负责的pg,所包含的其他osd的集合。

比如osd0包含pg1.1 pg1.2 pg2.1

pg1.1 => osd1 osd0 osd5

pg1.2 => osd0 osd6 osd7

pg2.1 => osd2 osd3 osd0

那么osd0的heartbeat对象就是osd1 osd2 osd3 osd5 osd6 osd7

2、Heartbeat过程

配置项:

三、Osd汇报down osds

四、Monitor裁定osd状态变化

流程图:

有osd down时:

有osd up 时:

Osd0与其他osd 心跳沟通,对

比osdmap 版本号,如果我的

更新则将diff 发送给其他

osd,这样其他osd 也知道osd0

up 了,且更新了osdmap

配置项:

五、Osd汇报peering失败

如果osd在peering发起或者进行期间,无法与某个osd连通,则会定时(通过osd mon heartbeat interval配置)ping monitor以获取最新的osdmap。

六、Osd汇报自己的状态

如果osd有需要汇报的事件,比如检测到有osd down、pg map状态变化、up_thru 变化等,osd会在osd mon report interval min配置的事件间隔内,向monitor汇报;否则会在osd mon report interval max配置的事件间隔内向monitor汇报。

如果osd超过一定时间(可以通过 mon osd report timeout配置)没有向monitor 汇报,monitor会将osd标记为down。

相关主题