返回顶部
首页 > 资讯 > 精选 >Ceph心跳机制的示例分析
  • 394
分享到

Ceph心跳机制的示例分析

2023-06-05 04:06:09 394人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Ceph心跳机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 心跳介绍心跳是用于节点间检测对方是否故障的,以便及时发现故障节点进入相应的故障处理流程。问题:故障

这篇文章将为大家详细讲解有关Ceph心跳机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1. 心跳介绍

心跳是用于节点间检测对方是否故障的,以便及时发现故障节点进入相应的故障处理流程。

问题:

  • 故障检测时间和心跳报文带来的负载之间做权衡。

  • 心跳频率太高则过多的心跳报文会影响系统性能。

  • 心跳频率过低则会延长发现故障节点的时间,从而影响系统的可用性。

故障检测策略应该能够做到:

  • 及时:节点发生异常如宕机或网络中断时,集群可以在可接受的时间范围内感知。

  • 适当的压力:包括对节点的压力,和对网络的压力。

  • 容忍网络抖动:网络偶尔延迟。

  • 扩散机制:节点存活状态改变导致的元信息变化需要通过某种机制扩散到整个集群。

2. Ceph 心跳检测

Ceph心跳机制的示例分析

ceph_heartbeat_mon.png

OSD报告给Monitor:

  • OSD有事件发生时(比如故障、PG变更)。

  • 自身启动5秒内。

  • OSD周期性的上报给Monito

    • OSD检查failure_queue中的伙伴OSD失败信息。

    • 向Monitor发送失效报告,并将失败信息加入failure_pending队列,然后将其从failure_queue移除。

    • 收到来自failure_queue或者failure_pending中的OSD的心跳时,将其从两个队列中移除,并告知Monitor取消之前的失效报告。

    • 当发生与Monitor网络重连时,会将failure_pending中的错误报告加回到failure_queue中,并再次发送给Monitor。

  • Monitor统计下线OSD

    • Monitor收集来自OSD的伙伴失效报告。

    • 当错误报告指向的OSD失效超过一定阈值,且有足够多的OSD报告其失效时,将该OSD下线。

5. Ceph心跳检测总结

Ceph通过伙伴OSD汇报失效节点和Monitor统计来自OSD的心跳两种方式判定OSD节点失效。

  • 及时:伙伴OSD可以在秒级发现节点失效并汇报Monitor,并在几分钟内由Monitor将失效OSD下线。

  • 适当的压力:由于有伙伴OSD汇报机制,Monitor与OSD之间的心跳统计更像是一种保险措施,因此OSD向Monitor发送心跳的间隔可以长达600秒,Monitor的检测阈值也可以长达900秒。Ceph实际上是将故障检测过程中中心节点的压力分散到所有的OSD上,以此提高中心节点Monitor的可靠性,进而提高整个集群的可扩展性。

  • 容忍网络抖动:Monitor收到OSD对其伙伴OSD的汇报后,并没有马上将目标OSD下线,而是周期性的等待几个条件:

    • 目标OSD的失效时间大于通过固定量osd_heartbeat_grace和历史网络条件动态确定的阈值。

    • 来自不同主机的汇报达到mon_osd_min_down_reporters。

    • 满足前两个条件前失效汇报没有被源OSD取消。

  • 扩散:作为中心节点的Monitor并没有在更新OSDMap后尝试广播通知所有的OSD和Client,而是惰性的等待OSD和Client来获取。以此来减少Monitor压力并简化交互逻辑。

6. 心跳设置

6.1 配置监视器/ OSD互动

您已完成初始Ceph的配置之后,您可以部署和运行的Ceph。当你执行一个命令,如ceph health 或 ceph -s , Ceph的监视器将报告CEPH存储集群的当前状态。Ceph的监视器通过每个Ceph的OSD守护实例,以及相邻的Ceph OSD守护实例,了解Ceph的存储集群的相关状态。Ceph的监视器如果没有收到报告,或者如果它接收Ceph的存储集群的变化的报告,Ceph的监视器更新的的CEPH集群映射图的状态。

Ceph为Ceph的监视器/ Ceph的OSD守护程序交互提供合理的默认设置。但是,您可以覆盖默认值。以下部分描述如何用Ceph的监视器和Ceph的OSD守护实例互动来达到Ceph的存储集群监控的目的。

6.2. OSDS检查心跳

每个Ceph的OSD守护程序检查其他Ceph的OSD守护进程的心跳每6秒。Ceph的配置文件下的[OSD]部分加入OSD   osd heartbeat interval ,或通过设定值在运行时,您可以更改心跳间隔。如果在20秒的宽限期内邻居的Ceph的OSD守护进程不显示心跳,Ceph的OSD守护进程可能考虑周边的Ceph OSD守护挂掉,并向一个Ceph的Monitor报告,这将更新的CEPH集群地图。一个OSD   osd heartbeat grace 可以在Ceph的配置文件下的[OSD]部分设置,或在运行时,你通过设置这个值改变这个宽限期。

