注意

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

Monitor Config Reference

了解如何配置 Ceph Monitor 是构建可靠 Ceph 存储集群 的重要组成部分。 所有 Ceph 存储集群至少有一个 Monitor。Monitor 补充通常保持相当一致,但您可以在集群中添加、删除或替换 Monitor。有关详细信息,请参阅 添加/删除 Monitors

背景

Ceph Monitors 维护 集群映射 的“主副本”。

集群映射 使 Ceph 客户端 能够确定所有 Ceph Monitors、Ceph OSD Daemons 和 Ceph Metadata Servers 的位置。客户端通过连接到一个 Ceph Monitor 并检索当前的集群映射来完成此操作。Ceph 客户端必须连接到 Ceph Monitor,然后才能从 Ceph OSD Daemons 或 Ceph Metadata Servers 读取或写入。拥有当前集群映射副本和 CRUSH 算法的 Ceph 客户端可以计算集群中任何 RADOS 对象的位置。这使得 Ceph 客户端可以直接与 Ceph OSD Daemons 通信。客户端与 Ceph OSD Daemons 之间的直接通信改进了传统的存储架构,传统架构要求客户端与中央组件通信。有关此主题的更多信息,请参阅 可扩展性和高可用性

Ceph Monitor 的主要功能是维护集群映射的主副本。Monitors 还提供身份验证和日志记录服务。Monitor 服务中的所有更改都由 Ceph Monitor 写入单个 Paxos 实例,Paxos 将更改写入键/值存储。这提供了强一致性。Ceph Monitors 能够在同步操作期间查询集群映射的最新版本,并且它们使用键/值存储的快照和迭代器(使用 RocksDB)来执行全存储同步。

集群映射

集群映射是各种映射的组合,包括 Monitor 映射、OSD 映射、放置组映射和元数据服务器映射。集群映射跟踪许多重要事项:哪些进程在 Ceph 存储集群中;哪些在 Ceph 存储集群中的进程处于 up 和运行状态或 down 状态;放置组是 active 还是 inactive,是 clean 还是处于其他状态;以及反映集群当前状态的其他详细信息,例如总存储空间量和已用存储空间量。

当集群状态发生重大变化时(例如,Ceph OSD Daemon 宕机,放置组降级等),集群映射会更新以反映集群的当前状态。此外,Ceph Monitor 还维护集群先前状态的历史记录。Monitor 映射、OSD 映射、放置组映射和元数据服务器映射都维护其映射版本的历史记录。我们将每个版本称为“纪元”。

操作 Ceph 存储集群时,跟踪这些状态是系统管理职责的重要组成部分。有关其他详细信息,请参阅 监控集群监控 OSD 和 PG

Monitor 仲裁

我们的配置 ceph 部分提供了一个微不足道的 Ceph 配置文件,用于测试集群中的一个 Monitor。集群可以只有一个 Monitor 正常运行;但是,单个 Monitor 是单点故障。为确保生产 Ceph 存储集群中的高可用性,您应该运行多个 Monitor,以便单个 Monitor 故障不会导致整个集群宕机。

当 Ceph 存储集群运行多个 Ceph Monitors 以实现高可用性时,Ceph Monitors 使用 Paxos 来就主集群映射达成共识。共识需要运行多数 Monitors 才能建立仲裁以就集群映射达成共识(例如,1;3 个中的 2 个;5 个中的 3 个;6 个中的 4 个等)。

mon_force_quorum_join

强制 Monitor 加入仲裁,即使它之前已从映射中删除

类型:

bool

默认值:

false

一致性

当您将 Monitor 设置添加到 Ceph 配置文件时,您需要了解 Ceph Monitors 的一些架构方面。Ceph 对 Ceph Monitor 在集群中发现另一个 Ceph Monitor 施加严格的一致性要求。尽管 Ceph 客户端和其他 Ceph daemons 使用 Ceph 配置文件来发现 Monitors,但 Monitors 使用 Monitor 映射 (monmap) 而不是 Ceph 配置文件来相互发现。

