监视器配置参考

理解如何配置 Ceph 监视器是构建可靠的 Ceph 存储集群的重要方面,任何 Ceph 集群都需要至少一个监视器。一个监视器通常相当一致,但是你可以增加、删除、或替换集群中的监视器,详情见增加/删除监视器增加/删除监视器( ceph-deploy )

背景

监视器们维护着集群运行图的“主副本”,就是说客户端连到一个监视器并获取当前运行图就能确定所有监视器、 OSD 和元数据服务器的位置。 Ceph 客户端读写 OSD 或元数据服务器前,必须先连到一个监视器,靠当前集群运行图的副本和 CRUSH 算法,客户端能计算出任何对象的位置,故此客户端有能力直接连到 OSD ,这对 Ceph 的高伸缩性、高性能来说非常重要。更多信息见伸缩性和高可用性

监视器的主要角色是维护集群运行图的主副本,它也提供认证和日志记录服务。 Ceph 监视器们把监视器服务的所有更改写入一个单独的 Paxos 例程,然后 Paxos 以键/值方式存储所有变更以实现高度一致性。同步期间, Ceph 监视器能查询集群运行图的近期版本,它们通过操作键/值存储快照和迭代器(用 leveldb )来进行存储级同步。

Deprecated since version 0.58:

在 0.58 及更早版本中, Ceph 监视器每个服务用一个 Paxos 例程,并把运行图存储为文件。

集群运行图

集群运行图是多个图的组合,包括监视器图、 OSD 图、归置组图和元数据服务器图。集群运行图追踪几个重要事件:哪些进程在集群里( in );哪些进程在集群里( in )是 up 且在运行、或 down ;归置组状态是 activeinactiveclean 或其他状态;和其他反映当前集群状态的信息,像总存储容量、和使用量。

当集群状态有明显变更时,如一 OSD 挂了、一归置组降级了等等,集群运行图会被更新以反映集群当前状态。另外,监视器也维护着集群的主要状态历史。监视器图、 OSD 图、归置组图和元数据服务器图各自维护着它们的运行图版本。我们把各图的版本称为一个 epoch 。

运营集群时,跟踪这些状态是系统管理任务的重要部分。详情见监控集群监控 OSD 和归置组

监视器法定人数

本文配置部分提供了一个简陋的 Ceph 配置文件,它提供了一个监视器用于测试。只用一个监视器集群可以良好地运行,然而单监视器是一个单故障点,生产集群要实现高可用性的话得配置多个监视器,这样单个监视器的失效才不会影响整个集群。

集群用多个监视器实现高可用性时,多个监视器用 Paxos 算法对主集群运行图达成一致,这里的一致要求大多数监视器都在运行且够成法定人数(如 1 个、 3 之 2 在运行、 5 之 3 、 6 之 4 等等)。

mon force quorum join

描述

强制监视器加入法定人数,即使它曾被踢出运行图。

类型

Boolean

默认值

False

一致性

你把监视器加进 Ceph 配置文件时,得注意一些架构问题, Ceph 发现集群内的其他监视器时对其有着严格的一致性要求。尽管如此, Ceph 客户端和其他 Ceph 守护进程用配置文件发现监视器,监视器却用监视器图( monmap )相互发现而非配置文件。

一个监视器发现集群内的其他监视器时总是参考 monmap 的本地副本,用 monmap 而非 Ceph 配置文件避免了可能损坏集群的错误(如 ceph.conf 中指定地址或端口的拼写错误)。正因为监视器把 monmap 用于发现、并共享于客户端和其他 Ceph 守护进程间, monmap可严格地保证监视器的一致性是可靠的

严格的一致性也适用于 monmap 的更新,因为关于监视器的任何更新、关于 monmap 的变更都是通过称为 Paxos 的分布式一致性算法传递的。监视器们必须就 monmap 的每次更新达成一致,以确保法定人数里的每个监视器 monmap 版本相同,如增加、删除一个监视器。 monmap 的更新是增量的,所以监视器们都有最新的一致版本,以及一系列之前版本。历史版本的存在允许一个落后的监视器跟上集群当前状态。

