3.2.7. monitor Store Synchronization
当您使用多个监控器运行生产集群时,每个 monitor 会检查邻居监视器是否有最新版本的 cluster map。例如,一个邻居监视器中的映射,其一个或多个 epoch 号高于即时监视器映射中当前 epoch 的数值。定期,集群中的一个监视器可能位于其他 monitor 后,它必须离开仲裁,同步来检索有关集群的最新信息,然后重新加入仲裁。出于同步目的,监视器可以假定以下三个角色之一:
- Leader :Leader 是达到集群映射的最新 Paxos 版本的第一个 moitor。
- Provider :Provider 是一个具有集群映射的最新版本的 monitor,但不是第一个。
- Requester: 请求者是一个监控器,它已落后于领导,必须同步来检索集群的最新信息,然后才能重新加入仲裁。
这些角色使领导能够将同步任务委派给提供程序,从而防止同步请求过载,并提高性能。在下图中,请求者已了解到它已位于其他 monitor 后。请求者要求领导要同步,并且领导者告诉请求者与提供程序同步。
当新 monitor 加入集群时,才会发生同步。在运行时操作期间,监控器可以在不同时间接收集群映射的的更新。这意味着领导和提供商角色可以从一个监控器迁移到另一个监视器。例如在同步时发生这种情况,例如,提供商落于领导,提供商可以与请求者终止同步。
同步完成后,Ceph 需要在集群中修剪。修剪要求放置组处于 active + clean 状态。
- mon_sync_trim_timeout
- 描述, 类型
- 双
- 默认
-
30.0
- mon_sync_heartbeat_timeout
- 描述, 类型
- 双
- 默认
-
30.0
- mon_sync_heartbeat_interval
- 描述, 类型
- 双
- 默认
-
5.0
- mon_sync_backoff_timeout
- 描述, 类型
- 双
- 默认
-
30.0
- mon_sync_timeout
- 描述
- 在启动和引导前,监控器将等待其同步提供程序中下一次更新消息的秒数。
- 类型
- 双
- 默认
-
30.0
- mon_sync_max_retries
- 描述, 类型
- 整数
- 默认
-
5
- mon_sync_max_payload_size
- 描述
- 同步有效负载(以字节为单位)的最大大小。
- 类型
- 32 位整数
- 默认
-
1045676
- paxos_max_join_drift
- 描述
- 必须首先同步监控数据存储前,最大的 Paxos 迭代。当 monitor 发现其对等点比其太超前时,它将首先与数据存储同步,然后再继续。
- 类型
- 整数
- 默认
-
10
- paxos_stash_full_interval
- 描述
-
(在 commits 时)stash PaxosService 状态的完整副本的频率。当前此设置仅影响
mds、mon、auth和mgrPaxosServices。 - 类型
- 整数
- 默认
- 25
- paxos_propose_interval
- 描述
- 收集这个时间更新,然后再执行映射更新。
- 类型
- 双
- 默认
-
1.0
- paxos_min
- 描述
- 要保留的最小 paxos 状态数量
- 类型
- 整数
- 默认
- 500
- paxos_min_wait
- 描述
- 在不活跃的一段时间后,收集更新的最小时间。
- 类型
- 双
- 默认
-
0.05
- paxos_trim_min
- 描述
- 在修剪前可以容忍的额外提议数
- 类型
- 整数
- 默认
- 250
- paxos_trim_max
- 描述
- 一次要修剪的最大额外提议数
- 类型
- 整数
- 默认
- 500
- paxos_service_trim_min
- 描述
- 触发修剪的最小版本数量(0 禁用它)
- 类型
- 整数
- 默认
- 250
- paxos_service_trim_max
- 描述
- 单一提案期间要修剪的最大版本量(0 代表禁用它)
- 类型
- 整数
- 默认
- 500
- mon_max_log_epochs
- 描述
- 单个提议期间要修剪的最大日志时期量
- 类型
- 整数
- 默认
- 500
- mon_max_pgmap_epochs
- 描述
- 单个建议期间要修剪的最大 pgmap epoch 数量
- 类型
- 整数
- 默认
- 500
- mon_mds_force_trim_to
- 描述
- 强制 monitor 在这点上修剪 mdsmaps(0 代表禁用。这个设置比较危险,请谨慎使用)
- 类型
- 整数
- 默认
- 0
- mon_osd_force_trim_to
- 描述
- 强制 monitor 在这点上修剪 osdmaps,即使指定 epoch 中没有清理 PG(0 则禁用它。dangerous 则谨慎使用)
- 类型
- 整数
- 默认
- 0
- mon_osd_cache_size
- 描述
- osdmaps 缓存的大小,不依赖于底层存储的缓存
- 类型
- 整数
- 默认
- 10
- mon_election_timeout
- 描述
- 在选举代理上,让所有 ACK 的最大等待时间(以秒为单位)。
- 类型
- 浮点值
- 默认
-
5
- mon_lease
- 描述
- 监控版本中租期的长度(以秒为单位)。
- 类型
- 浮点值
- 默认
-
5
- mon_lease_renew_interval_factor
- 描述
-
mon lease*mon lease renew interval factor将是领导机更新其他 monitor 的租期的时间间隔。因素应小于1.0。 - 类型
- 浮点值
- 默认
-
0.6
- mon_lease_ack_timeout_factor
- 描述
-
领导机将会等待
mon lease*mon lease ack timeout factor的时间来等待供应商确认租期的扩展。 - 类型
- 浮点值
- 默认
-
2.0
- mon_accept_timeout_factor
- 描述
-
领导机将等待
mon lease*mon accept timeout来等待 Requester 接受 Paxos 更新。它还在 Paxos 恢复阶段用于类似目的。 - 类型
- 浮点值
- 默认
-
2.0
- mon_min_osdmap_epochs
- 描述
- 始终保留的最小 OSD map epoch 数。
- 类型
- 32 位整数
- 默认
-
500
- mon_max_pgmap_epochs
- 描述
- 监视器应保留的最大 PG 映射 epoch 数。
- 类型
- 32 位整数
- 默认
-
500
- mon_max_log_epochs
- 描述
- 监视器应保留的最大日志 epoch 数。
- 类型
- 32 位整数
- 默认
-
500