Ceph入门到静态-deep scrub 深度清理处理

9.6 洗刷 REPORT DOCUMENTATION BUG#

除了为对象创建多个副本外,Ceph 还可通过洗刷归置组来确保数据完整性(请参见第 1.3.2 节 “归置组”了解有关归置组的详细信息)。Ceph 的洗刷类似于在对象存储层运行 fsck。对于每个归置组,Ceph 都会生成一个包含所有对象的编目,并比较每个主对象及其副本,以确保不会有缺失或不匹配的对象。每天的浅层洗刷会检查对象大小和属性,而每周的深层洗刷则会读取数据并使用校验和来确保数据完整性。

洗刷对于维护数据完整性非常重要,但该操作可能会降低性能。您可以通过调整以下设置来增加或减少洗刷操作:

osd max scrubs

同时针对一个 Ceph OSD 执行的洗刷操作数量上限。默认值为 1。

osd scrub begin hourosd scrub end hour

按小时定义的一天内可以执行洗刷的时间段(0 到 24)。默认开始时间为 0,结束时间为 24。

重要

如果归置组的洗刷间隔超出 osd scrub max interval 设置的值,则无论您定义的洗刷时间段为何,都将执行洗刷。

osd scrub during recovery

允许恢复期间执行洗刷。如果将此选项设置为“false”,则当存在工作的恢复进程时,将禁止安排新的洗刷。已在运行的洗刷将继续执行。此选项有助于降低忙碌集群上的负载。默认值为“true”。

osd scrub thread timeout

洗刷线程超时前的最长时间(以秒为单位)。默认值为 60。

osd scrub finalize thread timeout

洗刷完成线程超时前的最长时间(以秒为单位)。默认值为 60*10。

osd scrub load threshold

规范化的最大负载。当系统负载(由 getloadavg() 与 online cpus 数量之比定义)高于此数字时,Ceph 将不会执行洗刷。默认值为 0.5。

osd scrub min interval

当 Ceph 集群负载较低时洗刷 Ceph OSD 的最短间隔(以秒为单位)。默认值为 60*60*24(一天一次)。

osd scrub max interval

无论集群负载如何都洗刷 Ceph OSD 的最长间隔(以秒为单位)。默认值为 7*60*60*24(一周一次)。

osd scrub chunk min

单次操作期间要洗刷的对象存储块数量下限。洗刷期间,Ceph 会阻止向单个块写入数据。默认值为 5。

osd scrub chunk max

单次操作期间要洗刷的对象存储块数量上限。默认值为 25。

osd scrub sleep

洗刷下一组块之前休眠的时间。增大此值会降低整个洗刷操作的速度,但对客户端操作的影响较小。默认值为 0。

osd deep scrub interval

深层洗刷(完整读取所有数据)的间隔。osd scrub load threshold 选项不会影响此设置。默认值为 60*60*24*7(一周一次)。

osd scrub interval randomize ratio

在安排归置组的下一次洗刷作业时,为 osd scrub min interval 值增加一个随机延迟。该延迟为一个随机的值,小于 osd scrub min interval * osd scrub interval randomized ratio 所得结果。因此,该默认设置实际上是将洗刷随机地安排在允许的时间段 [1, 1.5] * osd scrub min interval 内执行。默认值为 0.5。

osd deep scrub stride

执行深层洗刷时读取的大小。默认值为 524288 (512 kB)。

你可能感兴趣的:(Ceph入门到精通,ceph,数据库,网络)