如果监视器通过配置文件而非 monmap 相互发现,这会引进其他风险,因为 Ceph 配置文件不是自动更新并分发的,监视器有可能不小心用了较老的配置文件,以致于不认识某监视器、放弃法定人数、或者产生一种 Paxos 不能确定当前系统状态的情形。

初始化监视器

在大多数配置和部署案例中,部署 Ceph 的工具可以帮你生成一个监视器图来初始化监视器(如 ceph-deploy 等),一个监视器需要 4 个选项:

  • 文件系统标识符: fsid 是对象存储的唯一标识符。因为你可以在一套硬件上运行多个集群,所以在初始化监视器时必须指定对象存储的唯一标识符。部署工具通常可替你完成(如 ceph-deploy 会调用类似 uuidgen 的程序),但是你也可以手动指定 fsid

  • 监视器标识符: 监视器标识符是分配给集群内各监视器的唯一 ID ,它是一个字母数字组合,为方便起见,标识符通常以字母顺序结尾(如 ab 等等),可以设置于 Ceph 配置文件(如 [mon.a][mon.b] 等等)、部署工具、或 ceph 命令行工具。

  • 密钥: 监视器必须有密钥。像 ceph-deploy 这样的部署工具通常会自动生成,也可以手动完成。见监视器密钥环

关于初始化的具体信息见初始化监视器

监视器的配置

要把配置应用到整个集群,把它们放到 [global] 下;要用于所有监视器,置于 [mon] 下;要用于某监视器,指定监视器例程,如 [mon.a] )。按惯例,监视器例程用字母命名。

[global]

[mon]

[mon.a]

[mon.b]

[mon.c]

最小配置

Ceph 监视器的最简配置必须包括一主机名及其监视器地址,这些配置可置于 [mon] 下或某个监视器下。

[mon]
        mon host = hostname1,hostname2,hostname3
        mon addr = 10.0.0.10:6789,10.0.0.11:6789,10.0.0.12:6789
[mon.a]
        host = hostname1
        mon addr = 10.0.0.10:6789

详情见网络配置参考

Note

这里的监视器最简配置假设部署工具会自动给你生成 fsidmon. 密钥。

一旦部署完 Ceph 集群,监视器 IP 地址就不应该更改了。然而,如果你决意要改,必须严格按照更改监视器 IP 地址来改。

也可以让客户端通过 DNS 的 SRV 记录发现监视器,详情见通过 DNS 查询监视器

集群 ID

每个 Ceph 存储集群都有一个唯一标识符( fsid )。如果指定了,它应该出现在配置文件的 [global] 段下。部署工具通常会生成 fsid 并存于监视器图,所以不一定会写入配置文件, fsid 使得在一套硬件上运行多个集群成为可能。

fsid

描述

集群 ID ,一集群一个。

类型

UUID

是否必需

Yes.

默认值

无。若未指定,部署工具会生成。

Note

如果你用部署工具就不能设置。

初始成员

我们建议在生产环境下最少部署 3 个监视器,以确保高可用性。运行多个监视器时,你可以指定为形成法定人数成员所需的初始监视器,这能减小集群上线时间。

[mon]
        mon initial members = a,b,c

mon initial members

描述

集群启动时初始监视器的 ID ,若指定, Ceph 需要奇数个监视器来确定最初法定人数(如 3 )。

类型

String

默认值

None

Note

集群内的大多数监视器必须能互通以建立法定人数,你可以用此选项减小初始监视器数量来形成。

数据

