Ceph集群定时Scrub
Scrub是什么?
Scrub是Ceph集群副本进行数据扫描的操作,用以检测副本间数据的一致性,包括Scrub和Deep-Scrub,其中Scrub只对元数据信息进行扫描,相对比较快,而Deep-Scrub不仅对元数据进行扫描,还会对存储的数据进行扫描,相对比较慢
实战案例
晚22点到第二天7点进行scrub
配置scrub其实时间为22点整ceph tell osd.* injectargs --osd_scrub_begin_hour 22配置Scrub结束时间为第二天早上7点整:ceph tell osd.* injectargs --osd_scrub_end_hour 7
配置文件
[osd]osd_scrush_begin_hour = 22osd_scrush_end_hour = 7
Ceph数据重建配置策略
ceph集群出现OSD的out或者in(增加,删除,上线,下线osd等情况),最终会导致集群ceph集群中的数据迁移及数据重建
案例实战
1.优先保证Recovery带宽
在对数据安全性要求比较高的场景下,为了保证数据副本的完整性以及快速恢复存储集群的健康,会优先保证数据恢复带宽,此时需要提升Recovery的I/O优先级,降低Client的I/O优先级
提升Recovery的I/O优先级ceph tell osd.* injectargs --osd_recovery_op_priority 63降低Client的I/O优先级ceph tell osd.* injectargs --osd_client_op_priority 3
- 优先保证Client带宽
对数据安全性要求不是很高的场景下,为了降低对用户体验的影响,会优先对Client的I/O优先级及带宽进行保证,此时需要降低Recovery的I/O优先级及带宽 
降低Recovery的I/O优先级ceph tell osd.* injectargs --osd-recovery-op-priority 1降低Recovery的I/O带宽及Backfilldceph tell osd.* injectargs --osd_recovery_max_active 1ceph tell osd.* injectargs --osd_recovery_sleep 0.4待完成ceph tell osd.* injectargs --osd-recovery-op-priority 1ceph tell osd.* injectargs --osd_recovery_max_active 1ceph tell osd.* injectargs --osd_recovery_sleep 0.4
- 完全保证Client带宽
在极端情况下,如果网络带宽及磁盘性能都有限,这个时候为了不影响用户体验,不得不在业务繁重时段关闭数据重建及迁移的I/O,来完成保证Client的带宽,在业务空闲时,再打开数据重建及迁移 
在业务繁忙时,完全关闭数据重建及迁移ceph osd set norebalanceceph osd set norecoverceph osd set nobackfill空闲时,打开数据重建及迁移ceph osd unset norebalanceceph osd unset norecoverceph osd unset nobackfill
Ceph集群Full紧急处理
1 near_full 和 full是什么?
near_full 空间使用率的告警水位full 空间使用率大于等于full告警水位时
2 如何查看当前集群的near_full 及 full 水位?
在mon节点查询mon配置
ceph --admin-daemon /run/ceph/ceph-mon.{your-mon-ip}.asok config show | grep full_ratio
在OSD所在节点查询OSD配置
ceph --admin-daemon /run/ceph/ceph-osd.{your-osd-id}.asok config show | grep full
3.遇到near_full 的告警该怎么办?
如果集群已经有near_full的告警了,也扩容的设备
4.遇到full的告警该怎么办?
数据保存工作,并对集群进行紧急配置删除一些无用的数据,恢复工作状态,待扩容设备到了再进行扩容
案例实战
1. 设置OSD禁止读写ceph osd pause #改操作会禁止接收一切读写请求2. 通知mon 和 osd 修改full阈值ceph tell mon.* injectargs --mon_osd_full_ratio 0.96ceph tell osd.* injectargs --mon_osd_full_ratio 0.963.通知PG修改full阈值ceph pg set_full_ratio 0.964. 解除OSD禁止读写ceph osd unpause5. 删除相关数据6. 将配置还原ceph tell mon.* injectargs --mon_osd_full_ratio 0.95ceph tell osd.* injectargs --mon_osd_full_ratio 0.95ceph pg set_full_ratio 0.95
ceph快照在增量备份的应用
1.容灾和备份差异
容灾:为了保证业务的“连续性”,侧重的是业务连续
- 什么是全量备份,增量备份,差量备份
 
全量备份:备份所有的数据增量备份:每次备份与上一次以来增加的内容差量备份:每次都备份当前与基准备份之间的差异内容空间开销: 全量>差量>增量恢复难度: 增量 > 差量 > 全量
