ceph-rgw之indexless

背景:

很多人對ceph,rgw的性能問題不太滿意,主要是index pool(默認是存在一個shard里面,當(dāng)一個shard越來越大時,一種極端情況是把相關(guān)的osd占滿)的瓶頸,當(dāng)然網(wǎng)上也有人提到了產(chǎn)生一些問題,主要問題如下:

對index pool進行scrub或deep-scrub的時候,如果shard對應(yīng)的Object過大,會極大消耗底層存儲設(shè)備性能,造成io請求超時。

底層deep-scrub的時候耗時過長,會出現(xiàn)request blocked,導(dǎo)致大量http請求超時而出現(xiàn)50x錯誤,從而影響到整個RGW服務(wù)的可用性。

當(dāng)壞盤或者osd故障需要恢復(fù)數(shù)據(jù)的時候,恢復(fù)一個大體積的shard文件將耗盡存儲節(jié)點性能,甚至可能因為OSD響應(yīng)超時而導(dǎo)致整個集群出現(xiàn)雪崩。

改進方式:

考慮一個場景

如果你向ceph 上傳對象時,同時也在本地或別的地方記錄了元數(shù)據(jù)信息,你就可以避免使用index pool,同時也分擔(dān)了ceph存儲的壓力。

使用indexless將會是一個不錯的選擇。

網(wǎng)址:http://www.ksingh.co.in/blog/2017/01/30/ceph-indexless-bucket-part-2/

這個網(wǎng)址寫的已經(jīng)很全了。我就不費太多口舌。

驗證是否設(shè)置好indexless,可以通過radosgw-admin 去查

例如:radosgw-admin bucket stats --bucket=bucket3

有一個index_type,normal是具有索引的對象存儲,別的indexless的。

另外一種是采取分片+快池的方式詳情請查看https://cloud.tencent.com/developer/article/1032858

注意事項:

1.設(shè)置完indexless 不會對之前的buket的類型有影響

2.通過indexless 設(shè)置的bucket 如果里面有數(shù)據(jù),不會給你警告,會給你直接刪除bucket,object會處于游離態(tài)

3.普通 bucket 可以通過上述命令查看數(shù)量,但是indexless 看不了,usage信息不存在。

4.刪除bucket不會刪除里面的對象 ,但是刪除方式現(xiàn)在只能管理員操作rgw pool來刪除,需要結(jié)合一定pool 文件命名格式去刪,查看rgw object bucket 存儲位置以及在pool里面對象名稱命名方式 (后續(xù)文檔介紹),當(dāng)然通過你得知道下bucket_id。

5.設(shè)置生命周期,未到時間點人為刪除bucket ,刪除bucket ,內(nèi)部游離的object 不會隨生命周期而操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容