ceph cache teir配置模式以及引數說明

2021-09-25 08:21:04 字數 3492 閱讀 6958

這裡簡單解釋一下ceph的cache tier

這裡可以叫做ceph的快取層,為了提高整個ceph集群的io能力,可以在普通機械硬碟上加一層高速的ssd快取,客戶端讀寫資料的時候直接請求到ssd快取記憶體上,所以直接感官就是讀寫響應更快了。

幾種配置模式

建立乙個有快取層的池

ceph osd tier add

當新增了快取層後,需要將強求重新定向到快取層

ceph osd tier set-overlay

快取層配置引數:

ceph osd pool set

ceph生產環境快取層的hit_set_type演算法使用了bloom filter,此引數含義是啟用快取層的命中集合跟蹤

ceph osd pool set hit_set_type bloom

可以設定為bloom, explicit_hash, explicit_object

hit_set_count:快取層儲存的命中集(hitset)數量,設定越大,ceph-osd程序占用記憶體的量越大。

hit_set_period:快取層中命中集(histset)多久被覆蓋重寫,也就是儲存的時間週期

如下設定

eph osd pool set  hit_set_count 12

ceph osd pool set hit_set_period 14400

ceph osd pool set target_max_bytes 1000000000000

min_read_recency_for_promote:在處理乙個物件的讀操作時檢查多少個 hitset ,檢查結果將用於決定是否非同步地提公升物件。它的取值在 0 和 hit_set_count 之間,如果設定為 0 ,物件會一直被提公升;如果設定為 1 ,就只檢查當前 hitset ,如果此物件在當前 hitset 裡就提公升它,否則就不提公升;設定為其它值時,就要挨個檢查此數量的歷史 hitset ,如果此物件出現在 min_read_recency_for_promote 個 hitset 裡的任意乙個,那就提公升它。min_write_recency_for_promote和min_read_recency_for_promote 類似

ceph osd pool set  min_read_recency_for_promote 2

ceph osd pool set min_write_recency_for_promote 2

注意:min_read_recency_for_promote和min_write_recency_for_promote的值越高,統計的週期越長,ceph-osd程序消耗的ram越多。特別是,當**忙於重新整理或逐出快取物件時,所有hit_set_count hitset都會載入到記憶體中。

cache尺寸

快取記憶體層可以通過指定總位元組數或物件來重新整理或逐出物件。

指定位元組數:

ceph osd pool set target_max_bytes

在1t時開始重新整理或者驅逐

ceph osd pool set hot-storage target_max_bytes 1099511627776

指定物件總數:

ceph osd pool set target_max_objects

在物件達到1000000時開始重新整理或者驅逐

ceph osd pool set hot-storage target_max_objects 1000000

注意:ceph不能自動決定快取層的大小,所以需要配置固定的大小,否則,重新整理和驅逐不會工作。如果上面2個引數都指定了,那麼那個引數先達到,就先觸發重新整理或者驅逐。另外,在重新整理和驅逐的時候,客戶端的請求會被阻塞。

相關髒資料重新整理和移除引數

快取層也可以指定在以上arget_max_objects和arget_max_bytes固定大小的情況下,更具這個池子髒資料的百分比進行重新整理和驅逐。

當髒資料超過池子指定的百分比,會發生重新整理操作,如髒資料達到池子40%會觸發普通重新整理

ceph osd pool set cache_target_dirty_ratio 0.4

當髒資料達到池子指定的百分比,會發生高速重新整理操作,如達到池子的60%會觸發高速重新整理,這個值通常設定為cache_target_dirty_ratio和cache_target_full_ratio之間。

ceph osd pool set cache_target_dirty_high_ratio 0.6

當髒資料達到這個引數指定的百分比,會移除未修改(乾淨)的資料,如達到80%會移除資料

ceph osd pool set cache_target_full_ratio 0.8

快取時間

設定髒資料重新整理到儲存層的最小時間,比如設定10分鐘後執行重新整理

ceph osd pool set cache_min_flush_age 600

設定物件被驅逐的最小時間,比如設定30分鐘後驅逐物件

ceph osd pool cache_min_evict_age 1800

移除快取池

根據使用的模式不同,移除方式也不同

移除乙個read-only的快取池,因為這個模式不儲存資料修改,禁用後直接移除即可

上面講過,禁用設定為none即可

ceph osd tier cache-mode none

從儲存層移除快取池

ceph osd tier remove

移除writeback模式的快取池

因為這個模式下存在被修改的資料,所以需要先把這些修改的資料重新整理到儲存層,然後再禁用移除。

修改快取池到proxy模式,

ceph osd tier cache-mode proxy

確保快取池被回刷

rados -p ls

如果快取池仍然有物件存在,可以通過手動重新整理,重新整理到儲存池

rados -p cache-flush-evict-all

移除重定向,使客戶端不再去快取層互動

ceph osd tier remove-overlay cold-storage

最後,移除快取池

ceph osd tier remove

參考:

linux配置 網路配置

ip位址,子網掩碼,閘道器 設定ip位址,子網掩碼並啟用 ifconfig eth0 10.192.77.250 netmask 255.255.255.0 up 注 ip,掩碼,閘道器都設定到 etc sysconfig network scripts ifcfg eth0裡面了。設定多ip 可以...

elementui配置 element配置

vue elementui 配置 第一步 安裝elementui node命令 npm i element ui s 第二步 在man.js中配置 import elementui from element ui import element ui lib theme chalk index.css...

Thinkphp 配置 讀取配置

無論何種配置檔案,定義了配置檔案之後,都統一使用系統提供的c方法 可以借助config單詞來幫助記憶 來讀取已有的配置。用法 c 引數名稱 例如,讀取當前的url模式配置引數 model c url model 由於配置引數不區分大小寫,因此下面的寫法是等效的 model c url model 但...