Ceph Monitor 在 Ceph 存储集群中发现其他 Ceph Monitors 时始终引用 monmap 的本地副本。使用 monmap 而不是 Ceph 配置文件可以避免可能破坏集群的错误(例如,在指定 Monitor 地址或端口时 ceph.conf 中的拼写错误)。由于 Monitors 使用 monmaps 进行发现,并且它们与客户端和其他 Ceph daemons 共享 monmaps,因此 monmap 为 Monitors 提供了严格的保证,即它们的共识是有效的。

严格一致性也适用于 monmap 的更新。与 Ceph Monitor 上的任何其他更新一样,monmap 的更改始终通过称为 Paxos 的分布式共识算法运行。Ceph Monitors 必须就 monmap 的每次更新达成一致,例如添加或删除 Ceph Monitor,以确保仲裁中的每个 Monitor 都具有相同版本的 monmap。对 monmap 的更新是增量的,以便 Ceph Monitors 拥有最新达成的版本和一组以前的版本。维护历史记录使具有较旧版本 monmap 的 Ceph Monitor 能够赶上 Ceph 存储集群的当前状态。

如果 Ceph Monitors 通过 Ceph 配置文件而不是通过 monmap 相互发现,将会引入额外的风险,因为 Ceph 配置文件不会自动更新和分发。Ceph Monitors 可能会无意中使用较旧的 Ceph 配置文件,无法识别 Ceph Monitor,脱离仲裁,或者出现 Paxos 无法准确确定系统当前状态的情况。

引导 Monitors

在大多数配置和部署情况下,部署 Ceph 的工具会通过为您生成 Monitor 映射来帮助引导 Ceph Monitors(例如 cephadm 等)。Ceph Monitor 需要一些明确的设置

  • 文件系统 IDfsid 是您的对象存储的唯一标识符。由于您可以在同一硬件上运行多个集群,因此在引导 Monitor 时必须指定对象存储的唯一 ID。部署工具通常会为您执行此操作(例如 cephadm 可以调用 uuidgen 等工具),但您也可以手动指定 fsid

  • Monitor ID:Monitor ID 是分配给集群中每个 Monitor 的唯一 ID。它是一个字母数字值,按照惯例,标识符通常遵循字母递增(例如 ab 等)。这可以在 Ceph 配置文件中设置(例如 [mon.a][mon.b] 等),由部署工具设置,或使用 ceph 命令行设置。

  • 密钥:Monitor 必须有密钥。像 cephadm 这样的部署工具通常会为您执行此操作,但您也可以手动执行此步骤。有关详细信息,请参阅 Monitor Keyrings

有关引导的更多详细信息,请参阅 引导 Monitor

配置 Monitors

要将配置设置应用于整个集群,请在 [global] 下输入配置设置。要将配置设置应用于集群中的所有 Monitors,请在 [mon] 下输入配置设置。要将配置设置应用于特定的 Monitors,请指定 Monitor 实例(例如 [mon.a])。按照惯例,Monitor 实例名称使用字母表示法。

[global]

[mon]

[mon.a]

[mon.b]

[mon.c]

最小配置

通过 Ceph 配置文件设置 Ceph Monitor 的最低限度配置包括每个 Monitor 的主机名和网络地址。您可以在 [mon] 下或在特定 Monitor 的条目下配置这些设置。

[global]
        mon_host = 10.0.0.2,10.0.0.3,10.0.0.4
[mon.a]
        host = hostname1
        mon_addr = 10.0.0.10:6789

有关详细信息,请参阅 网络配置参考

注意

此 Monitor 的最低配置假定部署工具为您生成了 fsidmon. 密钥。

部署 Ceph 集群后,不应更改 Monitor 的 IP 地址。但是,如果您决定更改 Monitor 的 IP 地址,则必须遵循特定的过程。有关详细信息,请参阅 更改 Monitor 的 IP 地址

客户端也可以通过使用 DNS SRV 记录找到 Monitors。有关详细信息,请参阅 通过 DNS 查找 Monitors

集群 ID