Ceph 监视器有存储数据的默认路径。为优化性能,在生产集群上,我们建议在独立主机上运行 Ceph 监视器,不要与运行 Ceph OSD 守护进程的主机混用。因为 leveldb 靠 mmap() 写数据, Ceph 监视器会频繁地把数据从内存刷回磁盘,如果其数据与 OSD 守护进程共用存储器,就会与 Ceph OSD 守护进程的载荷冲突。

在 Ceph 0.58 及更早版本中,监视器数据以文件保存,这样人们可以用 lscat 这些普通工具检查监视器数据,然而它不能提供健壮的一致性。

在 Ceph 0.59 及后续版本中,监视器以键/值对存储数据。监视器需要 ACID 事务,数据存储的使用可防止监视器用损坏的版本进行恢复,除此之外,它允许在一个原子批量操作中进行多个修改操作。

一般来说我们不建议更改默认数据位置,如果要改,我们建议所有监视器统一配置,加到配置文件的 [mon] 下。

mon data

描述

监视器的数据位置。

类型

String

默认值

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

mon data size warn

描述

监视器的数据量大于 15GB 时发一条 HEALTH_WARN 集群日志。

类型

Integer

默认值

15*1024*1024*1024*

mon data avail warn

描述

监视器的数据存储磁盘可用空间小于或等于此百分比时发一条 HEALTH_WARN 集群日志。

类型

Integer

默认值

30

mon data avail crit

描述

监视器的数据存储磁盘可用空间小于或等于此百分比时发一条 HEALTH_ERR 集群日志。

类型

Integer

默认值

5

mon warn on cache pools without hit sets

描述

如果某个缓存存储池没配置 hit_set_type ,发出一条 HEALTH_WARN 集群日志。详情见 hit_set_type

类型

Boolean

默认值

True

mon warn on crush straw calc version zero

描述

如果 CRUSH 的 straw_calc_version 值为 0 ,发出一条 HEALTH_WARN 集群日志。详情见 CRUSH 图的可调选项

类型

Boolean

默认值

True

mon warn on legacy crush tunables

描述

如果 CRUSH 可调选项太旧(比 mon_min_crush_required_version 旧),发出一条 HEALTH_WARN 集群日志。

类型

Boolean

默认值

True

mon crush min required version

描述

此集群要求的最低可调配置版本号,详情见 CRUSH 图的可调选项

类型

String

默认值

firefly

mon warn on osd down out interval zero

描述

如果 mon osd down out interval 是 0 ,发出一条 HEALTH_WARN 集群日志。 Leader 上的这个选项设置为 0 时,结果类似 noout 标记。集群没有设置 noout 标记,而表现出的行为却一样时很难查出为什么,所以我们对此情况发出警告。

类型

Boolean

默认值

True

mon cache target full warn ratio

描述

存储池使用率达到 cache_target_fulltarget_max_object 的多大比例时发出警告。

类型

Float

默认值

0.66

mon health data update interval

描述

法定人数里的监视器与它的互联点分享自己健康状态的频率,单位为秒。负数禁用此功能。

类型

Float

默认值

60

mon health to clog

描述

是否周期性地向集群日志发送健康摘要。

类型

Boolean

默认值

True

mon health to clog tick interval

描述

监视器向集群日志发送健康摘要的频率,单位为秒。非正数禁用此功能。如果当前健康摘要为空或者与上次的相同,监视器就不会发给集群日志了。

类型

Integer

默认值

3600

mon health to clog interval

描述

监视器向集群日志发送健康摘要的频率,单位为秒。非正数禁用此功能。不管摘要有没有变化,监视器都会把摘要发给集群日志。

类型

Integer

默认值

60

存储容量

Ceph 存储集群利用率接近最大容量时(即 mon osd full ratio ),作为防止数据丢失的安全措施,它会阻止你读写 OSD 。因此,让生产集群用满可不是好事,因为牺牲了高可用性。 full ratio 默认值是 .95 或容量的 95% 。对小型测试集群来说这是非常激进的设置。

Tip

