6.7. 恢复
当集群启动或 Ceph OSD 意外终止并重启时,OSD 开始与其他 Ceph OSD 的对等点,然后才能执行写入操作。
如果 Ceph OSD 崩溃然后又恢复在线,通常它将与其他 Ceph OSD 同步,包含 PG 中最新版本的对象。发生这种情况时,Ceph OSD 进入恢复模式并寻求数据的最新副本,并使其映射重新变为最新。根据 Ceph OSD 停机的时长,OSD 对象和放置组可能会显著不同步。另外,如果故障域停止(例如,一个机架出现问题),则在恢复过程中可能出现多个 Ceph OSD 同时上线的问题。这样可使恢复过程消耗和大量资源。
为保持可操作的性能,Ceph 对允许 Ceph 在降级状态进行大规模恢复、线程和对象块大小的限制。
- osd_recovery_delay_start
- 描述
- 在对等点完成后,Ceph 会在开始恢复对象前延迟指定的秒数。
- 类型
- 浮点值
- 默认
-
0
- osd_recovery_max_active
- 描述
- 一次每个 OSD 活跃的恢复请求数。更多请求将加快恢复速度,但请求会给集群带来更大的负载。
- 类型
- 32 位整数
- 默认
-
3
- osd_recovery_max_chunk
- 描述
- 要推送的数据恢复块的最大大小。
- 类型
- 64 位 Unsigned 整数
- 默认
-
8 << 20
- osd_recovery_threads
- 描述
- 恢复数据的线程数量。
- 类型
- 32 位整数
- 默认
-
1
- osd_recovery_thread_timeout
- 描述
- 超时恢复线程前的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
30
- osd_recover_clone_overlap
- 描述
-
在恢复期间保留克隆重叠。应始终设为
true
。 - 类型
- 布尔值
- 默认
-
true