一图描述 cache tier:

Ceph 缓存层将冷热数据分离,以快速存储设备作为缓存层,低速廉价存储设备作为存储层

  • 提升 IO 性能
  • 使用两个 pool,作为存储层和缓存层,缓存层覆盖在存储层上,也会叫 base pool 和 cache pool

客户端访问操作数据时,先读写缓存层,如果在存储层则提升到缓存层

ceph objecter 决定数据向哪个层存储,tier agent 处理何时把数据从缓存层冲洗或驱逐到存储层

缓存模式 ( cache_mode_t [src/osd/osd_types.h] )

  • write-back

client 写数据到 cache tier 并收到 cache tier 的 ACK。写入的数据会随着时间推移迁移到 storage tier 然后在 cache tier 被冲洗掉。

当 client 需要获取在存储层上,cache tiering agent 将数据到缓存层,然后发送给 client。这样客户端就在缓存层上进行 IO 操作。

适用于修改操作会比较多的数据,如照片、视频剪辑,交易数据

  • read-only

客户端读数据时,ceph 拷贝请求对象到缓存层,上面有些留下的对象会根据一些 policy 被驱逐。

适用于不可变数据,因为缓存池的数据可能包含过期的数据。

  • read-forward

和 write-back 一样处理写请求。

但是当客户端读数据时,如果数据没有被拷贝到缓存层时,就转发请求给存储层,并给客户端一个重定向的响应消息,然后客户端就向存储层请求读了。

如果存储层和缓存层性能相当,这种模式可能更好。

  • read-proxy

当请求对象不在缓存层时,不把客户端重定向到存储层,而是让缓存层代表客户端从存储层进行读。

有些情况下可以减少延迟。

使用

1. 创建存储层

同时设置需要的两个存储池:

1
ceph osd tier add cold-storage-pool hot-storage-pool

2. 设置缓存模式

1
ceph osd tier cache-mode hot-storage-pool writeback

3. 缓存层覆盖存储池

这样可以定向客户端所有流量到缓存层:

1
ceph osd tier set-overlay cold-storage-pool hot-storage-pool

4. 缓存层配置

1
ceph osd pool set {cachepool} {key} {value}

配置见: pool options

缓存层代理主要有两个功能:

  • 冲洗: 将脏数据迁移到存储层
  • 驱逐: 将最近最少使用的干净数据从缓存层驱逐出去

上述功能可以基于总字节数或者对象总数来做,ceph 不能自动确定缓存层的大小,所以要进行配置:

  • 在 1 TB 时进行冲洗或驱逐
1
ceph osd pool set hot-storage-pool target_max_bytes 1099511627776
  • 在有 100 万对象时进行冲洗或驱逐:
1
ceph osd pool set hot-storage-pool target_max_objects 1000000

当缓存池有一定比例容量的脏数据时,可以进行冲洗:

1
ceph osd pool set hot-storage-pool cache_target_dirty_ratio 0.4

当缓冲池使用一定比例容量时,可以进行驱逐:

1
ceph osd pool set hot-storage cache_target_full_ratio 0.8

更多见配置选项

5. 删除缓存层

模式不同删除方式不同

如果是 read-only,它没有修改的数据,可以直接删除

1234
# diableceph osd tier cache-mode hot-storage-pool noneceph osd tier remove cold-storage-pool hot-storage-pool

如果是 write-back,因为可能有修改的数据,需要先设置 forward 模式把数据冲洗到存储层

1
ceph osd tier cache-mode hot-storage-pool forward

确保缓存层已经被冲洗完毕:

1
rados -p hot-storage-pool ls

如果还有,可以手动冲洗:

1
rados -p hot-storage-pool cache-flush-evict-all

移走覆盖,这样客户端不会把请求发到缓存层

1
ceph osd tier remove-overlay cold-storage-pool

最后删除池子:

1
ceph osd tier remove cold-storage-pool hot-storage-pool

ceph tier

  • 使用副本(而非纠删码)
  • promote 和 flush 代价很高