监控集群时,要警惕和 nearfull 相关的警告。这意味着一些 OSD 的失败会导致临时服务中断,应该增加一些 OSD 来扩展存储容量。

在测试集群时,一个常见场景是:系统管理员从集群删除一个 OSD 、接着观察重均衡;然后继续删除其他 OSD ,直到集群达到占满率并锁死。我们建议,即使在测试集群里也要规划一点空闲容量用于保证高可用性。理想情况下,要做好这样的预案:一系列 OSD 失败后,短时间内不更换它们仍能恢复到 active + clean 状态。你也可以在 active + degraded 状态运行集群,但对正常使用来说并不好。

下图描述了一个简化的 Ceph 集群,它包含 33 个节点、每主机一个 OSD 、每 OSD 3TB 容量,所以这个小白鼠集群有 99TB 的实际容量,其 mon osd full ratio.95 。如果它只剩余 5TB 容量,集群就不允许客户端再读写数据,所以它的运行容量是 95TB ,而非 99TB 。

在这样的集群里,坏一或两个 OSD 很平常;一种罕见但可能发生的情形是一个机架的路由器或电源挂了,这会导致多个 OSD 同时离线(如 OSD 7-12 ),在这种情况下,你仍要力争保持集群可运行并达到 active + clean 状态,即使这意味着你得在短期内额外增加一些 OSD 及主机。如果集群利用率太高,在解决故障域期间也许不会丢数据,但很可能牺牲数据可用性,因为利用率超过了 full ratio 。故此,我们建议至少要粗略地规划下容量。

找出你集群的两个数字:

  1. OSD 数量。

  2. 集群总容量。

