Ceph Cache Tier

CacheTierceph服務端緩存的一種方案,簡單來說就是加一層Cache層,客戶端直接跟Cache層打交道,提高訪問速度,後端有一個存儲層,實際存儲大批量的數據。

分層存儲的原理,就是存儲的數據的訪問是有熱點的,數據並非均勻訪問。有個通用法則叫做二八原則,也就是80%的應用只訪問20%的數據,這20%的數據成爲熱點數據,如果把這些熱點數據保存性能比較高的SSD磁盤上,就可以提高響應時間。

性能較高的存儲,一般由SSD 磁盤組成,稱之爲Cache 層,hot層,Cache pool 或者 hot pool訪問性能比較低的存儲層就稱爲 base pool 或者 data poolcold pool 等。

 

一、ceph cache mode

1、WriteBack模式:

客戶端寫入cache層,cache層應答,並且及時的寫入back層,並刪除掉cache層數據。客戶端讀取時,如果cache層不存在該數據,則從back層遷移數據過來,服務讀取請求,一直可以服務到有效期內,適合於大量修改的數據應用場景(例如圖片視頻編輯, 聯機事務處理類應用),適合數據。

 

2、Read-only模式:

讀請求直接發送給cache pool,寫請求並不經過cache pool,而是直接發送給back_pool.客戶端寫數據時,直接寫入到back層,客戶端讀取時,cache層從back層拷貝數據,並在有效期內服務,過期的數據會被刪除,這種方式的優點就是,cache pool 設置爲單副本就可以了,即使cache pool 層失效,也不會有數據的丟失。這種模式比較適合數據一次寫入,多次讀取的應用場景。例如圖片,視頻, 音頻等。適合數據。

 

3、Read-forward模式:

寫的時候,和WriteBack模式一樣;讀的時候,如果cache層不存在該對象,則會轉發讀請求到back層。

 

4、Read-proxy模式:

Read-forward模式相似,讀取的時候不是轉發客戶端的請求,而是代表客戶端去讀取back層的數據。

 

二、使用Cache Tier步驟

1、創建2pool

ceph osd poolcreate cachepool 150 150
ceph osd poolcreate backpool 150 150

2、關聯2pool

 cephosd tier add backpool cachepool

3、設置cache模式

ceph osd tiercache-mode cachepool writeback
#writeback|forward|readonly|readforward四種模式根據需求選擇


4、設置over-lay

所謂overlay,即所有發送到後端存儲層的請求會被轉發到cache層。

ceph osd tierset-overlay backpool cachepool

 

三、配置cache tier

cephosd pool set foo-hot hit_set_type bloom
cephosd pool set foo-hot hit_set_count 1
cephosd pool set foo-hot hit_set_period 3600  # 1 hour
ceph osd pool set foo-hot target_max_bytes1000000000000  # 1 TB
ceph osd pool set foo-hottarget_max_objects 1000000       # 1million objects
ceph osd pool set foo-hotcache_min_flush_age 600   # 10 minutes
ceph osd pool set foo-hotcache_min_evict_age 1800   # 30 minutes

Cache層的閾值

ceph osd pool set cachepooltarget_max_bytes 1099511627776
ceph osd pool set cachepooltarget_max_objects 1000000
ceph osd pool set cachepoolcache_target_dirty_ratio 0.4
ceph osd pool set cachepoolcache_target_full_ratio 0.8
ceph osd pool set cachepool  cache_min_flush_age 600
ceph osd pool set cachepoolcache_min_evict_age 1800

刪除cache tier(Read-only)

ceph osd tier cache-mode cachepool none
ceph osd tier remove backpool cachepool

刪除cache tier(Write-back)

ceph osd tier cache-mode cachepool forward
rados -p cachepool ls
rados -p cachepool cache-flush-evict-all
ceph osd tier remove-overlay backpool
ceph osd tier remove backpool cachepool


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