Ceph Cache Tier

CacheTierceph服务端缓存的一种方案,简单来讲就是加一层Cache层,客户端直接跟Cache层打交道,提升访问速度,后端有一个存储层,实际存储大批量的数据。后端

分层存储的原理,就是存储的数据的访问是有热点的,数据并不是均匀访问。有个通用法则叫作二八原则,也就是80%的应用只访问20%的数据,这20%的数据成为热点数据,若是把这些热点数据保存性能比较高的SSD磁盘上,就能够提升响应时间。缓存

性能较高的存储,通常由SSD 磁盘组成,称之为Cache 层,hot层,Cache pool 或者 hot pool访问性能比较低的存储层就称为 base pool 或者 data poolcold pool 等。bash

 

1、ceph cache modeide

一、WriteBack模式:性能

客户端写入cache层,cache层应答,而且及时的写入back层,并删除掉cache层数据。客户端读取时,若是cache层不存在该数据,则从back层迁移数据过来,服务读取请求,一直能够服务到有效期内,适合于大量修改的数据应用场景(例如图片视频编辑, 联机事务处理类应用),适合数据。spa

 

二、Read-only模式:视频

读请求直接发送给cache pool,写请求并不通过cache pool,而是直接发送给back_pool.客户端写数据时,直接写入到back层,客户端读取时,cache层从back层拷贝数据,并在有效期内服务,过时的数据会被删除,这种方式的优势就是,cache pool 设置为单副本就能够了,即便cache pool 层失效,也不会有数据的丢失。这种模式比较适合数据一次写入,屡次读取的应用场景。例如图片,视频, 音频等。适合数据。对象

 

三、Read-forward模式:图片

写的时候,和WriteBack模式同样;读的时候,若是cache层不存在该对象,则会转发读请求到back层。事务

 

四、Read-proxy模式:

Read-forward模式类似,读取的时候不是转发客户端的请求,而是表明客户端去读取back层的数据。

 

2、使用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

 

3、配置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
相关文章
相关标签/搜索