首页 > 编程知识 正文

故障检测原则,主板故障检测

时间:2023-05-05 11:03:43 阅读:51731 作者:4468

1 .节点故障检测摘要节点故障检测是分布式系统中不可避免的问题,集群需要感知节点的生存并进行适当的调整。 通常,我们认为通过心跳方式进行故障检测,能够正常与外界保持心跳的节点能够正常提供服务。 良好的故障检测策略应该能够:

及时)节点发生停机或网络中断等异常时,集群可以在可接受的时间范围内感知; 包括对适当的压力节点的压力和对网络的压力; 3358 www.Sina.com/http://www.Sina.com/:节点生存状态变化引起的元信息变化需要通过某种机制扩散到整个集群; 不同的分布式系统本身结构不同,对一致性、可用性和可扩展性的需求也不同,因此对这些方面会有不同的选择或取舍。 看看Ceph是怎么做的。

2. Ceph故障检测机制Ceph作为中心的分布式结构,元信息的维护和更新自然由其中心节点Ceph监视器负责。 即使节点的生存状态发生变化,也需要监视器来发现和更新元信息并通知所有OSD节点。 最自然的做法是在中心节点Monitor和所有OSD节点之间保持频繁的心率,但这样做会对Monitor造成相对较大的压力,如果有数百、成千上万个OSD节点。 以前在Ceph Monitor and Paxos中介绍的Ceph的设计思路是通过更智能的OSD和客户端来减轻对中心节点Monitor的压力。 同样,节点故障检测也需要OSD和Monitor的协作。 的介绍基于当前最新的11.0.0版。

容忍网络抖动属于同一pg的OSD我们称为合作伙伴OSD。 他们互相发送PING纯真的香菇信息,记录发送接收的时间。 OSD在cron上发现合作伙伴OSD对应的超时后,将其放入failure_queue队列,等待后续报告。

扩散机制

OSD_heartbeat_interval(6) :向伙伴OSD发送ping的时间间隔。 实际上,在此基础上加上随机时间,避免高峰。 osd_heartbeat_grace(20 (:假设对方从down 2.2 OSD向Monitor报告合作伙伴OSD失效的OSD发送了错误报告OSD的周期性检查failure_queue的合作伙伴OSD的失败信息向监视器发送失效报告,将失败信息添加到failure_pending队列,然后从failure_queue中删除; 如果从failure_queue或failure_pending中的OSD接收到心跳,请通知监视器从两个队列中删除并取消以前的失效报告; 与监视器网络重新连接时,failure_pending错误报告将返回到failure_queue并重新发送到监视器。 监视器统计下划线OSD监视器收集来自OSD的伙伴失效报告; 如果错误报告指向的OSD禁用超过了特定阈值,并且有足够数量的OSD报告了该禁用,则使该OSD脱机。2.1 OSD之间心跳

OSD_heartbeat_grace(20 ) :可以确定OSD失效的时间阈值; mon _ OSD _ reporter _ subtree _ level (“host”) :在哪个级别汇总错误报告数? 默认值为host。 即,来自不同主机的osd报告mon_osd_min_down_reporters(2) :包括来自不同mon_osd_reporter_subtree_level的osd报告因此,失效时间阈值通常为:发生从由osd_heartbeat_grace指定的值2.3 OSD向Monitor心跳OSD的pg状态变更等事件,或者在达到一定的时间间隔后,在Monitor中输入msg Monitor周期性检查所有OSD的last_osd_report,发现失效的节点并将其标记为Down。参数:

mon_osd_report_timeout(900 ):Monitor有多久没有收到OSD的报告,将其标记为Down; OSD _ mon _ report _ interval _ max (600 ):OSD向监视器报告多长时间; OSD_mon_report_interval_min(5):OSD向监视器报告的最小时间间隔3 .从总结中可以看出,在Ceph中,伙伴OSD报告失效节点,而监视器是OSD还是回到开头提到的一个合格的故障检测机制需要实现的地方,结合Ceph的实现方式了解其设计思路。

参数::合作伙伴OSD可以在秒级别发现节点故障并报告给Monitor,然后在几分钟内Monitor使故障OSD脱机。 当然,由于对Ceph一致性的要求,在此过程中客户端写入不可避免地被阻止,因为有参数::合作伙伴OSD报告机制,所以Monitor和OSD之间的心率统计是一种保留Ceph将实际故障检测中中心节点的压力分布到所有OSD中,提高中心节点Monitor的可靠性,进而提高集群的整体扩展性;及时:Monitor在收到OSD向合作伙伴OSD的报告后,不会立即使目标OSD离线,而是周期性地等待一些条件。 1、目标OSD失效时间超过一定量的osd_heartbeat_grace和历史网络条件下动态确定的阈值; 2 )来自不同主机的报告达到mon_osd_min_down_reporters。 3 )在满足前两个条件之前,源OSD未取消失效报告。适当的压力:中心节点Monitor更新OSDMap,然后惯性等待OSD和客户端获取,而不是尝试向所有OSD和客户端广播通知。 这样可以减轻监视器的压力,简化对话逻辑。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。