ceph-immmutable-object-cache

java06051515發表於2020-02-04

一、簡介


目前官方提供了ceph-immmutable-object-cache守護程式負責將內容快取到本地快取目錄上。為了獲得更好的效能,建議使用SSD作為底層儲存介質。


二、IO流程

ceph-immmutable-object-cache


  1. ceph-immmutable-object-cache守護程式啟動進行初始化,並且時監聽本地域套接字,並等待來自librbd客戶端的連線。
  2. 客戶端librbd透過域套接字來連線快取守護程式, 並且向快取守護程式進行註冊。
  3. 客戶端librbd讀取時請求到快取守護程式進行查詢。如果未查詢到,守護程式會直接讀取RADOS物件,然後寫入到本地快取目錄.否則,找到更新LRU移動到頭部。
  4. 如果返回告訴客戶端未快取, 則客戶端librbd直接從rados中獲取資訊。(下次librbd則直接從本地獲取)

ceph-immmutable-object-cache




三、策略

  1. MAP資訊維護filename和Entry資訊。


ceph-immmutable-object-cache



  1. LRU連結串列維護Entry資訊,保證容量達到閾值剔除快取。


ceph-immmutable-object-cache



  1. Entry資訊,維護最大容量、容量水位、最大ops。


ceph-immmutable-object-cache


四、 儲存格式
filename: pool_nspace + ":" + std::to_string(pool_id) + ":" + std::to_string(snap_id) + ":" + oid
cache_file_dir: ceph_crc32c(0, file_name, length) % 100
key: m_cache_root_dir + cache_file_dir + cache_file_name
val:object_name


作者:李航


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2674452/,如需轉載,請註明出處,否則將追究法律責任。