每个 Ceph 存储集群都有一个唯一的标识符 (fsid)。如果指定,它通常出现在配置文件的 [global] 部分。部署工具通常会生成 fsid 并将其存储在 Monitor 映射中,因此该值可能不会出现在配置文件中。fsid 使得在同一硬件上运行多个集群的 daemons 成为可能。

fsid

集群 ID。每个集群一个。如果未指定,可以由部署工具生成。

类型:

uuid

注意

如果您使用的部署工具为您执行此操作,请不要设置此值。

初始成员

我们建议运行至少三个 Ceph Monitors 的生产 Ceph 存储集群,以确保高可用性。当您运行多个 Monitors 时,您可以指定必须是集群成员才能建立仲裁的初始 Monitors。这可以减少集群上线所需的时间。

[mon]
        mon_initial_members = a,b,c
mon_initial_members

启动期间集群中初始 Monitors 的 ID。如果指定,Ceph 要求奇数个 Monitors 才能形成初始仲裁(例如 3 个)。

类型:

str

注意

集群中多数 Monitors 必须能够相互联系才能建立仲裁。您可以使用此设置减少建立仲裁的初始 Monitor 数量。

数据

Ceph 提供了一个默认路径,Ceph Monitors 在其中存储数据。为了在生产 Ceph 存储集群中获得最佳性能,我们建议在与 Ceph OSD Daemons 分离的主机和驱动器上运行 Ceph Monitors。由于 RocksDB 使用 mmap() 写入数据,Ceph Monitors 会非常频繁地将其数据从内存刷新到磁盘,如果数据存储与 OSD Daemons 位于同一位置,这可能会干扰 Ceph OSD Daemon 工作负载。

在 Ceph 0.58 及更早版本中,Ceph Monitors 将其数据存储在普通文件中。这种方法允许用户使用 lscat 等常见工具检查 Monitor 数据。但是,这种方法没有提供强一致性。

在 Ceph 0.59 及更高版本中,Ceph Monitors 将其数据存储为键/值对。Ceph Monitors 需要 ACID 事务。使用数据存储可以防止恢复的 Ceph Monitors 通过 Paxos 运行损坏的版本,并且它允许在单个原子批处理中执行多个修改操作,以及其他优点。

通常,我们不建议更改默认数据位置。如果您修改默认位置,我们建议您通过在配置文件的 [mon] 部分设置它来使其在所有 Ceph Monitors 中保持一致。

mon_data

Monitor 的数据位置。

类型:

str

默认值:

/var/lib/ceph/mon/$cluster-$id

mon_data_size_warn

当 Monitor 的数据存储增长到大于此大小时(默认 15GB),发出 HEALTH_WARN 状态。

类型:

大小

默认值:

15Gi

mon_data_avail_warn

当容纳 Monitor 数据存储的文件系统报告其可用容量小于或等于此百分比时,发出 HEALTH_WARN 状态。

类型:

int

默认值:

30

mon_data_avail_crit

当容纳 Monitor 数据存储的文件系统报告其可用容量小于或等于此百分比时,发出 HEALTH_ERR 状态。

类型:

int

默认值:

5

mon_warn_on_crush_straw_calc_version_zero

当 CRUSH straw_calc_version 为零时,发出 HEALTH_WARN。有关详细信息,请参阅 CRUSH map tunables

类型:

bool

默认值:

true

mon_warn_on_legacy_crush_tunables

当 CRUSH 可调参数太旧时(比 mon_min_crush_required_version 旧),发出 HEALTH_WARN

类型:

bool

默认值:

true

另请参阅:

mon_crush_min_required_version

mon_crush_min_required_version

集群所需的最低可调配置文件。有关详细信息,请参阅 CRUSH map tunables

类型:

str

默认值:

hammer

另请参阅:

mon_warn_on_legacy_crush_tunables

mon_warn_on_osd_down_out_interval_zero

mon_osd_down_out_interval 为零时,发出 HEALTH_WARN。将此选项设置为零对领导者来说很像 noout 标志。很难弄清楚没有设置 noout 标志但行为相同的集群出了什么问题,因此在这种情况下我们会报告警告。