6.3. OSDS报告挂掉的OSD

默认情况下,Ceph的OSD守护程序必须向Ceph的监视器报告三次:另一个Ceph的OSD守护程序已经挂掉,在Ceph的Monitor承认该报告Ceph的OSD守护挂掉之前。在(早期V0.62版本之前)Ceph的配置文件下的[MON]部分添加  osd min down reports setting,或者通过设定值在运行时,您可以更改OSD报告的挂掉的最低数量 。默认情况下,只有一个Ceph的OSD守护进程是必需报告另一个Ceph的OSD守护进程。您可以更改向Ceph监视器报告Ceph的OSD守护进程的Ceph的OSD Daemones 的数量,通过添加一个mon osd min down reporters设置在Ceph的配置文件中,或者通过设定值在运行时。

6.4. 凝视失败的OSD报告

Ceph的OSD守护进程如果不能和Ceph的配置文件(或群集地图)中定义的OSD守护同行,它将每30秒ping一个Ceph的监视器,为了最新副本的集群映射图。Ceph的配置文件 下的[OSD]部分加入  osd mon heartbeat interval  设置,或通过在运行时设定值,您可以更改Ceph的监控心跳间隔。

6.5. OSDS报告其状态

Ceph的OSD守护进程如果不向Ceph的监视器报告,至少每120秒一次,Ceph的监视器会考虑Ceph的OSD守护已经挂掉。您可以更改Ceph的监控报告间隔,通过加入 osd mon report interval max 设置在Ceph的配置文件的[OSD]部分,或者通过设置在运行时的值。Ceph的OSD守护进程会尝试报告其状态每30秒。在Ceph的配置文件下的[OSD]部分加入 osd mon report interval min s设置,或者通过设定值在运行时,您可以更改Ceph的OSD守护报告间隔。

7. 配置设置

修改心跳设置时,你应该将它们包括在 您的配置文件的[global]部分。

7.1 监视器MONITOR设置

参数说明类型默认值
mon OSD min up ratioCeph的OSD未挂掉的最低比率在Ceph的OSD守护程序被仍定挂掉之前double0.3
mon OSD min in ratioCeph的OSD实例的最低比率在Ceph的OSD守护程序被仍定出局之前double0.3
mon osd laggy halflifelaggy估计会腐烂的秒数int60 * 60
mon osd laggy weightlaggy估计衰减的新样本的权重double0.3
mon osd adjust heartbeat grace如果设置为true,Ceph将在laggy估计的基础上扩展booltrue
mon osd adjust down out interval如果设置为true,Ceph基于laggy估计扩展booltrue
mon osd auto mark inCeph将标记任何引导的Ceph的OSD守护进程作为在 CEPH存储集群boolfalse
mon osd auto mark auto out inCeph的标记引导Ceph的OSD守护 Ceph的存储集群,集群中的自动标记booltrue
mon osd auto mark new in头孢将迎来启动新的Ceph的OSD守护在 Ceph的存储集群booltrue
mon osd down out subtree limit最大的CRUSH单位Ceph的类型,会自动标记出来Stringrack
mon osd report timeout宽限期秒下来在声明反应迟钝Ceph的OSD守护前32-bit Integer900
mon osd min down reportersCeph的OSD守护报告向下 Ceph的OSD守护所需的最低数量32-bit Integer1
mon osd min down reportsCeph的OSD守护的最低次数必须报告说,另一个Ceph的OSD守护下来32-bit Integer3

7.2 OSD设置

参数说明类型默认值
OSD heartbeat address一个Ceph的OSD守护进程的网络地址的心跳AddressThe host address
OSD heartbeat interval多久Ceph的OSD守护坪及其同行(以秒计)32-bit Integer6
OSD heartbeat graceCeph的OSD当一个守护进程并没有表现出心跳Ceph的存储集群认为,经过时间的32-bit Integer20
OSD mon heartbeat intervalCeph的的OSD守护坪一个Ceph的监视器如果它没有的CEPH OSD守护同行,多久32-bit Integer30
OSD mon report interval maxCeph的OSD守护进程报告Ceph的监视器Ceph的监视器前认为Ceph的OSD守护下来的时间以秒为单位的最大32-bit Integer120
OSD mon report inteval min秒为Ceph的OSD的守护Ceph的监视器,以防止Ceph的监视器考虑Ceph的OSD守护的最低数量32-bit Integer5 (有效范围:应小于OSD 周一 报告 间隔 最大)
OSD mon ACK timeout等待的秒数为Ceph的监视器确认请求统计32-bit Integer

