Ceph集羣定時Scrub

1、背景:
Ceph集羣會定時進行Scrub操作,在Ceph對接OpenStack的場景中,如果Ceph集羣正在進行Scrub操作,會對Scrub的數據進行加鎖,如果OpenStack使用Ceph作爲後端存儲的虛擬機此時也在訪問該數據,就會導致OpenStack中使用Ceph作爲後端存儲的虛擬機可能會出現卡頓的現象。
1)Scurb是什麼?
Scrub是Ceph集羣副本進行數據掃描的操作,用以檢測副本間數據的一致性,包括Scrub和Deep Scrub,其中Scrub只會對元數據信息進行掃描,相對比較快,而Deep Scrub不僅對元數據進行掃描,還會對存儲的數據進行掃描,相對比較慢。
2)Scrub默認週期是多久進行一次?
OSD的Scrub默認配置策略是每天到每週(如果集羣負載大週期就是一週,如果集羣負載小週期就是一天)進行一次,時間區域默認爲全天(0時-24時),Deep Scrub默認策略是每週一次。

2、案例實戰
基於對業務運行時間的瞭解,晚上10點到第二天早上7點爲業務閒時,可以進行Scrub操作,本文以此爲例進行配置策略的制定。
場景:晚22點到第二天早上7點進行Scrub
先通過tell方式,讓Scrub時間區間配置立即生效,具體操作如下:
配置Scrub起始時間爲22點整:

ceph tell osd.* injectargs "--osd-scrub-begin-hour 22"

配置Scrub結束時間爲第二天早上7點整:

ceph tell osd.* injectargs "--osd-scrub-end-hour 7"

然後將Ceph集羣所有節點的配置文件修改,參考如下:

vim /etc/ceph/ceph.conf
[global]
......

[osd]
osd_scrub_begin_hour = 22
osd_scrub_end_hour = 7

這樣之後,可以使配置立即生效,即使集羣服務重啓或者節點重啓,配置也會重新從配置文件中加載,永久生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章