类型:

bool

默认值:

true

另请参阅:

mon_osd_down_out_interval

mon_warn_on_slow_ping_ratio

当 OSD 之间的任何心跳超过 osd_heartbeat_gracemon_warn_on_slow_ping_ratio 时,发出 HEALTH_WARN

类型:

float

默认值:

0.05

另请参阅:

osd_heartbeat_grace, mon_warn_on_slow_ping_time

mon_warn_on_slow_ping_time

使用特定值覆盖 mon_warn_on_slow_ping_ratio。如果 OSD 之间的任何心跳超过 mon_warn_on_slow_ping_time 毫秒,则发出 HEALTH_WARN。默认值为 0(禁用)。

类型:

float

默认值:

0.0

另请参阅:

mon_warn_on_slow_ping_ratio

mon_warn_on_pool_no_redundancy

如果任何池配置为没有副本,则发出 HEALTH_WARN

类型:

bool

默认值:

true

另请参阅:

osd_pool_default_size, osd_pool_default_min_size

mon_cache_target_full_warn_ratio

池的 cache_target_fulltarget_max_object 之间的位置,我们开始发出警告

类型:

float

默认值:

0.66

mon_health_to_clog

定期将健康状况摘要发送到集群日志。

类型:

bool

默认值:

true

mon_health_to_clog_tick_interval

Monitor 将健康状况摘要发送到集群日志的频率(以秒为单位)(非正数禁用)。如果当前健康状况摘要为空或与上次相同,Monitor 将不会将其发送到集群日志。

类型:

float

默认值:

1 minute

mon_health_to_clog_interval

Monitor 将健康状况摘要发送到集群日志的频率(以秒为单位)(非正数禁用)。无论是否与上一个摘要不同,Monitors 都会始终将摘要发送到集群日志。

类型:

int

默认值:

10 minutes

另请参阅:

mon_health_to_clog

存储容量

当 Ceph 存储集群接近其最大容量时(参见 ``mon_osd_full ratio``),Ceph 会阻止您写入或读取 OSD,作为防止数据丢失的安全措施。因此,让生产 Ceph 存储集群接近其满比例不是一种好的做法,因为它牺牲了高可用性。默认满比例为 .95,即 95% 的容量。对于 OSD 数量较少的测试集群来说,这是一个非常激进的设置。

提示

监控集群时,请警惕与 nearfull 比例相关的警告。这意味着如果一个或多个 OSD 发生故障,一些 OSD 故障可能会导致暂时的服务中断。考虑添加更多 OSD 以增加存储容量。

测试集群的常见场景涉及系统管理员从 Ceph 存储集群中删除 OSD,观察集群重新平衡,然后删除另一个 OSD,再删除另一个 OSD,直到至少一个 OSD 最终达到满比例并且集群锁定。即使对于测试集群,我们也建议进行一些容量规划。规划使您能够衡量需要多少备用容量才能维持高可用性。理想情况下,您希望为一系列 Ceph OSD Daemon 故障进行规划,在这些故障中,集群可以恢复到 active+clean 状态,而无需立即替换这些 OSD。集群操作继续处于 active+degraded 状态,但这不适合正常操作,应及时解决。

下图描绘了一个简单的 Ceph 存储集群,其中包含 33 个 Ceph 节点,每个主机有一个 OSD,每个 OSD 从 3TB 驱动器读取和写入。因此,这个示例 Ceph 存储集群的最大实际容量为 99TB。如果 mon osd full ratio0.95,如果 Ceph 存储集群降至 5TB 剩余容量,则集群将不允许 Ceph 客户端读取和写入数据。因此,Ceph 存储集群的运行容量为 95TB,而不是 99TB。

在此类集群中,一两个 OSD 发生故障是正常的。不那么频繁但合理的场景涉及机架的路由器或电源故障,这会同时导致多个 OSD 宕机(例如 OSD 7-12)。在这种情况下,您仍然应该努力使集群保持运行状态并实现 active + clean 状态——即使这意味着在短时间内添加一些带有额外 OSD 的主机。如果您的容量利用率过高,您可能不会丢失数据,但如果集群的容量利用率超过满比例,您仍然可能会在解决故障域中的中断时牺牲数据可用性。因此,我们建议至少进行一些粗略的容量规划。