cache tier 分级缓存相关推荐

  1. Ceph Cache Tier中缓存读写流程源码分析

    存储系统:ceph-14.2.22 PrimaryLogPG::do_request [ 文件路径 ] ceph/src/osd/PrimaryLogPG.cc OSD在收到客户端发送的请求时,会调用 ...

  2. ATS 5.3.0分级缓存

    本文档翻译自参考文献[1] 理解缓存分级cache hierarchies 缓存分级是由彼此能够相互通信的各级缓存组成的,ATS支持几种类型的缓存分级.所有的缓存分级都有父子缓存概念. 父缓存位于缓存 ...

  3. Ceph Cache Tier

    CacheTier是ceph服务端缓存的一种方案,简单来说就是加一层Cache层,客户端直接跟Cache层打交道,提高访问速度,后端有一个存储层,实际存储大批量的数据. 分层存储的原理,就是存储的数据 ...

  4. Ceph性能测试(RBD、CephFS、NFS、Cache Tier)

    本文是以下两篇文章的后续: 探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点. CentOS8使用cep ...

  5. 缓存系列之一:buffer、cache与浏览器缓存

    缓存系列之一:buffer.cache与浏览器缓存 一:缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较快的一方起到一个加速访问速度较慢的一方的作用,比如CPU的一级.二级缓存是保 ...

  6. java 项目做多级缓存_【开源项目系列】如何基于 Spring Cache 实现多级缓存(同时整合本地缓存 Ehcache 和分布式缓存 Redis)...

    一.缓存 当系统的并发量上来了,如果我们频繁地去访问数据库,那么会使数据库的压力不断增大,在高峰时甚至可以出现数据库崩溃的现象.所以一般我们会使用缓存来解决这个数据库并发访问问题,用户访问进来,会先从 ...

  7. 玩转Spring Cache --- 整合进程缓存之王Caffeine Cache和Ehcache3.x【享学Spring】

    每篇一句 人到中年就是一部西游记:悟空的压力,八戒的身材,沙僧的发型,唐僧的唠叨 前言 前面文章大篇幅详细讲解了Spring Cache缓存抽象.三大缓存注解的工作原理等等.若是细心的小伙伴会发现:讲 ...

  8. .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换

    有个问题,以前系统采用的是System.Web.Caching.Cache 但是redis缓存的流行 分布式的流行,缓存就被切换了. 但是在redis缓存的环境需要配置,有时候要切换回来. 这时候就弄 ...

  9. Caffeine cache实现本地缓存(简单又清楚)

    Caffeine cache实现本地缓存题 缓存填充策略  手动加载  介绍:  使用方式:  同步加载  介绍:  使用方式:  异步加载  介绍:   注意: 异步和同步使用方式相似, 这里的话主 ...

最新文章

  1. FCN与U-Net语义分割算法
  2. 多级反馈队列调度算法描述
  3. 开课吧python课程-开课吧的python课程怎么样,值得报名吗?
  4. 三重积分平均值_2015考研数学考前必须死磕的知识点
  5. mysql变更AUTO_INCREMENT值
  6. 您好,这是我的第一篇文章
  7. HALCON常用算子(HALCON13.0)
  8. 蓝牙连接不上车要hfp_如何正确使用车载蓝牙播放器呢?
  9. 展讯召开2017全球合作伙伴大会,发布两款新平台及新战略
  10. Unity运行时刻资源管理
  11. 关于Android中使用Enum的一点总结
  12. lievent源码分析:evbuffer
  13. 第五章 创建高性能的索引
  14. Java进阶:SpringMVC中自定义类型转换器
  15. wpf 深度复制控件,打印控件
  16. 利用Excel的LINEST计算线性拟合的斜率和截距的不确定性
  17. 音阶频率对照表_音符与频率关系对照表
  18. 如何通过Filter过滤敏感词汇
  19. 求职之测试开发技能准备
  20. 如何在 Excel 中筛选数据透视表中的数据?

热门文章

  1. a1 抛光等级spi_模具抛光分几个等级呢?
  2. 万豪集团将在苏州引入丽思卡尔顿和万豪行政公寓双品牌项目;美联航等成立合资企业开发新可持续航空燃料技术 | 美通企业日报...
  3. 耗时2天,我自制了一台体感游戏机
  4. JDK1.8 关于list集合Lambda的使用
  5. 作为一名架构师,懂点硬件知识不过分吧?
  6. Photoshop制作剔透魔法水晶球
  7. 他妈的 Python(1):怎么发起一个同步的 HTTP 请求
  8. Win11字体怎么调大?Win11调整字体大小的方法
  9. 如何关闭 window10 自带的杀毒软件
  10. 2021年中国医药CDMO重点企业对比(药明康德VS凯莱英VS博腾股份VS九洲药业)[图]