关于“Ceph心跳机制的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Ceph心跳机制的示例分析

本文链接: https://lsjlt.com/news/241157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Ceph心跳机制的示例分析
    这篇文章将为大家详细讲解有关Ceph心跳机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 心跳介绍心跳是用于节点间检测对方是否故障的,以便及时发现故障节点进入相应的故障处理流程。问题:故障...
    99+
    2023-06-05
  • ceph心跳机制异常的处理方法
    ceph心跳机制异常的处理方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。部署使用ceph集群的时候遇到一个情况,在大规模集群的时候,有节点网络或者osd异常时,mon迟...
    99+
    2023-06-05
  • Ceph Primary Affinity的示例分析
    小编给大家分享一下Ceph Primary Affinity的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Ceph Primary Affinity[root@mon0 yum.repos.d]#&nb...
    99+
    2023-06-27
  • 小程序websocket心跳库的示例分析
    这篇文章给大家分享的是有关小程序websocket心跳库的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。介绍websocket-heartbeat-miniprogram...
    99+
    2024-04-02
  • Flink源码解析(三)——从RM与TM的心跳交互分析Flink心跳机制
    0. 说明 基于Flink 1.12 1. 背景知识 1.1 Actor模型 Flink底层RPC是通过AKKA实现的,AKKA是基于Actor模型实现的框架。下面,将大致介绍一下actor模型。 在Actor模型中,一切事物都是acto...
    99+
    2015-12-03
    Flink源码解析(三)——从RM与TM的心跳交互分析Flink心跳机制
  • 怎么用Hadoop源码分析心跳机制
    这篇文章将为大家详细讲解有关怎么用Hadoop源码分析心跳机制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一.心跳机制 hadoop集群是master/slave模式,master包括Na...
    99+
    2023-06-17
  • ceph rbd在线resize的示例分析
    这篇文章主要为大家展示了“ceph rbd在线resize的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ceph rbd在线resize的示例分析”这篇文章吧。ceph rbd在线re...
    99+
    2023-06-27
  • docker中ceph pool管理的示例分析
    这篇文章给大家分享的是有关docker中ceph pool管理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。    可以将 PG 看作⼀个逻辑容器,这个容器里包含...
    99+
    2023-06-04
  • ceph中rbd format1与rbd fromat2的示例分析
    小编给大家分享一下ceph中rbd format1与rbd fromat2的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!rbd format1与rbd ...
    99+
    2023-06-27
  • docker中ceph用户管理的示例分析
    这篇文章主要为大家展示了“docker中ceph用户管理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“docker中ceph用户管理的示例分析”这篇文章吧。profile mds (M...
    99+
    2023-06-04
  • MySQL锁机制的示例分析
    这篇文章主要介绍了MySQL锁机制的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。锁在MySQL中是非常重要的一部分,锁对MySQL...
    99+
    2024-04-02
  • Ceph源码编译与打包的示例分析
    小编给大家分享一下Ceph源码编译与打包的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1clone repository源码打包docker 7u机器:lvjian100081200005.et15sqagit ...
    99+
    2023-06-04
  • oracle中SCN机制的示例分析
    小编给大家分享一下oracle中SCN机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SCN(System Chan...
    99+
    2024-04-02
  • CSS层叠机制的示例分析
    这篇文章主要为大家展示了“CSS层叠机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS层叠机制的示例分析”这篇文章吧。css中为什么要有层叠机制...
    99+
    2024-04-02
  • css溢出机制的示例分析
    这篇文章主要为大家展示了“css溢出机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css溢出机制的示例分析”这篇文章吧。为什么需要深入学习CSS溢...
    99+
    2024-04-02
  • Node.js中GC机制的示例分析
    这篇文章主要为大家展示了“Node.js中GC机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js中GC机制的示例分析”这篇文章吧。V8 ...
    99+
    2024-04-02
  • JavaScript执行机制的示例分析
    小编给大家分享一下JavaScript执行机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!进程与线程我们都知道计算机...
    99+
    2024-04-02
  • Flex事件机制的示例分析
    这篇文章主要为大家展示了“Flex事件机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex事件机制的示例分析”这篇文章吧。什么是Flex事件机制Flex事件可以看作是一种触发机制...
    99+
    2023-06-17
  • Flex绑定机制的示例分析
    这篇文章给大家分享的是有关Flex绑定机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex绑定机制在我们了解了事件机制后,那么理解Flex绑定就不难了,Flex绑定其实也是事件机制的运用。1.什么...
    99+
    2023-06-17
  • laravel7.0广播机制的示例分析
    小编给大家分享一下laravel7.0广播机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!laravel7.0广播机制(Redis + socket....
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作