监视器与 OSD 交互的配置

(心跳配置)

完成基本配置后就可以部署、运行 Ceph 了。执行 ceph healthceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态。监视器通过让各 OSD 自己报告、并接收 OSD 关于邻居状态的报告来掌握集群动态。如果监视器没收到报告,或者它只收到集群的变更报告,那它就要更新集群运行图

关于监视器与 OSD 的交互 Ceph 提供了合理的默认值,然而你可以覆盖它们。下面几段从集群监控角度描述了 Ceph 监视器与 OSD 如何交互。

OSD 验证心跳

各 OSD 每 6 秒会与其他 OSD 进行心跳检查,用 [osd] 下的 osd heartbeat interval 可更改此间隔、或运行时更改。如果一个 OSD 20 秒都没有心跳,集群就认为它 down 了,用 [osd] 下的 osd heartbeat grace 可更改宽限期、或者运行时更改。

OSD 报告死亡 OSD

默认情况下,一个 OSD 必须向监视器报告三次另一个 OSD down 的消息,监视器才会认为那个被报告的 OSD down 了;配置文件里 [mon] 段下的 mon osd min down reports 选项( v0.62 之前是 osd min down reports )可更改这个最少 osd down 消息次数,或者运行时设置。默认情况下,只要有一个 OSD 报告另一个 OSD 挂的消息即可,配置文件里 [mon] 段下的 mon osd min down reporters 可用来更改必需 OSD 数( v0.62 之前的 osd min down reporters ),或者运行时更改。

OSD 报告互联失败

如果一 OSD 守护进程不能和配置文件中定义的任何 OSD 建立连接,它会每 30 秒向监视器索要一次最新集群运行图,你可以在 [osd] 下设置 osd mon heartbeat interval 来更改这个心跳间隔,或者运行时更改。

OSD 报告自己的状态

如果一 OSD 在 mon osd report timeout 时间内没向监视器报告过,监视器就认为它 down 了。在 OSD 守护进程会向监视器报告某些事件,如某次操作失败、归置组状态变更、 up_thru 变更、或它将在 5 秒内启动。你可以设置 [osd] 下的 osd mon report interval min 来更改最小报告间隔,或在运行时更改。 OSD 守护进程每 120 秒会向监视器报告其状态,不论是否有值得报告的事件。在 [osd] 段下设置 osd mon report interval max 可更改OSD报告间隔,或运行时更改。

配置选项

心跳选项应该置于配置文件的 [global] 段下。

监视器选项

mon osd min up ratio

描述:在把 OSD 标记为 down 前,保持处于 up 状态的 OSD 最小比例。
类型:Double
默认值:.3

mon osd min in ratio

描述:在把 OSD 标记为 out 前,保持处于 in 状态的 OSD 最小比例。
类型:Double
默认值:.3

mon osd laggy halflife

描述:滞后量消退时间,秒。
类型:Integer
默认值:60*60

mon osd laggy weight

描述:滞后量消退时新样本的权重。
类型:Double
默认值:0.3

mon osd adjust heartbeat grace

描述:设置为 true 时, Ceph 将根据滞后量伸缩。
类型:Boolean
默认值:true

mon osd adjust down out interval

描述:设置为 true 时, Ceph 将根据滞后量伸缩。
类型:Boolean
默认值:true

mon osd auto mark in

描述:Ceph 将把任何启动中的 OSD 标记为在集群中( in )。
类型:Boolean
默认值:false

mon osd auto mark auto out in

描述:把正在启动、且被自动标记为 out 状态的 OSD 标记为 in
类型:Boolean
默认值:true

mon osd auto mark new in

描述:把正在启动的新 OSD 标记为 in
类型:Boolean
默认值:true

mon osd down out interval

描述:在 OSD 停止响应多少秒后把它标记为 downout
类型:32-bit Integer
默认值:300

mon osd downout subtree limit

描述:Ceph 可以把最大为多少的 CRUSH 单元自动标记为 out
类型:String
默认值:rack

mon osd report timeout

描述:宣布无响应 OSD down 前的宽限期,秒。
类型:32-bit Integer
默认值:900

mon osd min down reporters

描述:确定一 OSD 状态为 down 的最少报告来源 OSD 数。
类型:32-bit Integer
默认值:1

mon osd min down reports

描述:一 OSD 必须重复报告另一个 down 的次数。
类型:32-bit Integer
默认值:3

OSD 选项

osd heartbeat address

描述:OSD 用于心跳的网络地址。
类型:Address
默认值:此主机的地址。

osd heartbeat interval

描述:一 OSD 探测邻居的频率,秒。
类型:32-bit Integer
默认值:6

osd heartbeat grace

描述:OSD 多久没心跳就会被集群认为它挂( down )了。
类型:32-bit Integer
默认值:20

osd mon heartbeat interval

描述:OSD 没有邻居时多久探测一次监视器。
类型:32-bit Integer
默认值:30

osd mon report interval max

描述:监视器允许 OSD 报告的最大间隔,超时将认为 OSD 挂了( down )。
类型:32-bit Integer
默认值:120

osd mon report interval min

描述:从一 OSD 启动或其它可报告事件发生以来,多长时间内必须向监视器报告一次。
类型:32-bit Integer
默认值:5
有效范围:要小于 osd mon report interval max

osd mon ack timeout

描述:OSD 等待监视器提供统计信息的时间,秒。
类型:32-bit Integer
默认值:30