這篇文章主要講解了“如何緩解index shard過(guò)大造成的影響”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何緩解index shard過(guò)大造成的影響”吧!
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)寶山,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
下面這些都是屬于應(yīng)急操作,屬于快速止血止痛,部分操作屬高危,一定要謹(jǐn)慎使用。
下面的幾個(gè)參數(shù)只是用例,具體根據(jù)各位線上情況進(jìn)行調(diào)整,但是不宜過(guò)大。
osd_op_thread_timeout = 90 #default is 15 osd_op_thread_suicide_timeout = 300 #default is 150 filestore_op_thread_timeout = 180 #default is 60 filestore_op_thread_suicide_timeout = 300 #default is 180 osd_scrub_thread_suicide_timeout = 300 #如果出現(xiàn)scrub導(dǎo)致的op超時(shí)可以適當(dāng)增加這個(gè)
在可以停OSD的情況下,可以對(duì)OSD進(jìn)行compact操作,推薦在ceph 0.94.6以上版本,低于這個(gè)版本有bug。
1. 開啟noout操作 ceph osd set noout 2. 停OSD服務(wù) systemctl stop ceph-osd@<osd-id> 或者 /etc/init.d/ceph stop osd.<osd-id> 3. 檢查osd進(jìn)程 ps -ef| grep "id <osd_id>" 4. 在ceph.conf中對(duì)應(yīng)的[osd.id]加上下面配置 leveldb_compact_on_mount = true 5. 啟動(dòng)osd服務(wù) systemctl start ceph-osd@<osd-id> 或 /etc/init.d/ceph start osd.<osd-id> 6. 確認(rèn)進(jìn)程運(yùn)行中 ps -ef| grep "id <osd-id>" 7. 使用ceph -s命令觀察結(jié)果,最好同時(shí)使用tailf命令去觀察對(duì)應(yīng)的OSD日志. 等所有pg處于active+clean之后再繼續(xù)下面的操作 8. 確認(rèn)compact完成以后的omap大小: du -sh /var/lib/ceph/osd/ceph-$id/current/omap 9. 刪除osd中臨時(shí)添加的leveldb_compact_on_mount配置 10. 取消noout操作(視情況而定,建議線上還是保留noout): ceph osd unset noout
對(duì)bucket做reshard操作,可以實(shí)現(xiàn)調(diào)整bucket的shard數(shù)量,實(shí)現(xiàn)index數(shù)據(jù)的重新分布。
僅支持ceph 0.94.10以上版本,需要停bucket讀寫,有數(shù)據(jù)丟失風(fēng)險(xiǎn),慎重使用,出了問(wèn)題本人概不負(fù)責(zé)。
注意下面的操作一定要確保對(duì)應(yīng)的bucket相關(guān)的操作都已經(jīng)全部停止,之后使用下面命令備份bucket的index radosgw-admin bi list --bucket=<bucket_name> > <bucket_name>.list.backup 通過(guò)下面的命令恢復(fù)數(shù)據(jù) radosgw-admin bi put --bucket=<bucket_name> < <bucket_name>.list.backup 查看bucket的index id root@demo:/home/user# radosgw-admin bucket stats --bucket=bucket-maillist { "bucket": "bucket-maillist", "pool": "default.rgw.buckets.data", "index_pool": "default.rgw.buckets.index", "id": "0a6967a5-2c76-427a-99c6-8a788ca25034.54133.1", #注意這個(gè)id "marker": "0a6967a5-2c76-427a-99c6-8a788ca25034.54133.1", "owner": "user", "ver": "0#1,1#1", "master_ver": "0#0,1#0", "mtime": "2017-08-23 13:42:59.007081", "max_marker": "0#,1#", "usage": {}, "bucket_quota": { "enabled": false, "max_size_kb": -1, "max_objects": -1 } } Reshard對(duì)應(yīng)bucket的index操作如下: 使用命令將"bucket-maillist"的shard調(diào)整為4,注意命令會(huì)輸出osd和new兩個(gè)bucket的instance id root@demo:/home/user# radosgw-admin bucket reshard --bucket="bucket-maillist" --num-shards=4 *** NOTICE: operation will not remove old bucket index objects *** *** these will need to be removed manually *** old bucket instance id: 0a6967a5-2c76-427a-99c6-8a788ca25034.54133.1 new bucket instance id: 0a6967a5-2c76-427a-99c6-8a788ca25034.54147.1 total entries: 3 之后使用下面的命令刪除舊的instance id root@demo:/home/user# radosgw-admin bi purge --bucket="bucket-maillist" --bucket-id=0a6967a5-2c76-427a-99c6-8a788ca25034.54133.1 查看最終結(jié)果 root@demo:/home/user# radosgw-admin bucket stats --bucket=bucket-maillist { "bucket": "bucket-maillist", "pool": "default.rgw.buckets.data", "index_pool": "default.rgw.buckets.index", "id": "0a6967a5-2c76-427a-99c6-8a788ca25034.54147.1", #id已經(jīng)變更 "marker": "0a6967a5-2c76-427a-99c6-8a788ca25034.54133.1", "owner": "user", "ver": "0#2,1#1,2#1,3#2", "master_ver": "0#0,1#0,2#0,3#0", "mtime": "2017-08-23 14:02:19.961205", "max_marker": "0#,1#,2#,3#", "usage": { "rgw.main": { "size_kb": 50, "size_kb_actual": 60, "num_objects": 3 } }, "bucket_quota": { "enabled": false, "max_size_kb": -1, "max_objects": -1 } }
Jewel以上版本可用
使用下面的命令開啟pool的noscrub和deep-scrub # ceph osd pool set <pool-name> noscrub 1 # ceph osd pool set <pool-name> nodeep-scrub 1 使用下面命令確認(rèn)配置 # ceph osd dump | grep <pool-name> pool 11 'pool-name' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 800 flags hashpspool,noscrub,nodeep-scrub stripe_width 0 取消pool的noscrub和deep-scrub設(shè)置 # ceph osd pool set <pool-name> noscrub 0 # ceph osd pool set <pool-name> nodeep-scrub 0
感謝各位的閱讀,以上就是“如何緩解index shard過(guò)大造成的影響”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何緩解index shard過(guò)大造成的影響這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
名稱欄目:如何緩解indexshard過(guò)大造成的影響
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article2/igojic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、面包屑導(dǎo)航、云服務(wù)器、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)