为您的集群确定两个数字

  1. OSD 数量。

  2. 集群总容量

如果您将集群的总容量除以集群中的 OSD 数量,您将找到集群中 OSD 的平均容量。考虑将该数字乘以您预计在正常操作期间同时发生故障的 OSD 数量(一个相对较小的数字)。最后将集群容量乘以满比例以得出最大运行容量;然后,从您预计会发生故障的 OSD 中减去数据量以得出合理的满比例。对更高数量的 OSD 故障(例如一机架 OSD)重复上述过程,以得出合理的接近满比例的数字。

以下设置仅在集群创建时应用,然后存储在 OSDMap 中。需要澄清的是,在正常操作中,OSD 使用的值是 OSDMap 中的值,而不是配置文件或中央配置存储中的值。

[global]
        mon_osd_full_ratio = .80
        mon_osd_backfillfull_ratio = .75
        mon_osd_nearfull_ratio = .70

mon_osd_full_ratio

描述:

OSD 被视为 full 之前设备空间利用率的阈值百分比。

类型:

Float

默认值:

0.95

mon_osd_backfillfull_ratio

描述:

OSD 被视为 full 以进行回填之前的设备空间利用率阈值百分比。

类型:

Float

默认值:

0.90

mon_osd_nearfull_ratio

描述:

OSD 被视为 nearfull 之前设备空间利用率的阈值百分比。

类型:

Float

默认值:

0.85

提示

如果某些 OSD 接近满,但其他 OSD 有足够的容量,则可能是为接近满的 OSD 设置的 CRUSH 权重不准确。

提示

这些设置仅在集群创建期间应用。之后,需要使用 ceph osd set-nearfull-ratioceph osd set-full-ratio 在 OSDMap 中更改它们。

心跳

Ceph Monitors 通过要求每个 OSD 报告以及接收 OSD 关于其相邻 OSD 状态的报告来了解集群。Ceph 为 Monitor/OSD 交互提供了合理的默认设置;但是,您可以根据需要修改它们。有关详细信息,请参阅 Monitor/OSD 交互

Monitor 存储同步

当您运行具有多个 Monitors 的生产集群时(推荐),每个 Monitor 都会检查相邻 Monitor 是否具有集群映射的最新版本(例如,相邻 Monitor 中的映射具有比即时 Monitor 映射中的当前纪元高一个或多个纪元的纪元号)。定期地,集群中的一个 Monitor 可能会落后于其他 Monitors,以至于它必须离开仲裁,同步以检索有关集群的最新信息,然后重新加入仲裁。出于同步目的,Monitors 可以承担以下三种角色之一

  1. LeaderLeader 是第一个达到集群映射最新 Paxos 版本的 Monitor。

  2. ProviderProvider 是具有集群映射最新版本的 Monitor,但不是第一个达到最新版本的 Monitor。

  3. Requester: Requester 是落后于 Leader 的 Monitor,必须同步才能检索有关集群的最新信息,然后才能重新加入仲裁。

这些角色使 Leader 能够将同步职责委托给 Provider,这可以防止同步请求使 Leader 过载——从而提高性能。在下图中,Requester 了解到它落后于其他 Monitors。Requester 要求 Leader 同步,Leader 告诉 Requester 与 Provider 同步。

当新 Monitor 加入集群时,始终会发生同步。在运行时操作期间,Monitors 可能会在不同的时间接收到集群映射的更新。这意味着 Leader 和 Provider 角色可能会从一个 Monitor 迁移到另一个 Monitor。如果这在同步期间发生(例如 Provider 落后于 Leader),Provider 可以终止与 Requester 的同步。

同步完成后,Ceph 会在整个集群中执行修剪。修剪要求放置组处于 active+clean 状态。

mon_sync_timeout

Monitor 将等待其同步 Provider 的下一个更新消息的秒数,然后放弃并再次引导。