用集群里 OSD 总数除以集群总容量,就能得到 OSD 平均容量;如果按预计的 OSD 数乘以这个值所得的结果计算(偏小),实际应用时将出错;最后再用集群容量乘以占满率能得到最大运行容量,然后扣除预估的 OSD 失败率;用较高的失败率(如整机架的 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

默认值

.95

mon osd backfillfull ratio

描述

OSD 磁盘空间利用率达到多少就认为它太满了,不能再接受回填。

类型

Float

默认值

.90

mon osd nearfull ratio

描述

OSD 硬盘使用率达到多少就认为它 nearfull

类型

Float

默认值

.85

Tip

如果一些 OSD 快满了,但其他的仍有足够空间,你可能配错 CRUSH 权重了。

Tip

这些配置仅在创建集群时有效。之后要改它们就在 OSDMap 里了,可以用 ceph osd set-nearfull-ratioceph osd set-full-ratio

心跳

Ceph 监视器要求各 OSD 向它报告、并接收 OSD 们的邻居状态报告,以此来掌握集群。 Ceph 提供了监视器与 OSD 交互的合理默认值,然而你可以按需修改,详情见监视器与 OSD 的交互

监视器存储同步

当你用多个监视器支撑一个生产集群时,各监视器都要检查邻居是否有集群运行图的最新版本(如,邻居监视器的图有一或多个 epoch 版本高于当前监视器的最高版 epoch ),过一段时间,集群里的某个监视器可能落后于其它监视器太多而不得不离开法定人数,然后同步到集群当前状态,并重回法定人数。为了同步,监视器可能承担三种中的一种角色:

  1. Leader: Leader 是实现最新 Paxos 版本的第一个监视器。

  2. Provider: Provider 有最新集群运行图的监视器,但不是第一个实现最新版。

  3. Requester: Requester 落后于 leader ,重回法定人数前,必须同步以获取关于集群的最新信息。

有了这些角色区分, leader就 可以给 provider 委派同步任务,这会避免同步请求压垮 leader 、影响性能。在下面的图示中, requester 已经知道它落后于其它监视器,然后向 leader 请求同步, leader 让它去和 provider 同步。

新监视器加入集群时有必要进行同步。在运行中,监视器会不定时收到集群运行图的更新,这就意味着 leader 和 provider 角色可能在监视器间变幻。如果这事发生在同步期间(如 provider 落后于 leader ), provider 能终结和 requester 间的同步。

一旦同步完成, Ceph 需要修复整个集群,使归置组回到 active + clean 状态。

mon sync trim timeout

描述

类型

Double

默认值

30.0

mon sync heartbeat timeout

描述

类型

Double

默认值

30.0

mon sync heartbeat interval

描述

类型

Double

默认值

5.0

mon sync backoff timeout

描述

类型

Double

默认值

30.0

mon sync timeout

描述

监视器与上家同步的时候,等待下一个更新消息的时长(单位为秒),超时此时间就放弃然后从头再来。

类型

Double

默认值

60.0

mon sync max retries

描述

类型

Integer

默认值

5

mon sync max payload size

描述

同步载荷的最大尺寸(单位为字节)。

类型

32-bit Integer

默认值

1045676

paxos max join drift

描述

允许的最大 Paxos 迭代量,超过此值必须先同步监视器数据。当某个监视器发现别的互联点比它领先太多的时候,它得先同步数据才能继续工作。

类型

Integer

默认值

10

paxos stash full interval

描述

多久(按提交数量计算)存储一份完整的 PaxosService 状态。当前这个选项会影响 mdsmonauthmgr 的 PaxosService 。

类型

Integer

默认值

25

paxos propose interval

描述

提议更新之前收集本时间段的更新。

类型

Double

默认值

1.0

paxos min

描述

保留着的 paxos 状态的最小数量。

类型

Integer

默认值

500

paxos min wait

描述

经过一段不活跃时间后,收集更新的最小等待时间。

类型

Double

默认值

0.05

paxos trim min

描述

有多少多余的提议才能清理。

类型

Integer

默认值

250

paxos trim max

描述

一次最多清理多少多余的提议。

类型

Integer

默认值

500

paxos service trim min

描述

至少积攒多少个版本再触发清理机制( 0 禁用此选项)。

类型

Integer

默认值

250

paxos service trim max

描述

一次提议最多可以清理多少个版本( 0 禁用此选项)。

类型

Integer

默认值

500

mon max log epochs

描述

一次提议最多可以清理多少个日志时间结。

类型

Integer

默认值

500

mon max pgmap epochs

描述

一次提议最多可以清理多少个 pgmap 时间结。

类型

Integer

默认值

500

mon mds force trim to

描述

强制让监视器把 mdsmap 裁截到这一点( 0 禁用此选项)。非常危险,慎用!

类型

Integer

默认值

0

mon osd force trim to

描述

强制让监视器把 osdmap 裁截到这一点,即使指定的时间结上仍有不干净的 PG 也在所不惜。 0 禁用此选项。非常危险,慎用!

类型

Integer

默认值

0

mon osd cache size

描述

osdmap 缓存的尺寸,与底层存储的缓存无关。

类型

Integer

默认值

10

mon election timeout

描述

等待大家确认选举提案的最大时长。单位为秒。

类型

Float

默认值

5

mon lease

描述

监视器版本租期(秒)。

类型

Float

默认值

5

mon lease renew interval factor

描述

mon lease * mon lease renew interval factor 时长就是 Leader (头领)刷新其他监视器租期的间隔。此系数应该小于 1.0

类型

Float

默认值

0.6

mon lease ack timeout factor

描述

Leader 会等着各 Provider 确认租期延续,时间不超过 mon lease * mon lease ack timeout factor

类型

Float

默认值

2.0

mon accept timeout factor

描述

Leader 会等着 Requester(s) 接收 Paxos 更新,时间不超过 mon lease * mon accept timeout factor 。出于类似目的,在 Paxos 恢复阶段也会用到此配置。

类型

Float

默认值

2.0

mon min osdmap epochs

描述

一直保存的 OSD 图元素最小数量。

类型

32-bit Integer

默认值

500

mon max pgmap epochs

描述

监视器应该一直保存的 PG 图元素最大数量。

类型

32-bit Integer

默认值

500

mon max log epochs

描述

监视器应该保留的最大日志数量。

类型

32-bit Integer

默认值

500

时钟

Ceph 的守护进程会相互传递关键消息,这些消息必须在达到超时阀值前处理掉。如果 Ceph 监视器时钟不同步,就可能出现多种异常情况。例如:

  • 守护进程忽略了收到的消息(如时间戳过时了)

  • 消息未及时收到时,超时触发得太快或太晚。

详情见监视器存储同步

Tip

应该在所有监视器主机上安装 NTP 以确保监视器集群的时钟同步。

时钟漂移即使尚未造成损坏也能被 NTP 感知, Ceph 的时钟漂移或时钟偏差警告即使在 NTP 同步水平合理时也会被触发。提高时钟漂移值有时候尚可容忍,然而很多因素(像载荷、网络延时、覆盖默认超时值和监视器存储同步选项)都能在不降低 Paxos 保证级别的情况下影响可接受的时钟漂移水平。

Ceph 提供了下列这些可调选项,让你自己琢磨可接受的值。

clock offset

描述

时钟可以漂移多少,详情见 Clock.cc

类型

Double

默认值

0

Deprecated since version 0.58.

mon tick interval

描述

监视器的心跳间隔,单位为秒。

类型

32-bit Integer

默认值

5

mon clock drift allowed

描述

监视器间允许的时钟漂移量

类型

Float

默认值

.050

mon clock drift warn backoff

描述

时钟偏移警告的退避指数。

类型

Float

默认值

5

mon timecheck interval

描述

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

类型

Float

默认值

300.0

mon timecheck skew interval

描述

时间检查间隔(时钟漂移检查),单位为秒。出现时间偏差时, Leader 间隔多久检查一次。

类型

Float

默认值

30.0

客户端

mon client hunt interval

描述

客户端每 N 秒尝试一个新监视器,直到它建立连接。

类型

Double

默认值

3.0

mon client ping interval

描述

客户端每 N 秒 ping 一次监视器。

类型

Double

默认值

10.0

mon client max log entries per message

描述

某监视器为每客户端生成的最大日志条数。

类型

Integer

默认值

1000

mon client bytes

描述

内存中允许存留的客户端消息数量(字节数)。

类型

64-bit Integer Unsigned

默认值

100ul << 20

存储池选项

从 v0.94 版起,存储池可通过标记来表明这个存储池允许或禁止更改。

如果配置过了,监视器也可以阻止存储池的删除。

mon allow pool delete

描述

监视器是否允许删除存储池。此选项可覆盖存储池标记值。

类型

Boolean

默认值

false

osd pool default flag hashpspool

描述

设置新存储池的 hashpspool 标记。

类型

Boolean

默认值

true

osd pool default flag nodelete

描述

设置新存储池的 nodelete 标记。此标记可防止存储池以任何方式被删除。

类型

Boolean

默认值

false

osd pool default flag nopgchange

描述

设置新存储池的 nopgchange 标记。不允许更改此存储池的 PG 数量。

类型

Boolean

默认值

false

osd pool default flag nosizechange

描述

设置新存储池的 nosizechange 标记。不允许更改此存储池的副本数。

类型

Boolean

默认值

false

关于存储池标记详情请看存储池标记值

杂项

mon max osd

描述

集群允许的最大 OSD 数量。

类型

32-bit Integer

默认值

10000

mon globalid prealloc

描述

为集群预分配的全局 ID 数量。

类型

32-bit Integer

默认值

100

mon subscribe interval

描述

同步的刷新间隔(秒),同步机制允许获取集群运行图和日志信息。

类型

Double

默认值

86400.00

mon stat smooth intervals

描述

Ceph 将平滑最后 N 个归置组图的统计信息。

类型

Integer

默认值

2

mon probe timeout

描述

监视器自举无效,搜寻节点前等待的时间。

类型

Double

默认值

2.0

mon daemon bytes

描述

给元数据服务器和 OSD 的消息使用的内存空间(字节)。

类型

64-bit Integer Unsigned

默认值

400ul << 20

mon max log entries per event

描述

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

类型

Integer

默认值

4096

mon osd prime pg temp

描述

当一个先前处于 out 状态的 OSD 回到集群时,捡回(prime )还是不捡回包含先前各 OSD 的 PGMap 。设置为 true 时,客户端们会继续使用先前的 OSD 们,直到新增了 OSD ,因为原来的 PG 照旧互联。

Note

译者注:原文的 priming 翻译为“捡回”。因为此字意为:底漆、启动、起爆剂、点火装置等,我的理解是,旧版的 PGMap 已经一层层盖着压箱底了,新的本应从当前运行的集群里汇总,可这里启用了旧的,相当于扒了一层底漆、或者点燃了装填好的弹药,故译为捡回。

类型

Boolean

默认

true

mon osd prime pg temp max time

描述

当某一先前状态为 out 的 OSD 回到集群、监视器在捡回 PGMap 时尝试的最大时间,单位为秒。

类型

Float

默认

0.5

mon osd prime pg temp max time estimate

描述

在每个 PG 上所花费时间的最大估值,超过此值我们就并行地捡回所有 PG 。

类型

Float

默认值

0.25

mon osd allow primary affinity

描述

允许在 osdmap 里设置 primary_affinity

类型

Boolean

默认值

False

mon osd pool ec fast read

描述

是否打开存储池的速读功能。如果新建纠删码存储池时没有指定 fast_read ,此值将是默认配置。

类型

Boolean

默认值

False

mon mds skip sanity

描述

跳过 FSMap 的安全性检查确认(遇到软件缺陷时还想继续)。如果 FSMap 健全性检查失败,监视器会终止,但我们可以让它继续,启用此选项即可。

类型

Boolean

默认值

False

mon max mdsmap epochs

描述

一次提议最多可清理多少 mdsmap 时间结。

类型

Integer

默认值

500

mon config key max entry size

描述

config-key 条目的最大尺寸,单位为字节。

类型

Integer

默认值

4096

mon scrub interval

描述

监视器洗刷(对比存储的与根据存储的键计算出的两个校验和)其存储的频率,单位为秒。

类型

Integer

默认值

3600*24

mon scrub max keys

描述

每次最多洗刷多少个键。

类型

Integer

默认值

100

mon compact on start

描述

ceph-mon 启动时压缩监视器存储所用的数据库。如果日常压缩失效,手动压缩有助于缩小监视器的数据库、并提升其性能。

类型

Boolean

默认值

False

mon compact on bootstrap

描述

自举引导期间压缩监视器所用的数据库。监视器完成自举引导后开始互相探测,以建立法定人数;如果加入法定人数超时,它会从头开始自举引导。

类型

Boolean

默认值

False

mon compact on trim

描述

清理旧的状态存档时也压缩这个前缀(包括 paxos )。

类型

Boolean

默认值

True

mon cpu threads

描述

监视器执行 CPU 密集型工作时使用的线程数。

类型

Boolean

默认值

True

mon osd mapping pgs per chunk

描述

我们按块计算归置组到 OSD 的映射关系。这个选项指定了每个块的归置组数量。

类型

Integer

默认值

4096

mon osd max split count

描述

每个“卷入的” OSD 上的 PG 数最大是多少才允许拆分。我们增加某个存储池的 pg_num 时,所有供养着此存储池的 OSD 里的归置组都会被拆分。我们想尽可能避免 PG 拆分数量倍增。

类型

Integer

默认值

300

mon session timeout

描述

会话闲置时间超过此限制,监视器就会终结这个不活跃的会话。

类型

Integer

默认值

300