注意

本文档适用于 Ceph 开发版本。

配置监控器/OSD交互

在您完成初始Ceph配置后,您可以部署和运行Ceph。当您执行命令时,例如ceph healthceph -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 reportersmon 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_down_out_interval

mon_osd_min_in_ratio

在Ceph将标记Ceph OSD守护进程in之前,Ceph OSD守护进程的最小比率out.

type:

float

default:

0.75

参见:

mon_osd_down_out_interval

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_adjust_heartbeat_grace

mon_osd_auto_mark_in

Ceph将标记任何启动的Ceph OSD守护进程为inCeph存储集群。

type:

bool

default:

false

mon_osd_auto_mark_auto_out_in

Ceph将标记启动的Ceph OSD守护进程自动标记outin集群。

type:

bool

default:

true

参见:

mon_osd_down_out_interval

mon_osd_auto_mark_new_in

Ceph将标记启动的新Ceph OSD守护进程为inCeph存储集群。

type:

bool

default:

true

mon_osd_down_out_interval

Ceph在标记Ceph OSD守护进程downout如果它没有响应之前等待的秒数。

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_down_out_interval

mon_osd_report_timeout

在声明无响应的Ceph OSD守护进程down.

type:

int

default:

15 minutes

之前的宽限期(以秒为单位)。

报告一个downCeph OSD守护进程所需的最小Ceph OSD守护进程数。

type:

uint

default:

2

参见:

mon_osd_reporter_subtree_level

mon_osd_reporter_subtree_level

计数报告者的父桶级别。如果OSD发现一个无响应的对等体,它们会向监控器发送故障报告。监控器在宽限期后标记报告的OSDdown

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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.