类型:

float

默认值:

1 minute

mon_sync_max_payload_size

同步有效负载的最大大小(以字节为单位)。

类型:

大小

默认值:

1Mi

paxos_max_join_drift

在必须首先同步 Monitor 数据存储之前,Paxos 的最大迭代次数。当 Monitor 发现其对等方领先于它太远时,它会首先与数据存储同步,然后再继续。

类型:

int

默认值:

10

paxos_stash_full_interval

存储 PaxosService 状态完整副本的频率(以提交次数计)。当前此设置仅影响 mdsmonauthmgr PaxosServices。

类型:

int

默认值:

25

paxos_propose_interval

在此时间间隔内收集更新,然后建议进行地图更新。

类型:

float

默认值:

1.0

paxos_min

要保留的 Paxos 状态的最小数量

类型:

int

默认值:

500

paxos_min_wait

在一段时间不活动后收集更新的最短时间。

类型:

float

默认值:

0.05

paxos_trim_min

在修剪之前容忍的额外提议数量

类型:

int

默认值:

250

paxos_trim_max

一次修剪的额外提议的最大数量

类型:

int

默认值:

500

paxos_service_trim_min

触发修剪的最小版本数量(0 禁用它)

类型:

uint

默认值:

250

paxos_service_trim_max

在单个提议期间修剪的最大版本数量(0 禁用它)

类型:

uint

默认值:

500

paxos_service_trim_max_multiplier

当修剪大小时,paxos_service_trim_max 将乘以的因子,以获得新的上限(0 禁用它)

类型:

uint

默认值:

20

min:

0

mon_mds_force_trim_to

强制 Monitor 修剪 mdsmaps,直到但不包括此 FSMap 纪元。值为 0 禁用此配置(默认值)。此命令可能很危险,请谨慎使用。

类型:

int

默认值:

0

mon_osd_force_trim_to

强制 Monitor 将 osdmaps 修剪到此点,即使在指定纪元有 PGs 不干净(0 禁用,这很危险,必须谨慎使用)。

类型:

int

默认值:

0

mon_osd_cache_size

osdmaps 缓存的大小,不依赖于底层存储的缓存

类型:

int

默认值:

500

mon_election_timeout

在选举提议者上,等待所有 ACK 的最大时间(以秒为单位)。

类型:

float

默认值:

5.0

mon_lease

Monitor 版本的租约长度(以秒为单位)。

类型:

float

默认值:

5.0

mon_lease_renew_interval_factor

mon_lease * mon_lease_renew_interval_factor 将是 Leader 续订其他 Monitor 租约的时间间隔。该因子应小于 1.0

类型:

float

默认值:

0.6

允许范围:

[0, 0.9999999]

另请参阅:

mon_lease

mon_lease_ack_timeout_factor

Leader 将等待 mon_lease * mon_lease_ack_timeout_factor 让 Providers 确认租约延长。

类型:

float

默认值:

2.0

允许范围:

[1.0001, 100]

另请参阅:

mon_lease

mon_accept_timeout_factor

Leader 将等待 mon_lease * mon_accept_timeout_factor 让 Requester(s) 接受 Paxos 更新。它也用于 Paxos 恢复阶段,用于类似目的。

类型:

float

默认值:

2.0

另请参阅:

mon_lease

mon_min_osdmap_epochs

始终保留的 OSD 映射纪元的最小数量。

类型:

int

默认值:

500

mon_max_log_epochs

Monitor 应保留的 Log 纪元的最大数量。

类型:

int

默认值:

500

时钟

Ceph daemons 相互传递关键消息,这些消息必须在 daemons 达到超时阈值之前进行处理。如果 Ceph Monitors 中的时钟未同步,可能会导致许多异常。例如

  • Daemons 忽略收到的消息(例如,时间戳已过时)

  • 当未及时收到消息时,超时触发得太早/太晚。

有关详细信息,请参阅 Monitor Store Synchronization

提示

您必须在 Ceph Monitor 主机上配置 NTP 或 PTP daemons,以确保 Monitor 集群以同步时钟运行。让 Monitor 主机相互同步以及与多个高质量的上游时间源同步可能是有利的。

