注意
本文档适用于 Ceph 开发版本。
配置监控器/OSD交互
在您完成初始Ceph配置后,您可以部署和运行Ceph。当您执行命令时,例如ceph health
或ceph -s
, 会报告当前Ceph监控器的状态Ceph存储集群。Ceph监控器通过要求每个Ceph OSD 守护进程提供报告,并通过接收Ceph OSD守护进程关于其相邻Ceph OSD守护进程状态的报告来了解Ceph存储集群。如果Ceph监控器没有收到报告,或者它收到关于Ceph存储集群变化的报告,则Ceph监控器会更新Ceph.
Ceph为Ceph监控器/Ceph OSD守护进程交互提供合理的默认设置。但是,您可以覆盖默认值。以下部分描述了Ceph监控器和Ceph OSD守护进程如何交互以监控Ceph存储集群。
OSDs检查心跳
每个Ceph OSD守护进程以小于每6秒一次的随机间隔检查其他Ceph OSD守护进程的心跳。如果相邻的Ceph OSD守护进程在20秒的宽限期中没有显示心跳,则Ceph OSD守护进程可能会认为相邻的Ceph OSD守护进程down
并向Ceph监控器报告,Ceph监控器将更新Ceph集群地图。您可以通过在您的Ceph配置文件的osd heartbeat grace
设置来更改Ceph监控器报告间隔,或通过实时设置值。[mon]
和[osd]
或[global]
部分下添加一个
OSDs报告宕机OSD
默认情况下,来自不同主机的两个Ceph OSD守护进程必须在Ceph监控器确认报告的Ceph OSD守护进程是down
之前向Ceph监控器报告另一个Ceph OSD守护进程。但是,所有报告故障的OSD都有可能托管在一个有问题的机架中,该机架连接到另一个OSD存在问题。为了避免这种误报,我们认为报告故障的对等体是潜在“子集群”的代理,该子集群在整体集群中同样滞后。这显然不是所有情况都成立,但有时可以帮助我们将宽限期更正定位到系统不愉快的一个子集。down
. But there is chance
that all the OSDs reporting the failure are hosted in a rack with a bad switch
which has trouble connecting to another OSD. To avoid this sort of false alarm,
we consider the peers reporting a failure a proxy for a potential “subcluster”
over the overall cluster that is similarly laggy. This is clearly not true in
all cases, but will sometimes help us localize the grace correction to a subset
of the system that is unhappy. mon osd reporter subtree level
用于根据CRUSH映射中的共同祖先类型将对等体分组到“子集群”。默认情况下,需要从不同的子树中提供两个报告来报告另一个Ceph OSD守护进程down
。您可以更改报告Ceph OSD守护进程down
到Ceph监控器的唯一子树报告者数量和所需的共同祖先类型,通过在您的Ceph配置文件的mon osd min down reporters
和mon osd reporter subtree level
设置,或通过实时设置值。[mon]
部分下添加一个
OSDs报告对等失败
如果Ceph OSD守护进程无法与其Ceph配置文件中定义的任何Ceph OSD守护进程(或集群映射)对等,它将每30秒向Ceph监控器发送一次集群映射的最新副本。您可以通过在您的Ceph配置文件的osd mon heartbeat interval
设置来更改Ceph监控器报告间隔,或通过实时设置值。[osd]
部分下添加一个
OSDs报告其状态
如果Ceph OSD守护进程没有向Ceph监控器报告,则Ceph监控器将在down
。当发生可报告事件(例如故障、放置组统计信息变化、变化mon osd report timeout
过期后认为该Ceph OSD守护进程up_thru
或在5秒内启动时),Ceph OSD守护进程会向Ceph监控器发送报告。您可以通过在您的Ceph配置文件的osd mon report interval
设置来更改Ceph监控器报告间隔,或通过实时设置值。[osd]
部分下添加一个osd mon report
interval max
设置来更改Ceph监控器报告间隔,或通过实时设置值。[osd]
部分下添加一个
配置设置
在修改心跳设置时,您应该将它们包含在您的配置文件的[global]
部分中。
监视器设置
- mon_osd_min_up_ratio
在Ceph将标记Ceph OSD守护进程
up
之前,Ceph OSD守护进程的最小比率down
.- type:
float
- default:
0.3
- 参见:
- mon_osd_min_in_ratio
在Ceph将标记Ceph OSD守护进程
in
之前,Ceph OSD守护进程的最小比率out
.- type:
float
- default:
0.75
- 参见:
- mon_osd_laggy_halflife
拖延估计将衰减的秒数。
- type:
int
- default:
1 hour
- mon_osd_laggy_weight
拖延估计衰减中新的样本的权重。
- type:
float
- default:
0.3
- 允许范围:
[0, 1]
- mon_osd_laggy_max_interval
拖延估计中
laggy_interval
的最大值(以秒为单位)。laggy_interval
of a certain OSD. This value will be used to calculate the grace time for that OSD.- type:
int
- default:
5 minutes
- mon_osd_adjust_heartbeat_grace
如果设置为
true
,Ceph将根据拖延估计进行缩放。- type:
bool
- default:
true
- 参见:
mon_osd_laggy_halflife
,mon_osd_laggy_weight
,mon_osd_laggy_max_interval
- mon_osd_adjust_down_out_interval
如果设置为
true
,Ceph将根据拖延估计进行缩放。- type:
bool
- default:
true
- 参见:
- mon_osd_auto_mark_in
Ceph将标记任何启动的Ceph OSD守护进程为
in
Ceph存储集群。- type:
bool
- default:
false
- mon_osd_auto_mark_auto_out_in
Ceph将标记启动的Ceph OSD守护进程自动标记
out
为in
集群。- type:
bool
- default:
true
- 参见:
- mon_osd_auto_mark_new_in
Ceph将标记启动的新Ceph OSD守护进程为
in
Ceph存储集群。- type:
bool
- default:
true
- mon_osd_down_out_interval
Ceph在标记Ceph OSD守护进程
down
和out
如果它没有响应之前等待的秒数。- type:
int
- default:
10 minutes
- mon_osd_down_out_subtree_limit
Ceph将自动标记出的最小CRUSH单元类型。例如,如果设置为firefly 发布。Firefly 将延迟至少另一个冲刺,以便我们可以对新代码进行一些操作经验,并进行一些额外的测试,然后再承诺长期支持。 automatically mark out. For instance, if set to
host
并且主机上的所有OSD都宕机,Ceph将不会自动标记这些OSD。- type:
str
- default:
rack
- 参见:
- mon_osd_report_timeout
在声明无响应的Ceph OSD守护进程
down
.- type:
int
- default:
15 minutes
- 之前的宽限期(以秒为单位)。
报告一个
down
Ceph OSD守护进程所需的最小Ceph OSD守护进程数。- type:
uint
- default:
2
- 参见:
- mon_osd_reporter_subtree_level
计数报告者的父桶级别。如果OSD发现一个无响应的对等体,它们会向监控器发送故障报告。监控器在宽限期后标记报告的
OSD
并down
。- type:
str
- default:
host
OSD 设置
- osd_heartbeat_interval
Ceph OSD守护进程多久向其对等体发送一次心跳(以秒为单位)。
- type:
int
- default:
6
- 允许范围:
[1, 1_min]
- osd_heartbeat_grace
Ceph存储集群认为Ceph OSD守护进程没有显示心跳经过的时间
down
。此设置必须在[mon]和[osd]或[global]部分中设置,以便监控器和OSD守护进程都能读取它。- type:
int
- default:
20
- osd_mon_heartbeat_interval
如果Ceph OSD守护进程没有Ceph OSD守护进程对等体,则Ceph OSD守护进程多久向Ceph监控器发送一次心跳。
- type:
int
- default:
30
- osd_mon_heartbeat_stat_stale
停止报告自上次更新以来未更新的心跳ping时间。设置为0以禁用此操作。
- type:
int
- default:
1 hour
- osd_mon_report_interval
Ceph OSD守护进程在启动或另一个可报告事件发生后可以等待多少秒才向Ceph监控器报告。
- type:
int
- default:
5
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.