博客專欄

EEPW首頁 > 博客 > rbd常用的配置參數(shù)

rbd常用的配置參數(shù)

發(fā)布人:天翼云開發(fā)者 時間:2024-07-16 來源:工程師 發(fā)布文章

本文分享自天翼云開發(fā)者社區(qū)《rbd常用的配置參數(shù)》,作者:l****n

rbd的基本介紹

rbd的架構如下圖所示:

 

image.png

 

rbd采用CRUSH算法實現(xiàn)數(shù)據(jù)的隨機分布。CRUSH算法,即Controlled Replication Under Scalable Hashing,是一種基于哈希的數(shù)據(jù)分布算法。CRUSH算法以數(shù)據(jù)唯一標識符、當前存儲集群的拓撲結構以及數(shù)據(jù)備份策略作為CRUSH的輸入,可以隨時隨地通過計算獲取數(shù)據(jù)所在的底層存儲設備并直接通信獲取或者寫入數(shù)據(jù),從而避免查表操作,實現(xiàn)去中心化和高度并發(fā),將數(shù)據(jù)均衡的存儲到各個存儲節(jié)點,實現(xiàn)數(shù)據(jù)存儲的負載均衡;另外去中心化以及哈希的數(shù)據(jù)隨機分布,使得rbd存儲在理論上具備無限的可擴展性。CRUSH算法支持數(shù)據(jù)的多種備份策略,支持可配置副本數(shù),支持存儲節(jié)點故障域定義與劃分,從而使整個系統(tǒng)具備了高可靠性和高可用性。

 

rbd的主要參數(shù)

在實際使用中需要配置rbd的一些參數(shù),下面對rbd的一些常用參數(shù)進行一下說明:

1.rbd_cache: 是否使能緩存,默認情況下開啟。

2.rbd_cache_size:最大的緩存大小,默認32MB。

3.rbd_cache_max_dirty:緩存中臟數(shù)據(jù)的最大值,用來控制回寫,不能超過rbd cache size,默認24MB。

4.rbd_cache_target_dirty:開始執(zhí)行回寫的臟數(shù)據(jù)大小,不能超過rbd cache max dirty,默認16MB。

5.rbd_cache_max_dirty_age: 緩存中單個臟數(shù)據(jù)的最大緩存時間,避免因為未達到回寫要求臟數(shù)據(jù)長時間存在緩存中,默認1s。

6.rbd cache max dirty object:最大的Object對象數(shù),默認為0,表示通過rbd cache size計算得到,librbd默認以4MB為單位對磁盤Image進行邏輯切分,每個chunk對象抽象為一個Object;librbd中以Object為單位來管理緩存,增大該值可以提升性能。

7.rbd cache writethrough until flush:默認為true,該選項是為了兼容linux-2.6.32之前的virtio驅動,避免因為不發(fā)送flush請求,數(shù)據(jù)不回寫;設置該參數(shù)后,librbd會以writethrough的方式執(zhí)行io,直到收到第一個flush請求,才切換為writeback方式。

8.rbd cache block writes upfront:是否開啟同步io,默認false,開啟后librbd要收到Ceph OSD的應答才返回。

9.rbd readahead trigger requests: 觸發(fā)預讀的連續(xù)請求數(shù),默認為10。

10.rbd readahead max bytes: 一次預讀請求的最大io大小,默認512KB,為0則表示關閉預讀。

11.rbd readahead disable after bytes: 預讀緩存的最大數(shù)據(jù)量,默認為50MB,超過閥值后,librbd會關閉預讀功能,由Guest OS處理預讀(防止重復緩存);如果為0,則表示不限制緩存。

12.objecter inflight ops: 客戶端流控,允許的最大未發(fā)送io請求數(shù),超過閥值會堵塞應用io,為0表示不受限。

13.objecter inflight op bytes:客戶端流控,允許的最大未發(fā)送臟數(shù)據(jù),超過閥值會堵塞應用io,為0表示不受限。

14.rbd_enable_alloc_hint:是否開發(fā)底層對象的分配。

*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




技術專區(qū)

關閉