即使 NTP 保持合理的同步水平,时钟漂移仍然可能很明显,尽管这种差异尚未造成损害。Ceph 的时钟漂移/时钟偏差警告可能会被触发,即使 NTP 保持合理的同步水平。在这些情况下增加时钟漂移可能是可以容忍的;但是,许多因素,例如工作负载、网络延迟、配置覆盖默认超时和 Monitor Store Synchronization 设置,可能会影响可接受的时钟漂移水平,而不会危及 Paxos 保证。

Ceph 提供以下可调选项,允许您找到可接受的值。

mon_tick_interval

Monitor 的滴答间隔(以秒为单位)。

类型:

int

默认值:

5

mon_clock_drift_allowed

在发出健康警告之前允许的 Monitors 之间的时钟漂移(以秒为单位)

类型:

float

默认值:

0.05

mon_clock_drift_warn_backoff

在集群日志中记录时钟漂移警告的指数退避因子

类型:

float

默认值:

5.0

mon_timecheck_interval

Leader 的时间检查间隔(时钟漂移检查)(以秒为单位)。

类型:

float

默认值:

5 minutes

mon_timecheck_skew_interval

存在 Leader 偏差(以秒为单位)时的时间检查间隔(时钟漂移检查)(以秒为单位)。

类型:

float

默认值:

30.0

另请参阅:

mon_timecheck_interval

客户端

mon_client_hunt_interval

客户端将每隔 N 秒尝试连接到不同的 Monitor,直到建立连接。

类型:

float

默认值:

3.0

mon_client_ping_interval

客户端将每隔这么多秒 ping Monitors。

类型:

float

默认值:

10.0

mon_client_max_log_entries_per_message

Monitor 为每个客户端消息生成的最大日志条目数。

类型:

int

默认值:

1000

mon_client_bytes

允许在内存中的客户端消息数据量(以字节为单位)。

类型:

大小

默认值:

100Mi

Pool settings

从 v0.94 版本开始,支持池标志,允许或禁止对池进行更改。如果配置得当,Monitors 还可以禁止删除池。这种保护措施带来的不便远远超过了它防止意外删除池(以及数据)的数量。

mon_allow_pool_delete

Monitors 是否允许删除池,无论池标志如何?

类型:

bool

默认值:

false

osd_pool_default_ec_fast_read

是否在池上启用快速读取。如果创建时未指定 fast_read,它将用作新创建的纠删码池的默认设置。

类型:

bool

默认值:

false

osd_pool_default_flag_hashpspool

在新池上设置 hashpspool(更好的哈希方案)标志

类型:

bool

默认值:

true

osd_pool_default_flag_nodelete

在新池上设置 nodelete 标志,以防止删除池。

类型:

bool

默认值:

false

osd_pool_default_flag_nopgchange

在新池上设置 nopgchange 标志。不允许更改 PG 数量。

类型:

bool

默认值:

false

osd_pool_default_flag_nosizechange

在新池上设置 nosizechange 标志。不允许更改 size

类型:

bool

默认值:

false

有关池标志的更多信息,请参阅 Pool values

杂项

mon_max_osd

集群中允许的最大 OSD 数量。

类型:

int

默认值:

10000

mon_globalid_prealloc

为集群中的客户端和 daemons 预分配的全局 ID 数量。

类型:

uint

默认值:

10000

mon_subscribe_interval

订阅的刷新间隔(以秒为单位)。订阅机制使能够获取集群映射和日志信息。

类型:

float

默认值:

1 day

mon_stat_smooth_intervals

Ceph 将平滑最近 N 个 PG 映射上的统计数据。

类型:

uint

默认值:

6

min:

1

mon_probe_timeout

Monitor 在引导之前等待查找对等方的时间(以秒为单位)。

类型:

float

默认值:

2.0

mon_daemon_bytes

元数据服务器和 OSD 消息的消息内存上限(以字节为单位)。

类型:

大小

默认值:

400Mi

