cache tier 分级缓存
一图描述 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 分级缓存相关推荐
- Ceph Cache Tier中缓存读写流程源码分析
存储系统:ceph-14.2.22 PrimaryLogPG::do_request [ 文件路径 ] ceph/src/osd/PrimaryLogPG.cc OSD在收到客户端发送的请求时,会调用 ...
- ATS 5.3.0分级缓存
本文档翻译自参考文献[1] 理解缓存分级cache hierarchies 缓存分级是由彼此能够相互通信的各级缓存组成的,ATS支持几种类型的缓存分级.所有的缓存分级都有父子缓存概念. 父缓存位于缓存 ...
- Ceph Cache Tier
CacheTier是ceph服务端缓存的一种方案,简单来说就是加一层Cache层,客户端直接跟Cache层打交道,提高访问速度,后端有一个存储层,实际存储大批量的数据. 分层存储的原理,就是存储的数据 ...
- Ceph性能测试(RBD、CephFS、NFS、Cache Tier)
本文是以下两篇文章的后续: 探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点. CentOS8使用cep ...
- 缓存系列之一:buffer、cache与浏览器缓存
缓存系列之一:buffer.cache与浏览器缓存 一:缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较快的一方起到一个加速访问速度较慢的一方的作用,比如CPU的一级.二级缓存是保 ...
- java 项目做多级缓存_【开源项目系列】如何基于 Spring Cache 实现多级缓存(同时整合本地缓存 Ehcache 和分布式缓存 Redis)...
一.缓存 当系统的并发量上来了,如果我们频繁地去访问数据库,那么会使数据库的压力不断增大,在高峰时甚至可以出现数据库崩溃的现象.所以一般我们会使用缓存来解决这个数据库并发访问问题,用户访问进来,会先从 ...
- 玩转Spring Cache --- 整合进程缓存之王Caffeine Cache和Ehcache3.x【享学Spring】
每篇一句 人到中年就是一部西游记:悟空的压力,八戒的身材,沙僧的发型,唐僧的唠叨 前言 前面文章大篇幅详细讲解了Spring Cache缓存抽象.三大缓存注解的工作原理等等.若是细心的小伙伴会发现:讲 ...
- .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换
有个问题,以前系统采用的是System.Web.Caching.Cache 但是redis缓存的流行 分布式的流行,缓存就被切换了. 但是在redis缓存的环境需要配置,有时候要切换回来. 这时候就弄 ...
- Caffeine cache实现本地缓存(简单又清楚)
Caffeine cache实现本地缓存题 缓存填充策略 手动加载 介绍: 使用方式: 同步加载 介绍: 使用方式: 异步加载 介绍: 注意: 异步和同步使用方式相似, 这里的话主 ...
最新文章
- FCN与U-Net语义分割算法
- 多级反馈队列调度算法描述
- 开课吧python课程-开课吧的python课程怎么样,值得报名吗?
- 三重积分平均值_2015考研数学考前必须死磕的知识点
- mysql变更AUTO_INCREMENT值
- 您好,这是我的第一篇文章
- HALCON常用算子(HALCON13.0)
- 蓝牙连接不上车要hfp_如何正确使用车载蓝牙播放器呢?
- 展讯召开2017全球合作伙伴大会,发布两款新平台及新战略
- Unity运行时刻资源管理
- 关于Android中使用Enum的一点总结
- lievent源码分析:evbuffer
- 第五章 创建高性能的索引
- Java进阶:SpringMVC中自定义类型转换器
- wpf 深度复制控件,打印控件
- 利用Excel的LINEST计算线性拟合的斜率和截距的不确定性
- 音阶频率对照表_音符与频率关系对照表
- 如何通过Filter过滤敏感词汇
- 求职之测试开发技能准备
- 如何在 Excel 中筛选数据透视表中的数据?
热门文章
- a1 抛光等级spi_模具抛光分几个等级呢?
- 万豪集团将在苏州引入丽思卡尔顿和万豪行政公寓双品牌项目;美联航等成立合资企业开发新可持续航空燃料技术 | 美通企业日报...
- 耗时2天,我自制了一台体感游戏机
- JDK1.8 关于list集合Lambda的使用
- 作为一名架构师,懂点硬件知识不过分吧?
- Photoshop制作剔透魔法水晶球
- 他妈的 Python(1):怎么发起一个同步的 HTTP 请求
- Win11字体怎么调大?Win11调整字体大小的方法
- 如何关闭 window10 自带的杀毒软件
- 2021年中国医药CDMO重点企业对比(药明康德VS凯莱英VS博腾股份VS九洲药业)[图]