许吉友 - 运维

Ceph 心跳配置

官方文档:https://ceph.readthedocs.io/en/latest/rados/configuration/mon-osd-interaction/

当执行诸如 ceph health 或 ceph -s 之类的命令时,Ceph Monitor 将报告 Ceph 存储集群的当前状态。Ceph Monitor 通过要求每个 Ceph OSD 守护程序提供报告,以及从 Ceph OSD 守护程序接收有关其相邻 Ceph OSD 守护程序状态的报告来了解 Ceph 存储集群。如果 Ceph Monitor 未收到报告,或者收到 Ceph 存储群集中的更改报告,则 Ceph Monitor 会更新Ceph群集 Map 的状态。

Ceph 为 Ceph Monitor / Ceph OSD Daemon 交互提供了合理的默认设置。但是,您可以覆盖默认设置。以下各节描述了 Ceph Monitor 和Ceph OSD 守护程序如何交互以监视 Ceph 存储群集。

每个 Ceph OSD 守护程序以不到每 6 秒一次的随机间隔检查其他 Ceph OSD 守护程序的心跳。如果相邻的 Ceph OSD 守护进程在 20 秒宽限期内未显示心跳,则 Ceph OSD 守护进程可能会考虑将相邻的 Ceph OSD 守护进程关闭并报告给 Ceph Monitor,后者将更新 Ceph 群集映射。可以通过在 Ceph 配置文件的 [mon] 和 [osd] 或 [global] 部分下添加 osd 心跳宽限期设置,或在运行时设置值来更改此宽限期。

OSD 失联

默认情况下,来自不同主机的两个 Ceph OSD 守护进程必须先向 Ceph Monitor 报告另一个 Ceph OSD 守护进程已关闭,然后Ceph Monitor 才确认所报告的 Ceph OSD 守护进程已关闭。但是有可能所有报告故障的 OSD 都托管在机架中,而该交换机的开关损坏,无法连接到另一个OSD。为了避免这种错误警报,我们认为对等方报告了故障,将其作为整个集群上类似的落后集群的潜在“子集群”的代理。这显然并非在所有情况下都是正确的,但有时会帮助我们将宽限度校正本地化到不满意的系统子集。mon osd reporter subtree level用于按 CRUSH 映射中的对等方的祖先类型将对等方分组为“子集群”。默认情况下,只需要来自不同子树的两个报告即可报告另一个Ceph OSD守护进程。可以更改唯一子树的报告者数量以及将 Ceph OSD 守护程序报告给 Ceph Monitor 所需的公共祖先类型。通过在 Ceph 配置文件的 [mon] 部分下添加 mon osd min down reportersmon osd reporter subtree level 设置,或在运行时设置值。

../../../_images/539d4767f6071669bd3abcc77432af9b55d9525c4a34ed11395ee05e6a33fd65.png

如果 Ceph OSD 守护程序无法在其 Ceph 配置文件(或群集映射)中定义的任何 Ceph OSD 守护程序建立对等关系,它将每30秒 ping Ceph Monitor 以获得群集映射的最新副本。您可以通过在 Ceph 配置文件的 [osd] 部分下添加 osd mon heartbeat interval 设置,或通过在运行时设置值来更改Ceph Monitor心跳间隔。

../../../_images/3bd973b9f631fb4d138cea852c1daef4326821a68e672f8ee6b6b4d7e98f5a94.png

心跳配置

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

Monitor 配置

mon osd min up ratio

mon osd min in ratio

mon osd laggy halflife

mon osd laggy weight

mon osd laggy max interval

mon osd adjust heartbeat grace

mon osd adjust down out interval

mon osd auto mark in

mon osd auto mark auto out in

mon osd auto mark new in

mon osd down out interval

mon osd down out subtree limit

mon osd report timeout

mon osd min down reporters

mon osd reporter subtree level

OSD 配置

osd heartbeat address

osd heartbeat interval

osd heartbeat grace

osd mon heartbeat interval

osd mon heartbeat stat stale

osd mon report interval

osd mon ack timeout