glusterfs之iocache 操作解析

2021-06-05 13:49:00 字數 919 閱讀 2980

io-cache:

描述:io快取中繼(performance/io-threads)屬於效能調整中繼的一種,作用是快取住已經被讀過的資料,以提高io效能。

io快取中繼可以快取住已經被讀過的資料。這個對於多個應用對同乙個資料多次訪問,並且如果讀的操作遠遠大於寫的操作的話是很有用的(比如,io快取很適合用於提供web服務的環境,大量的客戶端只會進行簡單的讀取檔案的操作,只有很少一部分會去寫檔案)。

當io快取中繼檢測到有寫操作的時候,它就會把相應的檔案從快取中刪除。

io快取中繼會定期的根據檔案的修改時間來驗證快取中相應檔案的一致性。驗證超時時間是可以配置的。

原始碼分析如下:

讀檔案(ioc_readv):

1、通過檢查到inode沒有在ctx中,fd在ctx中,則直接到服務端讀取;

2、如果在快取中,讀取每乙個chunk在快取頁中是否正常,如果不正常需要從服務端讀出正確的資料放到快取中,並且通知該頁可以正常讀取;

3、如果在快取中,檢查該檔案是否超時,如果超時會到服務端查詢該檔案的元資料並與快取中的時間戳比對,看是否需要更新該檔案快取;

4、如果正常讀取到則直接返回給fuse;

5、檢查總的快取大小是否超過了設定的快取大小,如果太大則刪除多餘的快取;

查詢操作(ioc_lookup):

1、通過該檔案的位址向服務端發起查詢操作;

2、檢查該inode是否在ctx內,如果沒有在,會設定該檔案的權重,然後將其更新到ctx內;

3、如果該inode以前已經在ctx內,檢查該檔案是否超時(time out),如果超時,會將該檔案從快取中剔除,並且調整已經快取的大小;

4、將該檔案inode移動到都一樣權重列表的尾部;

開啟操作(ioc_open):

1、如果該檔案的大小不滿足設定的檔案快取大小範圍,權重,開啟標識,則將該fd設定到ctx內;

Glusterfs之小檔案優化

小檔案優化主要是通過優化檔案操作的過程和iocache來達到優化的目的。一 小檔案速度比較快的儲存系統的特點 fastdfs,mogilefs 主要適合小檔案 swift 小於50kb速度很快 1 通過定位器直接可以定位檔案儲存的節點,而不用遍歷所有節點 2 檔案路徑長度一定,不會造成路徑深度不一致...

GlusterFS 編碼規範

glusterfs 編碼規範 1.每個結構成員需要有一條能夠說明其用途的注釋 bad gf lock t lock lock good dbtype access mode access mode for accessing the databases,can be db hash,db btree...

glusterfs 管理操作

glusterfs 是乙個開源的 能夠擴充套件到pb級同時處理上千個客戶端的集群檔案系統。glusterfs可以靈活的把一般物理的 虛擬的 以及雲資源聚合在乙個提供乙個高可用的 高效能的商業儲存,花費只佔傳統儲存解決方案的一小部分。glusterfs集群在infiniband rdma或者tcp i...