mon_max_log_entries_per_event

每个事件的最大日志条目数。

类型:

int

默认值:

4096

mon_osd_prime_pg_temp

当一个 out OSD 返回集群时,启用或禁用使用以前的 OSD 填充 PGMap。设置为 true 时,客户端将继续使用以前的 OSD,直到 PG 的新 in OSD 已配对。

类型:

bool

默认值:

true

mon_osd_prime_pg_temp_max_time

当一个 out OSD 返回集群时,Monitor 应该花多少时间(以秒为单位)尝试填充 PGMap。

类型:

float

默认值:

0.5

mon_osd_prime_pg_temp_max_estimate

在并行填充所有 PG 之前,对每个 PG 花费的时间的最大估计。

类型:

float

默认值:

0.25

mon_mds_skip_sanity

跳过 FSMap 上的安全断言(以防出现我们仍想继续的错误)。如果 FSMap 健全性检查失败,Monitor 将终止,但我们可以通过启用此选项来禁用它。

类型:

bool

默认值:

false

mon_max_mdsmap_epochs

在单个提议期间修剪的最大 mdsmap 纪元数。

类型:

int

默认值:

500

mon_config_key_max_entry_size

config-key 条目的最大大小(以字节为单位)

类型:

大小

默认值:

64Ki

mon_scrub_interval

Monitor 通过比较存储的校验和与所有存储密钥的计算校验和来擦洗其存储的频率。(0 禁用,这很危险,必须谨慎使用,以免众神降怒于你。)

类型:

默认值:

1 day

mon_scrub_max_keys

每次擦洗的最大密钥数。

类型:

int

默认值:

100

mon_compact_on_start

ceph-mon 启动时压缩用作 Ceph Monitor 存储的数据库。如果常规压缩失败,手动压缩有助于缩小 Monitor 数据库并提高其性能。

类型:

bool

默认值:

false

mon_compact_on_bootstrap

在引导时压缩用作 Ceph Monitor 存储的数据库。Monitors 在引导后相互探测以建立仲裁。如果 Monitor 在加入仲裁之前超时,它将重新开始并再次引导。

类型:

bool

默认值:

false

mon_compact_on_trim

当我们修剪其旧状态时,压缩某个前缀(包括 paxos)。

类型:

bool

默认值:

true

mon_cpu_threads

在 Monitor 上执行 CPU 密集型工作的线程数。

类型:

int

默认值:

4

mon_osd_mapping_pgs_per_chunk

我们分块计算从放置组到 OSD 的映射。此选项指定每个块的放置组数量。

类型:

int

默认值:

4096

mon_session_timeout

Monitor 将终止在此时间限制内保持空闲状态的非活动会话。

类型:

int

默认值:

5 minutes

mon_osd_cache_size_min

OSD Monitor 缓存中保持映射在内存中的最小字节数。

类型:

大小

默认值:

128Mi

mon_memory_target

在启用缓存自动调整的情况下,OSD Monitor 缓存和 KV 缓存中保持映射在内存中的字节数。

类型:

大小

默认值:

2Gi

mon_memory_autotune

自动调整用于 OSD Monitors 和 KV 数据库的缓存内存。

类型:

bool

默认值:

true

enable_availability_tracking

定期计算和存储集群中每个池的可用性得分

类型:

bool

默认值:

false

pool_availability_update_interval

按此间隔更新数据可用性得分。默认情况下,间隔与 paxos_propose_interval 配置相同。

类型:

float

默认值:

1.0

NVMe-oF Monitor Client

nvmeof_mon_client_disconnect_panic

NVMeof 网关如果失去与 Monitor 的连接,应在多少秒后触发 panic 的持续时间(以秒为单位)

类型:

默认值:

100

nvmeof_mon_client_connect_panic

NVMeof 网关如果未收到 Monitor 的初始映射,应在多少秒后触发 panic 的持续时间(以秒为单位)

类型:

默认值:

30

nvmeof_mon_client_tick_period

NVMeof 网关信标消息发送给 Monitor 的周期(以秒为单位)

类型:

默认值:

2

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入