前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ceph 运维操作-SCRUB

ceph 运维操作-SCRUB

作者头像
Lucien168
发布2020-07-20 11:22:02
2.4K0
发布2020-07-20 11:22:02
举报
文章被收录于专栏:分布式存储

1. 基本概念

1.1 什么是 Scrub

Scrub是 Ceph 集群副本进行数据扫描的操作,用于检测副本间数据的一致性,包括 scrub 和 deep-scrub。 其中scrub 只对元数据信息进行扫描,相对比较快;而deep-scrub 不仅对元数据进行扫描,还会对存储的数据进行扫描,相对比较慢。

1.2 Scrub默认执行周期

OSD 的scrub 默认策略是每天到每周(如果集群负载大周期就是一周,如果集群负载小周期就是一天)进行一次, 时间区域默认为全体(0时-24时),deep-scrub默认策略是每周一次。

2. 配置

为了避开客户业务高峰时段,建议在晚上0点到第二天早上5点之间,执行scrub 操作。

2.1 设置标识位

在任一monitor节点进行如下操作:

代码语言:javascript
复制
ceph osd set noscrub
ceph osd set nodeep-scrub

2.2 临时配置

先通过tell 方式,让scrub 时间区间配置立即生效,在任一monitor节点进行如下操作:

代码语言:javascript
复制
ceph tell osd.* injectargs '--osd_scrub_begin_hour 0'
ceph tell osd.* injectargs '--osd_scrub_end_hour 5'
ceph tell mon.* injectargs '--osd_scrub_begin_hour 0'
ceph tell mon.* injectargs '--osd_scrub_end_hour 5'

2.3 修改配置文件

为了保证集群服务重启或者节点重启依然有效,需要修改Ceph集群所有节点的配置文件 /etc/ceph/ceph.conf

代码语言:javascript
复制
# vim /etc/ceph/ceph.conf
[osd]
osd_scrub_begin_hour = 0    # scrub操作的起始时间为0点
osd_scrub_end_hour = 5      # scrub操作的结束时间为5点#ps: 该时间设置需要参考物理节点的时区设置
 
osd_scrub_chunk_min = 1  #标记每次scrub的最小数
osd_scrub_chunk_max = 1  #标记每次scrub的最大数据块
osd_scrub_sleep = 3  #标记当前scrub结束,执行下次scrub的等待时间,增加该值,会导致scrub变慢,客户端影响反而会减小

2.4 取消标识位

代码语言:javascript
复制
ceph osd unset noscrub
ceph osd unset nodeep-scrub
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本概念
    • 1.1 什么是 Scrub
      • 1.2 Scrub默认执行周期
      • 2. 配置
        • 2.1 设置标识位
          • 2.2 临时配置
            • 2.3 修改配置文件
              • 2.4 取消标识位
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档